]> git.mxchange.org Git - flightgear.git/blobdiff - configure.ac
Functions should always return a value
[flightgear.git] / configure.ac
index d202423b4611577b1803f27c651c673667d9311e..3ea1d4f501d180400e3c1639993fb46afa048cee 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.2)
+dnl set the $host variable based on local machine/os
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE(FlightGear, 1.9.1)
 
 dnl Checks for programs.
 AC_PROG_MAKE_SET
 
 dnl Checks for programs.
 AC_PROG_MAKE_SET
@@ -20,24 +20,70 @@ AC_PROG_CXX
 AC_PROG_RANLIB
 AC_PROG_INSTALL
 AC_PROG_LN_S
 AC_PROG_RANLIB
 AC_PROG_INSTALL
 AC_PROG_LN_S
+AX_BOOST_BASE([1.34.0])
+
+if test "x$BOOST_CPPFLAGS" != "x-I/usr/include" ; then
+   CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+fi
 
 # specify the simgear location
 
 # specify the simgear location
-AC_ARG_WITH(simgear, [  --with-simgear=PREFIX   Specify the prefix path to simgear])
+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"
 
 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
 
 fi
 
-dnl set the $host variable based on local machine/os
-AC_CANONICAL_HOST
+# 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 -I$with_simgear/include/simgear/compatibility"
+        CXXFLAGS="$CXXFLAGS -c99 -I$with_simgear/include/simgear/compatibility"
+        CFLAGS="$CFLAGS -c99"
     else
         AR="ar"
         ARFLAGS="cru"
     else
         AR="ar"
         ARFLAGS="cru"
@@ -57,43 +103,18 @@ 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 Multiplayer support
-# default to with_network=yes
-AC_ARG_WITH(multiplayer, [  --with-multiplayer      Include default multiplayer support])
-AC_ARG_WITH(network_olk, [  --with-network-olk      Include Oliver's multi-pilot networking support [default=no]])
-
-if test "x$with_multiplayer" = "xno" -a "x$with_network_olk" = "xno"; then
-  echo "Building without any kind of multiplayer support"
-
-elif test "x$with_multiplayer" = "xno"; then
-# echo "Building without default multiplayer support"
-  echo "Building with Oliver's multi-pilot network support"
-  AC_DEFINE([FG_NETWORK_OLK], 1, [Define to build with Oliver's networking])
-
+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 default multiplayer support"
-# echo "Building without Oliver's multi-pilot network support"
-  AC_DEFINE([FG_MPLAYER_AS], 1, [Define to build with default multiplayer support])
+    AC_DEFINE([ENABLE_SP_FDM], 0, [Define to include special purpose FDMs])
 fi
 fi
+AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
 
 
-AM_CONDITIONAL(ENABLE_NETWORK_OLK, test "x$with_network_olk" != "xno" -a "x$with_multiplayer" = "xno")
-AM_CONDITIONAL(ENABLE_MPLAYER_AS, test "x$with_multiplayer" != "xno")
-
-
-# Specify if we want to use WeatherCM instead of FGEnvironment.
-# default to with_weathercm=no
-AC_ARG_WITH(weathercm, [  --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"
 if test "x$with_threads" = "xyes"; then
     AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
@@ -102,52 +123,12 @@ fi
 AC_CHECK_HEADER(pthread.h)
 AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
 
 AC_CHECK_HEADER(pthread.h)
 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
-
 dnl Used by JSBSim to conditionally compile in fgfs interface code
 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
 
 dnl Used by JSBSim to conditionally compile in fgfs interface code
 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
 
-dnl Used to controll whether clouds3d should be compiled in or not
-AC_DEFINE([FG_USE_CLOUDS_3D], 1, [Define to use 3D cloud support])
-AM_CONDITIONAL(FG_USE_CLOUDS_3D, test "x" = "x")
-
 # Check for MS Windows environment
 AC_CHECK_HEADER(windows.h)
 
 # 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_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
@@ -166,21 +147,13 @@ 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"
-    ;;
-*-apple-darwin*)
-    audio_LIBS="$audio_LIBS -framework IOKit -framework CoreFoundation"
-    ;;
-*-*-irix* )
-    audio_LIBS="$audio_LIBS -laudio"
-    ;;
 
 
-esac
-AC_SUBST(audio_LIBS)
+dnl add joystick support libraries
+dnl search for FreeBSD library
+AC_SEARCH_LIBS(hid_init, usbhid)
+joystick_LIBS="$LIBS"
+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 ENABLE_AUDIO_SUPPORT could be depricated at any time in favor of
 dnl just assuming we have audio support on all platform.  We can
@@ -203,23 +176,12 @@ esac
 dnl Checks for libraries.
 
 dnl Thread related checks
 dnl Checks for libraries.
 
 dnl Thread related checks
-AC_CHECK_LIB(pthread, pthread_exit)
-if test "x$ac_cv_lib_pthread_pthread_exit" != "xyes" \
-   -a "x$ac_cv_header_pthread_h" = "xyes"; then
-    dnl FreeBSD: System has pthread.h, but -lpthread library check
-    dnl fails.  See if we need -pthread instead of -lpthread and look
-    dnl for the functions in libc_r.
-    save_CXXFLAGS="$CXXFLAGS"
-    save_CFLAGS="$CFLAGS"
+AC_SEARCH_LIBS(pthread_create, [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"
     CXXFLAGS="-pthread $CXXFLAGS"
     CFLAGS="-pthread $CFLAGS"
-    save_LIBS=$LIBS
-    AC_CHECK_LIB(c_r, pthread_exit)
-    if test "x$ac_cv_lib_c_r_pthread_exit" != "xyes"; then
-        CXXFLAGS=$save_CXXFLAGS
-        CFLAGS=$save_CFLAGS
-    fi
-    LIBS=$save_LIBS
+  fi
 fi
 
 thread_LIBS="$LIBS"
 fi
 
 thread_LIBS="$LIBS"
@@ -234,24 +196,32 @@ network_LIBS="$LIBS"
 LIBS=""
 
 dnl check for some default libraries
 LIBS=""
 
 dnl check for some default libraries
-AC_SEARCH_LIBS(cos, m)
+AC_SEARCH_LIBS(sqrt, [am ffm fm fastm m])
+AC_SEARCH_LIBS(ceil, m)
 AC_SEARCH_LIBS(dlclose, dl)
 AC_SEARCH_LIBS(dlclose, dl)
+AC_SEARCH_LIBS(clock_gettime, rt)
 
 base_LIBS="$LIBS"
 
 
 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])
-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])
-    else
-        echo "Neither GL/glut.h nor GLUT/glut.h found.  Cannot continue"
-        exit
-    fi
+dnl Check for SDL or glut if enabled.
+AC_ARG_ENABLE(osgviewer, [  --enable-osgviewer                  Configure to use osgViewer(default)], [enable_osgviewer="$enableval"])
+AC_ARG_ENABLE(sdl,  [  --enable-sdl                   Configure to use SDL], [enable_sdl="$enableval"])
+AC_ARG_ENABLE(glut, [  --enable-glut                  Configure to use GLUT], [enable_glut="$enableval"])
+AM_CONDITIONAL(USE_SDL, test "x$enable_sdl" = "xyes")
+AM_CONDITIONAL(USE_GLUT, test "x$enable_glut" = "xyes")
+if test "x$enable_sdl" != "xyes" -a "x$enable_glut" != "xyes" -a "x$enable_osgviewer" != "xno"; then
+   enable_osgviewer="yes"
+fi
+if test \( "x$enable_osgviewer" = "xyes" \
+   -a \( "x$enable_sdl" = "xyes" -o "x$enable_glut" = "xyes" \) \) \
+   -o \( "x$enable_sdl" = "xyes" -a "x$enable_glut" = "xyes" \); then
+   echo " Only one of --enable-osgviewer, --enable-sdl, or --enable -glut may"
+   echo " be supplied."
+   exit
 fi
 fi
+AC_DEFINE([PU_USE_NONE], 1, [Define to use application's pu callbacks])
+
+AC_ARG_ENABLE(osgdebug, [  --enable-osgdebug              Use OSG debug libraries], [enable_osgdebug="$enableval"])
 
 dnl check for OpenGL related libraries
 case "${host}" in
 
 dnl check for OpenGL related libraries
 case "${host}" in
@@ -262,14 +232,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
 
@@ -280,7 +256,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"
     ;;
 
 *)
     ;;
 
 *)
@@ -314,137 +291,100 @@ case "${host}" in
 
     AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
     AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
 
     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"
     ;;
 
 esac
 
 opengl_LIBS="$LIBS"
-LIBS="$base_LIBS"
+LIBS="$base_LIBS $joystick_LIBS"
 
 
-AC_SUBST(base_LIBS)
-AC_SUBST(opengl_LIBS)
-AC_SUBST(thread_LIBS)
-AC_SUBST(network_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])
-
-
-dnl Checking for PSL in plib
-dnl version of plib, so check for it.
-AC_MSG_CHECKING([for plib PSL scripting support])
-AC_COMPILE_IFELSE([
-#include <plib/psl.h>
-
-int main() {
-  // not for running...
-  pslProgram program((pslExtension *)0);
-  program.compile("int main () {}", "");
-  return 0;
-}
-],
-  [AC_MSG_RESULT(yes);
-   have_plib_psl=yes],
-  AC_MSG_RESULT(no)
-)
-AM_CONDITIONAL(HAVE_PLIB_PSL, test "x$have_plib_psl" = "xyes")
-if test "x$have_plib_psl" = "xyes"; then
-   AC_DEFINE([HAVE_PLIB_PSL], 1,
-             [Define if plib version is new enough to provide "PSL"])
-fi
-
-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"
@@ -456,7 +396,7 @@ if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
     exit
 fi
 
     exit
 fi
 
-AC_MSG_CHECKING([for simgear 0.3.3 or newer])
+AC_MSG_CHECKING([for SimGear 1.9.0 or newer])
 AC_TRY_RUN([
 #include <stdio.h>
 
 AC_TRY_RUN([
 #include <stdio.h>
 
@@ -465,22 +405,21 @@ AC_TRY_RUN([
 #define STRINGIFY(X) XSTRINGIFY(X)
 #define XSTRINGIFY(X) #X
 
 #define STRINGIFY(X) XSTRINGIFY(X)
 #define XSTRINGIFY(X) #X
 
-#define MIN_MAJOR 0
-#define MIN_MINOR 3
-#define MIN_MICRO 3
+#define MIN_MAJOR 1
+#define MIN_MINOR 9
+#define MIN_MICRO 0
 
 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;
     }
 
@@ -490,14 +429,18 @@ int main() {
 ],
   AC_MSG_RESULT(yes),
   [AC_MSG_RESULT(wrong version);
 ],
   AC_MSG_RESULT(yes),
   [AC_MSG_RESULT(wrong version);
-   AC_MSG_ERROR([Install latest simgear first...])],
+   AC_MSG_ERROR([Install latest SimGear first...])],
   AC_MSG_RESULT(yes)
 )
 
 LIBS="$saved_LIBS"
 
   AC_MSG_RESULT(yes)
 )
 
 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
@@ -516,6 +459,132 @@ 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.5 or newer])
+AC_TRY_RUN([
+#include <plib/ul.h>
+
+#define MIN_PLIB_VERSION 185
+
+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.5 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
+
+# Find the OSG libraries.  Note special handling for OS X frameworks
+case "${host}" in
+*-apple-darwin*)
+
+    dnl Thank you Christian Bauer from SheepSaver
+    dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
+    AC_DEFUN([AC_CHECK_FRAMEWORK], [
+    AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
+    AC_CACHE_CHECK([whether compiler supports framework $1],
+        ac_Framework, [
+        saved_LIBS="$LIBS"
+        LIBS="$LIBS -framework $1"
+        AC_TRY_LINK(
+        [$2], [],
+        [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
+        )
+    ])
+    AS_IF([test AS_VAR_GET(ac_Framework) = yes],
+        [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
+    )
+    AS_VAR_POPDEF([ac_Framework])dnl
+    ])
+
+    if test "x$enable_osgdebug" = "xyes"; then
+        AC_CHECK_LIB(osgViewerd,osgViewerGetVersion)
+        AC_CHECK_LIB(osgGAd,osgGAGetVersion)
+        AC_CHECK_LIB(osgTextd,osgTextGetVersion)
+        LIBS="$LIBS -losgFXd"
+        AC_CHECK_LIB(osgUtild,osgUtilGetVersion)
+        AC_CHECK_LIB(osgDBd,osgDBGetVersion)
+        AC_CHECK_LIB(osgSimd,osgSimGetVersion)
+        AC_CHECK_LIB(osgParticled,osgParticleGetVersion)
+        AC_CHECK_LIB(osgd,osgGetVersion)
+        AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
+    else
+        AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>])
+        AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>])
+        AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>])
+        AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>])
+        AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>])
+        AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>])
+        AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>])
+        AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>])
+        AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>])
+        AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>])
+    fi
+    ;;
+*)
+    if test "x$enable_osgdebug" = "xyes"; then
+        AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
+        AC_CHECK_LIB(osgd,osgGetVersion)
+        AC_CHECK_LIB(osgUtild,osgUtilGetVersion)
+        AC_CHECK_LIB(osgDBd,osgDBGetVersion)
+        AC_CHECK_LIB(osgTextd,osgTextGetVersion)
+        AC_CHECK_LIB(osgGAd,osgGAGetVersion)
+        AC_CHECK_LIB(osgViewerd,osgViewerGetVersion)
+        AC_CHECK_LIB(osgSimd,osgSimGetVersion)
+        AC_CHECK_LIB(osgParticled,osgParticleGetVersion)
+        LIBS="$LIBS -losgFXd"
+    else
+        AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
+        AC_CHECK_LIB(osg,osgGetVersion)
+        AC_CHECK_LIB(osgUtil,osgUtilGetVersion)
+        AC_CHECK_LIB(osgDB,osgDBGetVersion)
+        AC_CHECK_LIB(osgText,osgTextGetVersion)
+        AC_CHECK_LIB(osgGA,osgGAGetVersion)
+        AC_CHECK_LIB(osgViewer,osgViewerGetVersion)
+        AC_CHECK_LIB(osgSim,osgSimGetVersion)
+        AC_CHECK_LIB(osgParticle,osgParticleGetVersion)
+        LIBS="$LIBS -losgFX"
+    fi
+    ;;
+esac
+
 AC_LANG_POP
 
 dnl Check for system installed zlib
 AC_LANG_POP
 
 dnl Check for system installed zlib
@@ -534,11 +603,40 @@ if test "x$ac_cv_header_zlib_h" != "xyes"; then
     echo
 fi
 
     echo
 fi
 
+dnl Check for Subversion library support
+save_LIBS=$LIBS
+save_CPPFLAGS=$CPPFLAGS
+LIBS=""
+CPPFLAGS="-I/usr/include/subversion-1 `apr-1-config --includes`"
+AC_CHECK_LIB(svn_client-1, svn_client_checkout3)
+AC_CHECK_HEADERS([svn_client.h])
+if test "x$ac_cv_header_svn_client_h" != "xyes"; then
+  echo "TerraSync will shell out for command line subversion"
+  svn_LIBS=""
+  svn_CPPFLAGS=""
+else
+  echo "TerraSync will use integrated subversion library"
+  AC_SEARCH_LIBS(svn_client_checkout, svn_client-1)
+  svn_LIBS=$LIBS
+  svn_CPPFLAGS=$CPPFLAGS
+  AC_SUBST(svn_LIBS)
+  AC_SUBST(svn_CPPFLAGS)
+fi
+LIBS=$save_LIBS
+CPPFLAGS=$save_CPPFLAGS
+
+AC_MSG_CHECKING([for feenableexcept])
+AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _GNU_SOURCE
+#include <fenv.h>]], [[feenableexcept(FE_DIVBYZERO)]])],
+[AC_DEFINE([HAVE_FEENABLEEXCEPT], 1, [define if system has fenableexcept])],
+AC_MSG_RESULT([yes]),
+AC_MSG_RESULT([no]))
+
 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 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
@@ -547,11 +645,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 mkfifo \
-       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)
 
@@ -564,51 +666,69 @@ 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/Aircraft/Makefile \
        src/Airports/Makefile \
        src/ATC/Makefile \
+       src/ATCDCL/Makefile \
        src/Autopilot/Makefile \
        src/Cockpit/Makefile \
        src/Cockpit/built_in/Makefile \
        src/Autopilot/Makefile \
        src/Cockpit/Makefile \
        src/Cockpit/built_in/Makefile \
-       src/Controls/Makefile \
        src/Environment/Makefile \
        src/Environment/Makefile \
-       src/FDM/Balloon/Makefile \
        src/FDM/ExternalNet/Makefile \
        src/FDM/ExternalPipe/Makefile \
        src/FDM/JSBSim/Makefile \
        src/FDM/ExternalNet/Makefile \
        src/FDM/ExternalPipe/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/MultiPlayer/Makefile \
        src/Navaids/Makefile \
        src/Network/Makefile \
-       src/NetworkOLK/Makefile \
-       src/Objects/Makefile \
-       src/Replay/Makefile \
        src/Scenery/Makefile \
        src/Scripting/Makefile \
        src/Sound/Makefile \
        src/Systems/Makefile \
        src/Time/Makefile \
        src/Scenery/Makefile \
        src/Scripting/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/fgadmin/Makefile
+       utils/fgadmin/src/Makefile \
+       utils/js_server/Makefile \
+       utils/Modeller/Makefile \
+       utils/propmerge/Makefile \
        utils/TerraSync/Makefile \
        utils/TerraSync/Makefile \
+       utils/xmlgrep/Makefile \
 ])
 AC_OUTPUT
 
 ])
 AC_OUTPUT
 
@@ -620,16 +740,6 @@ echo "================="
 
 echo "Prefix: $prefix"
 
 
 echo "Prefix: $prefix"
 
-if test "x$have_plib_psl" = "xyes"; then
-    echo "Plib PSL scripting: yes"
-else
-    echo "Plib PSL scripting: $fg_psl_string_compile"
-    echo "  You will not be able to run scripts written in PSL"
-    echo "  and some advanced GUI and input features may not"
-    echo "  work.  Download and install the latest CVS version"
-    echo "  of plib if you would like to enable PSL support."
-fi
-
 if test "x$with_logging" != "x"; then
     echo "Debug messages: $with_logging"
 else
 if test "x$with_logging" != "x"; then
     echo "Debug messages: $with_logging"
 else
@@ -637,18 +747,10 @@ else
 fi
 
 echo -n "Automake version: "
 fi
 
 echo -n "Automake version: "
-automake --version | head -1
-
-if test "x$with_weathercm" != "x"; then
-    echo "WeatherCM instead of FGEnvironment: $with_weathercm"
-else
-    echo "Using FGEnvironment"
-fi
+automake --version | head -n 1
 
 if test "x$with_multiplayer" != "xno"; then
 
 if test "x$with_multiplayer" != "xno"; then
-    echo "Using default multiplayer support"
-elif test "x$with_network_olk" != "xno"; then
-    echo "Using Oliver's multi-pilot network support"
+    echo "Building with multiplayer support"
 fi
 
 if test "x$with_threads" = "xyes"; then
 fi
 
 if test "x$with_threads" = "xyes"; then
@@ -656,3 +758,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
+