]> git.mxchange.org Git - flightgear.git/blobdiff - configure.ac
Miscellaneous tweaks and Bugfixes. Mostly memory leaks ported from the plib
[flightgear.git] / configure.ac
index 18ae4dc117f4bb8b37e25d19579c59ff1431ea8b..01dc3269931c4dad6b8ce9f2f9f92d9ba0cf5022 100644 (file)
@@ -1,7 +1,5 @@
 dnl Process this file with autoget.sh to produce a working configure
 dnl script.
 dnl Process this file with autoget.sh to produce a working configure
 dnl script.
-dnl
-dnl $Id$
 
 AC_INIT
 AC_CONFIG_SRCDIR([src/Aircraft/aircraft.cxx])
 
 AC_INIT
 AC_CONFIG_SRCDIR([src/Aircraft/aircraft.cxx])
@@ -10,7 +8,9 @@ dnl Require at least automake 2.52
 AC_PREREQ(2.52)
 
 dnl Initialize the automake stuff
 AC_PREREQ(2.52)
 
 dnl Initialize the automake stuff
-AM_INIT_AUTOMAKE(FlightGear, 0.9.1)
+dnl set the $host variable based on local machine/os
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE(FlightGear, 0.9.10)
 
 dnl Checks for programs.
 AC_PROG_MAKE_SET
 
 dnl Checks for programs.
 AC_PROG_MAKE_SET
@@ -21,14 +21,64 @@ AC_PROG_RANLIB
 AC_PROG_INSTALL
 AC_PROG_LN_S
 
 AC_PROG_INSTALL
 AC_PROG_LN_S
 
-dnl set the $host variable based on local machine/os
-AC_CANONICAL_HOST
+# specify the simgear location
+AC_ARG_WITH(simgear, [  --with-simgear=PREFIX   Specify the prefix path to simgear])
+
+if test "x$with_simgear" != "x" ; then
+    echo "SimGear prefix path is $with_simgear"
+    EXTRA_DIRS="${EXTRA_DIRS} $with_simgear"
+    CXXFLAGS="$CXXFLAGS -I$with_simgear"
+fi
+
+# specify the plib location
+AC_ARG_WITH(plib, [  --with-plib=PREFIX      Specify the prefix path to plib])
+
+if test "x$with_plib" != "x" ; then
+    echo "plib prefix is $with_plib"
+    EXTRA_DIRS="${EXTRA_DIRS} $with_plib"
+fi
+
+# specify the osg location
+AC_ARG_WITH(osg, [  --with-osg=PREFIX       Specify the prefix path to osg])
+
+if test "x$with_osg" != "x" ; then
+    echo "osg prefix is $with_osg"
+    EXTRA_DIRS="${EXTRA_DIRS} $with_osg"
+fi
+
+dnl Determine an extra directories to add to include/lib search paths
+case "${host}" in
+*-apple-darwin* | *-*-mingw32*)
+    echo no EXTRA_DIRS for $host
+    ;;
+
+*-*-cygwin*)
+    if test -d /usr/local ; then
+        EXTRA_DIRS="${EXTRA_DIRS} /usr/local"
+    fi
+    ;;
+
+*)
+    if test -d /usr/X11R6 ; then
+        EXTRA_DIR1="/usr/X11R6"
+    fi
+    if test -d /opt/X11R6 ; then
+        EXTRA_DIR2="/opt/X11R6"
+    fi
+    EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2 /usr/local"
+    ;;
+
+esac
+wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
+
 
 case "${host}" in
 *-*-irix*)
     if test "$CXX" = "CC"; then
         AR="CC -ar"
         ARFLAGS="-o"
 
 case "${host}" in
 *-*-irix*)
     if test "$CXX" = "CC"; then
         AR="CC -ar"
         ARFLAGS="-o"
+        CXXFLAGS="$CXXFLAGS -c99 -I$with_simgear/include/simgear/compatibility"
+        CFLAGS="$CFLAGS -c99"
     else
         AR="ar"
         ARFLAGS="cru"
     else
         AR="ar"
         ARFLAGS="cru"
@@ -48,90 +98,32 @@ if test "x$with_logging" = "xno" ; then
     AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
 fi
 
     AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
 fi
 
-# Specify if we want to build with Oliver's networking support
-# default to with_network=yes
-AC_ARG_WITH(network_olk, [  --with-network-olk      Include Oliver's multi-pilot networking support])
-if test "x$with_network_olk" = "xno" ; then
-    echo "Building without Oliver's multi-pilot network support"
+AC_ARG_ENABLE(sp_fdms, [  --enable-sp-fdms              Include special purpose Flight Models], [enable_sp_fdms="$enableval"] )
+if test "x$enable_sp_fdms" != "xno"; then
+    AC_DEFINE([ENABLE_SP_FDM], 1, [Define to include special purpose FDMs])
 else
 else
-    echo "Building with Oliver's multi-pilot network support"
-    AC_DEFINE([FG_NETWORK_OLK], 1, [Define to build with Oliver's networking])
+    AC_DEFINE([ENABLE_SP_FDM], 0, [Define to include special purpose FDMs])
 fi
 fi
-AM_CONDITIONAL(ENABLE_NETWORK_OLK, test "x$with_network_olk" != "xno")
+AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
 
 
 
 
-# Specify if we want to use WeatherCM instead of FGEnvironment.
-# default to with_weathercm=no
-AC_ARG_WITH(new-environment, [  --with-weathercm        Use WeatherCM instead of FGEnvironment])
-if test "x$with_weathercm" = "xyes" ; then
-    echo "Building with WeatherCM"
-    AC_DEFINE([FG_WEATHERCM], 1,
-              [Define to build with Christian Mayer's weather code])
-else
-    echo "Building with FGEnvironment"
-fi
-AM_CONDITIONAL(ENABLE_WEATHERCM, test "x$with_weathercm" = "xyes")
-
 dnl Thread related checks
 dnl Thread related checks
-AC_ARG_WITH(threads, [  --with-threads          Include tile loading threads [default=no]])
+# defaults to yes
+AC_ARG_WITH(threads, [  --with-threads          Include tile loading threads [default=yes]], [], [with_threads=yes])
 if test "x$with_threads" = "xyes"; then
     AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
     CFLAGS="$CFLAGS -D_REENTRANT"
 if test "x$with_threads" = "xyes"; then
     AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
     CFLAGS="$CFLAGS -D_REENTRANT"
-    AC_CHECK_HEADER(pthread.h)
 fi
 fi
+AC_CHECK_HEADER(pthread.h)
 AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
 
 AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
 
-# specify the plib location
-AC_ARG_WITH(plib, [  --with-plib=PREFIX      Specify the prefix path to plib])
-
-if test "x$with_plib" != "x" ; then
-    echo "plib prefix is $with_plib"
-    EXTRA_DIRS="${EXTRA_DIRS} $with_plib"
-fi
-
-# specify the metakit location
-AC_ARG_WITH(metakit, [  --with-metakit=PREFIX   Specify the prefix path to metakit])
-
-if test "x$with_metakit" != "x" ; then
-    echo "metakit prefix is $with_metakit"
-    EXTRA_DIRS="${EXTRA_DIRS} $with_metakit"
-fi
-
-# specify the simgear location
-AC_ARG_WITH(simgear, [  --with-simgear=PREFIX   Specify the prefix path to simgear])
-
-if test "x$with_simgear" != "x" ; then
-    echo "SimGear prefix path is $with_simgear"
-    EXTRA_DIRS="${EXTRA_DIRS} $with_simgear"
-fi
-
 dnl Used by JSBSim to conditionally compile in fgfs interface code
 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
 
 # Check for MS Windows environment
 AC_CHECK_HEADER(windows.h)
 
 dnl Used by JSBSim to conditionally compile in fgfs interface code
 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
 
 # Check for MS Windows environment
 AC_CHECK_HEADER(windows.h)
 
-dnl Determine an extra directories to add to include/lib search paths
-case "${host}" in
-*-apple-darwin* | *-*-mingw32*)
-    echo no EXTRA_DIRS for $host
-    ;;
-
-*)
-    if test -d /usr/X11R6 ; then
-        EXTRA_DIR1="/usr/X11R6"
-    fi
-    if test -d /opt/X11R6 ; then
-        EXTRA_DIR2="/opt/X11R6"
-    fi
-    EXTRA_DIRS="$EXTRA_DIR1 $EXTRA_DIR2"
-    ;;
-
-esac
-wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
-
-
 dnl Using AM_CONDITIONAL is a step out of the protected little 
 dnl automake fold so it is potentially dangerous.  But, we are
 dnl beginning to run into cases where the standard checks are not
 dnl Using AM_CONDITIONAL is a step out of the protected little 
 dnl automake fold so it is potentially dangerous.  But, we are
 dnl beginning to run into cases where the standard checks are not
@@ -150,19 +142,17 @@ if test "$have_timezone" = yes; then
     AC_DEFINE([HAVE_TIMEZONE], 1, [Define if system has timezone variable])
 fi
 
     AC_DEFINE([HAVE_TIMEZONE], 1, [Define if system has timezone variable])
 fi
 
-dnl add correct audio libs and configure for audio support
-audio_LIBS="-lplibsl -lplibsm"
-case "${host}" in
-*-*-cygwin* | *-*-mingw32*)
-    audio_LIBS="$audio_LIBS -lwinmm"
-    ;;
 
 
-*-*-irix* )
-    audio_LIBS="$audio_LIBS -laudio"
-    ;;
+dnl add joystick support libraries
+dnl search for FreeBSD library
+AC_SEARCH_LIBS(hid_init, usbhid)
+joystick_LIBS="$LIBS"
+LIBS=""
 
 
-esac
-AC_SUBST(audio_LIBS)
+
+dnl ENABLE_AUDIO_SUPPORT could be depricated at any time in favor of
+dnl just assuming we have audio support on all platform.  We can
+dnl depend on plib to hide the details.
 AC_DEFINE([ENABLE_AUDIO_SUPPORT], 1, [Define for audio support])
 
 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
 AC_DEFINE([ENABLE_AUDIO_SUPPORT], 1, [Define for audio support])
 
 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
@@ -180,30 +170,52 @@ esac
 
 dnl Checks for libraries.
 
 
 dnl Checks for libraries.
 
-null_LIBS="$LIBS"
+dnl Thread related checks
+AC_SEARCH_LIBS(pthread_cancel, [pthread c_r])
+if test "x$ac_cv_header_pthread_h" = "xyes"; then
+  if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
+    CXXFLAGS="-pthread $CXXFLAGS"
+    CFLAGS="-pthread $CFLAGS"
+  fi
+fi
 
 
-AC_CHECK_LIB(m, cos)
+thread_LIBS="$LIBS"
+LIBS=""
 
 
-base_LIBS="$LIBS"
+dnl search for network related libraries
+AC_SEARCH_LIBS(inet_addr, xnet)
+AC_SEARCH_LIBS(socket, socket)
+AC_SEARCH_LIBS(main, nsl)
 
 
-dnl Thread related checks
-AC_CHECK_LIB(pthread, pthread_exit)
-AC_CHECK_LIB(socket, socket)
+network_LIBS="$LIBS"
+LIBS=""
+
+dnl check for some default libraries
+AC_SEARCH_LIBS(sqrt, [am ffm fm fastm m])
+AC_SEARCH_LIBS(ceil, m)
+AC_SEARCH_LIBS(dlclose, dl)
+
+base_LIBS="$LIBS"
 
 
-dnl check for glut location
-AC_CHECK_HEADER(GL/glut.h)
-if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
-    AC_DEFINE([GLUT_H], "GL/glut.h", [Define as glut.h include location])
+dnl Check for SDL if enabled.
+AC_ARG_ENABLE(sdl, [  --enable-sdl                  Configure to use SDL instead of GLUT], [enable_sdl="$enableval"])
+AC_ARG_ENABLE(osgviewer, [  --enable-osgviewer                  Configure to use osgViewer], [enable_osgviewer="$enableval"])
+AM_CONDITIONAL(USE_SDL, test "x$enable_sdl" = "xyes")
+AM_CONDITIONAL(USE_OSGVIEWER, test "x$enable_osgviewer" = "xyes")
+if test "x$enable_sdl" = "xyes"; then
+    AC_DEFINE([PU_USE_SDL], 1, [Define to use SDL])
 else
 else
-    AC_CHECK_HEADER(GLUT/glut.h)
-    if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then
-        AC_DEFINE([GLUT_H], "GLUT/glut.h", [Define as glut.h include location])
+    if test "x$enable_osgviewer" = "xyes"; then
+       AC_DEFINE([ENABLE_OSGVIEWER], 1, [Define to use osgViewer in renderer])
+       AC_DEFINE([PU_USE_NATIVE], 1, [Define to use native system])
     else
     else
-        echo "Neither GL/glut.h nor GLUT/glut.h found.  Cannot continue"
-        exit
+        AC_DEFINE([PU_USE_GLUT], 1, [Define to use glut])
     fi
 fi
 
     fi
 fi
 
+AC_ARG_ENABLE(osgdebug, [  --enable-osgdebug                  Use OSG debug libraries], [enable_osgdebug="$enableval"])
+AM_CONDITIONAL(USE_OSGDEBUG, test "x$enable_osgdebug" = "xyes")
+
 dnl check for OpenGL related libraries
 case "${host}" in
 *-*-cygwin* | *-*-mingw32*)
 dnl check for OpenGL related libraries
 case "${host}" in
 *-*-cygwin* | *-*-mingw32*)
@@ -213,14 +225,20 @@ case "${host}" in
     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
 
     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
 
-    LIBS="$LIBS -lglut32 -lglu32 -lopengl32"
-    LIBS="$LIBS -luser32 -lgdi32"
+    if test "x$enable_sdl" = "xyes"; then
+        AC_SEARCH_LIBS(SDL_Init, SDL)
+    else
+        LIBS="$LIBS -lglut32"
+    fi
+
+    LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
+    joystick_LIBS="$joystick_LIBS -lwinmm"
 
     dnl add -lwsock32 for mingwin
     case "${host}" in
     *-*-mingw32*)
         echo "********** BUILDING FOR MINGW32 *************"
 
     dnl add -lwsock32 for mingwin
     case "${host}" in
     *-*-mingw32*)
         echo "********** BUILDING FOR MINGW32 *************"
-        base_LIBS="$base_LIBS -lws2_32"
+        network_LIBS="$network_LIBS -lws2_32"
         ;;
     esac
 
         ;;
     esac
 
@@ -231,7 +249,8 @@ case "${host}" in
 *-apple-darwin*)
     dnl Mac OS X
 
 *-apple-darwin*)
     dnl Mac OS X
 
-    LIBS="$LIBS -framework GLUT -framework OpenGL -framework Carbon -lobjc"
+    LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
+    joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
     ;;
 
 *)
     ;;
 
 *)
@@ -239,155 +258,126 @@ case "${host}" in
 
     dnl Skip X11 library tests if requested.
     if test "x$no_x" != "xyes"; then
 
     dnl Skip X11 library tests if requested.
     if test "x$no_x" != "xyes"; then
-        AC_CHECK_LIB(X11, XCreateWindow)
-        AC_CHECK_LIB(Xext, XShmCreateImage)
-        AC_CHECK_LIB(Xi, XGetExtensionVersion)
-        AC_CHECK_LIB(ICE, IceOpenConnection)
-        AC_CHECK_LIB(SM, SmcOpenConnection)
-        AC_CHECK_LIB(Xt, XtMalloc)
-        AC_CHECK_LIB(Xmu, XmuLookupStandardColormap)
+        AC_SEARCH_LIBS(XCreateWindow, X11)
+        AC_SEARCH_LIBS(XShmCreateImage, Xext)
+        AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
+        AC_SEARCH_LIBS(IceOpenConnection, ICE)
+        AC_SEARCH_LIBS(SmcOpenConnection, SM)
+        AC_SEARCH_LIBS(XtMalloc, Xt)
+        AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
     fi
 
     fi
 
-    AC_CHECK_LIB(GLcore, glNewList)
-    if test "x$ac_cv_lib_GLcore_glNewList" = "xno" ; then
-       dnl if no GLcore, check for GL
-       AC_CHECK_LIB(GL, glNewList)
-       if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then
-           dnl if no GL, check for MesaGL
-           AC_CHECK_LIB(MesaGL, glNewList)
-       fi
-    else
-       dnl if GLcore found, then also check for GL
-       AC_CHECK_LIB(GL, glXCreateContext)
+    AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
+    if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
+        dnl if GLcore found, then also check for GL
+        AC_SEARCH_LIBS(glXCreateContext, GL)
     fi
 
     dnl if using mesa, check for xmesa.h
     fi
 
     dnl if using mesa, check for xmesa.h
-    if test "x$ac_cv_lib_MesaGL_glNewList" = "xyes" ; then
-       AC_CHECK_HEADER(GL/fxmesa.h)
-       if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
-           AC_DEFINE([XMESA], 1, [Define for fxmesa])
+    if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
+        AC_CHECK_HEADER(GL/fxmesa.h)
+        if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
+            AC_DEFINE([XMESA], 1, [Define for fxmesa])
             AC_DEFINE([FX], 1, [Define for fxmesa])
         fi
     fi
 
             AC_DEFINE([FX], 1, [Define for fxmesa])
         fi
     fi
 
-    AC_CHECK_LIB(GLU, gluLookAt)
-    if test "x$ac_cv_lib_GLU_gluLookAt" = "xno" ; then
-       dnl if no GLU, check for MesaGLU
-       AC_CHECK_LIB(MesaGLU, gluLookAt)
-    fi
-
-    AC_CHECK_LIB(glut, glutGetModifiers)
-    if test "x$ac_cv_lib_glut_glutGetModifiers" = "xno" ; then
-        dnl if no "real" glut, check for freeglut
-        AC_CHECK_LIB(freeglut, glutGetModifiers)
+    AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
+    AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
+    if test "x$enable_sdl" = "xyes"; then
+        AC_SEARCH_LIBS(SDL_Init, SDL)
     fi
     ;;
 
 esac
 
 opengl_LIBS="$LIBS"
     fi
     ;;
 
 esac
 
 opengl_LIBS="$LIBS"
-LIBS="$base_LIBS"
+LIBS="$base_LIBS $joystick_LIBS"
 
 
-AC_SUBST(base_LIBS)
-AC_SUBST(opengl_LIBS)
+dnl check for OpenAL libraries
+OPENAL_OK="no"
+ALUT_OK="no"
+case "${host}" in
+*-*-cygwin* | *-*-mingw32*)
+    dnl CygWin under Windoze.
+    INCLUDES="$INCLUDES -I/usr/local/include/"
+    LIBS="$LIBS -L/usr/local/lib"
+    AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal ] )
+    AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
+    LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
+    openal_LIBS="$LIBS"
+    OPENAL_OK="$ac_cv_search_alGenBuffers"
+    ALUT_OK="$ac_cv_search_alutInit"
+    ;;
 
 
-# The following are C++ items that need to be tested for with the c++
-# compiler
+*-apple-darwin*)
+    dnl Mac OS X
 
 
-AC_LANG_PUSH(C++)
+    LIBS="$LIBS -framework IOKit -framework OpenAL"
+    openal_LIBS="$LIBS"
+    # not sure how to test if OpenAL exists on MacOS (does it come by default?)
+    OPENAL_OK="yes"
+    ALUT_OK="yes"
+    ;;
 
 
-# Check for "plib" without which we cannot go on
-AC_CHECK_HEADER(plib/ul.h)
-if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
+*)
+    dnl default unix style machines
+
+    save_LIBS=$LIBS
+    LIBS="$LIBS $thread_LIBS"
+    AC_SEARCH_LIBS(alGenBuffers, openal)
+    AC_SEARCH_LIBS(alutInit, [ alut openal ] )
+    OPENAL_OK="$ac_cv_search_alGenBuffers"
+    ALUT_OK="$ac_cv_search_alutInit"
+    openal_LIBS="$LIBS"
+    LIBS=$save_LIBS
+    ;;
+
+esac
+
+if test "$OPENAL_OK" == "no"; then
     echo
     echo
-    echo "You *must* have the plib library installed on your system to build"
-    echo "the FGFS simulator!"
+    echo "You *must* have the openal library installed on your system to build"
+    echo "SimGear!"
     echo
     echo
-    echo "Please see README.plib for more details."
+    echo "Please see README.OpenAL for more details."
     echo
     echo "configure aborted."
     exit
 fi
 
     echo
     echo "configure aborted."
     exit
 fi
 
-AC_MSG_CHECKING([for plib 1.6.0 or newer])
-AC_TRY_RUN([
-#include <plib/ul.h>
-
-#define MIN_PLIB_VERSION 160
-
-int main() {
-    int major, minor, micro;
-
-    if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
-        return -1;
-    }
-
-    return 0;
-}
-
-],
-  AC_MSG_RESULT(yes),
-  [AC_MSG_RESULT(wrong version);
-   AC_MSG_ERROR([Install plib 1.6.0 or later first...])],
-  AC_MSG_RESULT(yes)
-)
-
-dnl If we get here then plib is available, so force use of plib
-dnl joystick lib
-AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
-AC_DEFINE([FG_PLIB_JOYSTICK_GETNAME], 1,
-          [Define to enable plib joystick name support])
-
-dnl Check for MetaKit
-AC_CHECK_HEADER(mk4.h)
-if test "x$ac_cv_header_mk4_h" != "xyes"; then
+if test "$ALUT_OK" == "no"; then
     echo
     echo
-    echo "MetaKit library not found."
+    echo "You *must* have the alut library installed on your system to build"
+    echo "SimGear!"
     echo
     echo
-    echo "If your OS does not provide an installable package for MetaKit"
-    echo "you will have to compile and install it first yourself.  A copy"
-    echo "of metakit-$(VERSION).tar.gz is included with SimGear.  You will"
-    echo "have to untar this source code, and follow it's included instructions"
-    echo "to compile and install on your system."
+    echo "Please see README.OpenAL for more details."
     echo
     echo "configure aborted."
     exit
 fi
 
     echo
     echo "configure aborted."
     exit
 fi
 
-AC_MSG_CHECKING([for metakit 2.4.3 or newer])
-saved_LIBS="$LIBS"
-LIBS="$saved_LIBS -lmk4"
-AC_TRY_RUN([
-#include <mk4.h>
-
-#define MIN_MK4_VERSION 243
-
-int main() {
-    int major, minor, micro;
-
-    if ( d4_MetaKitLibraryVersion < MIN_MK4_VERSION ) {
-        return -1;
-    }
 
 
-    return 0;
-}
+LIBS="$base_LIBS"
 
 
-],
-  AC_MSG_RESULT(yes),
-  [AC_MSG_RESULT(wrong version);
-   AC_MSG_ERROR([
+AC_SUBST(base_LIBS)
+AC_SUBST(openal_LIBS)
+AC_SUBST(opengl_LIBS)
+AC_SUBST(thread_LIBS)
+AC_SUBST(network_LIBS)
+AC_SUBST(joystick_LIBS)
 
 
-Install metakit 2.4.3 or later first.
+# The following are C++ items that need to be tested for with the c++
+# compiler
 
 
-Or, the compiler may not be finding your libmk4.so library.
-Please check the config.log file for specific details of the
-failure if you believe you have the correct metakit version.
-Also, look up this issue in the FlightGear FAQ.])],
-  AC_MSG_RESULT(yes)
-)
+AC_LANG_PUSH(C++)
 
 dnl Check for the presence of SimGear
 
 dnl Check for the presence of SimGear
+if test "x$with_simgear" != "x"; then
+AC_CHECK_HEADER($with_simgear/include/simgear/version.h, [ac_cv_header_simgear_version_h=yes], [ac_cv_header_simgear_version_h=no])
+else
 AC_CHECK_HEADER(simgear/version.h)
 AC_CHECK_HEADER(simgear/version.h)
+fi
 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
     echo
     echo "You *must* have the SimGear support library installed on your system"
 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
     echo
     echo "You *must* have the SimGear support library installed on your system"
@@ -399,7 +389,7 @@ if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
     exit
 fi
 
     exit
 fi
 
-AC_MSG_CHECKING([for simgear 0.3.0 or newer])
+AC_MSG_CHECKING([for simgear 0.3.10 or newer])
 AC_TRY_RUN([
 #include <stdio.h>
 
 AC_TRY_RUN([
 #include <stdio.h>
 
@@ -410,20 +400,19 @@ AC_TRY_RUN([
 
 #define MIN_MAJOR 0
 #define MIN_MINOR 3
 
 #define MIN_MAJOR 0
 #define MIN_MINOR 3
-#define MIN_MICRO 0
+#define MIN_MICRO 10
 
 int main() {
     int major, minor, micro;
 
 
 int main() {
     int major, minor, micro;
 
-    printf("%d.%d.%d or greater... ", MIN_MAJOR, MIN_MINOR, MIN_MICRO);
+    /* printf("%d.%d.%d or greater, ", MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
+    printf("[found %s] ... ", STRINGIFY(SIMGEAR_VERSION));
 
     sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, &micro );
 
 
     sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, &micro );
 
-    if ( major < MIN_MAJOR ) {
-        return -1;
-    } else if ( major == MIN_MAJOR && minor < MIN_MINOR ) {
-        return -1;
-    } else if ( major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO ){
+    if ( (major < MIN_MAJOR) ||
+         (major == MIN_MAJOR && minor < MIN_MINOR) ||
+         (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
         return -1;
     }
 
         return -1;
     }
 
@@ -439,8 +428,12 @@ int main() {
 
 LIBS="$saved_LIBS"
 
 
 LIBS="$saved_LIBS"
 
-dnl Check if SimGear was built with Norman JPEG factory support
+dnl Check if SimGear was built with Norman's JPEG factory support
+if test "x$with_simgear" != "x"; then
+AC_CHECK_HEADER($with_simgear/include/simgear/screen/jpgfactory.hxx,[ac_cv_header_simgear_screen_jpgfactory_hxx=yes],[ac_cv_header_simgear_screen_jpgfactory_hxx=no])
+else
 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
+fi
 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
     AC_CHECK_LIB(jpeg, jpeg_start_compress)
     if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
     AC_CHECK_LIB(jpeg, jpeg_start_compress)
     if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
@@ -459,6 +452,58 @@ if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
 fi
 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
 
 fi
 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
 
+# Check for "plib" without which we cannot go on
+AC_CHECK_HEADER(plib/ul.h)
+if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
+    echo
+    echo "You *must* have the plib library installed on your system to build"
+    echo "the FGFS simulator!"
+    echo
+    echo "Please see README.plib for more details."
+    echo
+    echo "configure aborted."
+    exit
+fi
+
+AC_MSG_CHECKING([for plib 1.8.4 or newer])
+AC_TRY_RUN([
+#include <plib/ul.h>
+
+#define MIN_PLIB_VERSION 184
+
+int main() {
+    int major, minor, micro;
+
+    if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
+        return -1;
+    }
+
+    return 0;
+}
+
+],
+  AC_MSG_RESULT(yes),
+  [AC_MSG_RESULT(wrong version);
+   AC_MSG_ERROR([Install plib 1.8.4 or later first...])],
+  AC_MSG_RESULT(yes)
+)
+
+dnl If we get here then plib is available, so force use of plib
+dnl joystick lib
+AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
+
+AC_CHECK_HEADER(osg/Version)
+if test "x$ac_cv_header_osg_Version" != "xyes"; then
+    echo
+    echo "You *must* have the OpenSceneGraph support library installed on your system"
+    echo "to build the FGFS simulator!"
+    echo
+    echo "Please see README.OSG for more details."
+    echo
+    echo "configure aborted."
+    exit
+fi
+
 AC_LANG_POP
 
 dnl Check for system installed zlib
 AC_LANG_POP
 
 dnl Check for system installed zlib
@@ -477,11 +522,13 @@ if test "x$ac_cv_header_zlib_h" != "xyes"; then
     echo
 fi
 
     echo
 fi
 
+
+
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_CHECK_HEADERS( \
        fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_CHECK_HEADERS( \
        fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
-        sys/time.h sys/timeb.h unistd.h windows.h winbase.h values.h )
+       sys/time.h sys/timeb.h unistd.h windows.h values.h )
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
@@ -490,11 +537,15 @@ AC_HEADER_TIME
 AC_STRUCT_TM
 
 dnl Checks for library functions.
 AC_STRUCT_TM
 
 dnl Checks for library functions.
+old_LIBS=$LIBS
+LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS( \
-        ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
-       random drand48 setitimer getitimer signal GetLocalTime rint getrusage )
+AC_CHECK_FUNCS( [ \
+       ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
+       random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
+       truncf ] )
+LIBS=$old_LIBS
 
 AM_CONFIG_HEADER(src/Include/config.h)
 
 
 AM_CONFIG_HEADER(src/Include/config.h)
 
@@ -507,47 +558,66 @@ AC_CONFIG_FILES([ \
        man/gl-info.1 \
        man/js_demo.1 \
        man/pstest.1 \
        man/gl-info.1 \
        man/js_demo.1 \
        man/pstest.1 \
-        scripts/Makefile \
-        scripts/debug/Makefile \
-        scripts/python/Makefile \
+       scripts/Makefile \
+       scripts/debug/Makefile \
+       scripts/perl/Makefile \
+       scripts/perl/examples/Makefile \
+       scripts/python/Makefile \
        src/Makefile \
        src/Include/Makefile \
        src/Include/version.h \
        src/Makefile \
        src/Include/Makefile \
        src/Include/version.h \
+       src/Include/config.h-msvc6 \
+       src/Include/config.h-msvc71 \
+       src/Include/config.h-msvc8 \
        src/Aircraft/Makefile \
        src/Airports/Makefile \
        src/ATC/Makefile \
        src/Autopilot/Makefile \
        src/Cockpit/Makefile \
        src/Cockpit/built_in/Makefile \
        src/Aircraft/Makefile \
        src/Airports/Makefile \
        src/ATC/Makefile \
        src/Autopilot/Makefile \
        src/Cockpit/Makefile \
        src/Cockpit/built_in/Makefile \
-       src/Controls/Makefile \
        src/Environment/Makefile \
        src/FDM/Balloon/Makefile \
        src/FDM/ExternalNet/Makefile \
        src/Environment/Makefile \
        src/FDM/Balloon/Makefile \
        src/FDM/ExternalNet/Makefile \
+       src/FDM/ExternalPipe/Makefile \
        src/FDM/JSBSim/Makefile \
        src/FDM/JSBSim/Makefile \
-       src/FDM/JSBSim/filtersjb/Makefile \
+       src/FDM/JSBSim/initialization/Makefile \
+       src/FDM/JSBSim/input_output/Makefile \
+       src/FDM/JSBSim/math/Makefile \
+       src/FDM/JSBSim/models/Makefile \
+       src/FDM/JSBSim/models/flight_control/Makefile \
+       src/FDM/JSBSim/models/atmosphere/Makefile \
+       src/FDM/JSBSim/models/propulsion/Makefile \
        src/FDM/LaRCsim/Makefile \
        src/FDM/LaRCsim/Makefile \
+       src/FDM/SP/Makefile \
        src/FDM/UIUCModel/Makefile \
        src/FDM/YASim/Makefile \
        src/FDM/Makefile \
        src/GUI/Makefile \
        src/Input/Makefile \
        src/Instrumentation/Makefile \
        src/FDM/UIUCModel/Makefile \
        src/FDM/YASim/Makefile \
        src/FDM/Makefile \
        src/GUI/Makefile \
        src/Input/Makefile \
        src/Instrumentation/Makefile \
+       src/Instrumentation/KLN89/Makefile \
+       src/Instrumentation/HUD/Makefile \
        src/Main/Makefile \
        src/Main/runfgfs \
        src/Main/runfgfs.bat \
        src/Model/Makefile \
        src/Main/Makefile \
        src/Main/runfgfs \
        src/Main/runfgfs.bat \
        src/Model/Makefile \
+       src/AIModel/Makefile \
+       src/MultiPlayer/Makefile \
        src/Navaids/Makefile \
        src/Network/Makefile \
        src/Navaids/Makefile \
        src/Network/Makefile \
-       src/NetworkOLK/Makefile \
-       src/Objects/Makefile \
        src/Scenery/Makefile \
        src/Scenery/Makefile \
+       src/Scripting/Makefile \
        src/Sound/Makefile \
        src/Systems/Makefile \
        src/Time/Makefile \
        src/Sound/Makefile \
        src/Systems/Makefile \
        src/Time/Makefile \
-       src/WeatherCM/Makefile \
+       src/Traffic/Makefile \
        tests/Makefile \
        utils/Makefile \
        tests/Makefile \
        utils/Makefile \
+       utils/GPSsmooth/Makefile \
+       utils/js_server/Makefile \
+       utils/Modeller/Makefile \
        utils/TerraSync/Makefile \
        utils/TerraSync/Makefile \
+       utils/xmlgrep/Makefile \
 ])
 AC_OUTPUT
 
 ])
 AC_OUTPUT
 
@@ -566,14 +636,10 @@ else
 fi
 
 echo -n "Automake version: "
 fi
 
 echo -n "Automake version: "
-automake --version | head -1
-
-echo "New plib joystick name support: $plib_js_has_getname"
+automake --version | head -n 1
 
 
-if test "x$with_weathercm" != "x"; then
-    echo "WeatherCM instead of FGEnvironment: $with_weathercm"
-else
-    echo "Using FGEnvironment"
+if test "x$with_multiplayer" != "xno"; then
+    echo "Building with multiplayer support"
 fi
 
 if test "x$with_threads" = "xyes"; then
 fi
 
 if test "x$with_threads" = "xyes"; then
@@ -581,3 +647,10 @@ if test "x$with_threads" = "xyes"; then
 else
     echo "threads: no"
 fi
 else
     echo "threads: no"
 fi
+
+if test "x$enable_sp_fdms" != "xno"; then
+    echo "Include special purpose flight models: yes"
+else
+    echo "Include special purpose flight models: no"
+fi
+