]> git.mxchange.org Git - flightgear.git/blobdiff - configure.ac
Add the alpha test back in so the instruments won't disappear after changing the...
[flightgear.git] / configure.ac
index 28281184b5b0ff70722033a89205e878aaf4760b..59fa9a6594ce12160610fc7152d967eca995d5fb 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])
@@ -12,7 +10,7 @@ AC_PREREQ(2.52)
 dnl Initialize the automake stuff
 dnl set the $host variable based on local machine/os
 AC_CANONICAL_TARGET
 dnl Initialize the automake stuff
 dnl set the $host variable based on local machine/os
 AC_CANONICAL_TARGET
-AM_INIT_AUTOMAKE(FlightGear, 0.9.6)
+AM_INIT_AUTOMAKE(FlightGear, 1.99.4)
 
 dnl Checks for programs.
 AC_PROG_MAKE_SET
 
 dnl Checks for programs.
 AC_PROG_MAKE_SET
@@ -29,14 +27,58 @@ AC_ARG_WITH(simgear, [  --with-simgear=PREFIX   Specify the prefix path to simge
 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
 
+# 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"
@@ -56,26 +98,19 @@ 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 multiplayer support [default=yes]])
-
-if test "x$with_multiplayer" = "xno"; then
-  echo "Building without any kind of multiplayer 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 multiplayer support"
-  AC_DEFINE([FG_MPLAYER_AS], 1, [Define to build with multiplayer support])
+    AC_DEFINE([ENABLE_SP_FDM], 0, [Define to include special purpose FDMs])
 fi
 fi
-AM_CONDITIONAL(ENABLE_MPLAYER_AS, test "x$with_multiplayer" != "xno")
+AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
 
 
 dnl Thread related checks
 # defaults to yes
 
 
 dnl Thread related checks
 # defaults to yes
-with_threads=yes
-AC_ARG_WITH(threads, [  --with-threads          Include tile loading threads [default=yes]])
-if test "x$with_threads" != "xyes"; then
-    AC_DEFINE([ENABLE_THREADS], 0, [Define to enable threaded tile paging])
-else
+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"
     AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
     CFLAGS="$CFLAGS -D_REENTRANT"
@@ -83,50 +118,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
-
 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 control 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
-    ;;
-
-*-*-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})
-
-
 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
@@ -145,21 +142,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
@@ -182,23 +171,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"
@@ -213,35 +191,31 @@ 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)
 
 base_LIBS="$LIBS"
 
 AC_SEARCH_LIBS(dlclose, dl)
 
 base_LIBS="$LIBS"
 
-dnl Check for SDL if enabled.
-AC_ARG_ENABLE(sdl, [  --enable-sdl    Configure to use SDL instead of GLUT], enable_sdl="yes", enable_sdl="")
+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_SDL, test "x$enable_sdl" = "xyes")
-if test "x$enable_sdl" = "xyes"; then
-    AC_DEFINE([PU_USE_SDL], 1, [Define to use SDL])
-else
-    AC_DEFINE([PU_USE_GLUT], 1, [Define to use glut])
+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
 fi
-
-dnl check for glut location
-AC_CHECK_HEADER(GL/glut.h)
-if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
-    AC_DEFINE([FG_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([FG_GLUT_H], <GLUT/glut.h>, [Define as glut.h include location])
-    else
-        if test "x$enable_sdl" != "xyes"; then
-            echo "Neither GL/glut.h nor GLUT/glut.h found.  Cannot continue"
-            exit
-        fi
-    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
@@ -259,12 +233,13 @@ case "${host}" in
     fi
 
     LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
     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
 
@@ -276,6 +251,7 @@ case "${host}" in
     dnl Mac OS X
 
     LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
     dnl Mac OS X
 
     LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
+    joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
     ;;
 
 *)
     ;;
 
 *)
@@ -317,89 +293,92 @@ case "${host}" in
 esac
 
 opengl_LIBS="$LIBS"
 esac
 
 opengl_LIBS="$LIBS"
-LIBS="$base_LIBS"
+LIBS="$base_LIBS $joystick_LIBS"
 
 dnl check for OpenAL libraries
 
 dnl check for OpenAL libraries
+OPENAL_OK="no"
+ALUT_OK="no"
 case "${host}" in
 *-*-cygwin* | *-*-mingw32*)
     dnl CygWin under Windoze.
 case "${host}" in
 *-*-cygwin* | *-*-mingw32*)
     dnl CygWin under Windoze.
-
-    AC_SEARCH_LIBS(alGenBuffers, openal32)
-    AC_SEARCH_LIBS(alutInit, [ openal32 ALut ] )
+    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"
     LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
+    openal_LIBS="$LIBS"
+    OPENAL_OK="$ac_cv_search_alGenBuffers"
+    ALUT_OK="$ac_cv_search_alutInit"
     ;;
 
 *-apple-darwin*)
     dnl Mac OS X
 
     LIBS="$LIBS -framework IOKit -framework OpenAL"
     ;;
 
 *-apple-darwin*)
     dnl Mac OS X
 
     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"
     ;;
 
 *)
     dnl default unix style machines
 
     ;;
 
 *)
     dnl default unix style machines
 
+    save_LIBS=$LIBS
+    LIBS="$LIBS $thread_LIBS"
     AC_SEARCH_LIBS(alGenBuffers, openal)
     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
 
     ;;
 
 esac
 
-openal_LIBS="$LIBS"
-LIBS="$base_LIBS"
-
-AC_SUBST(base_LIBS)
-AC_SUBST(openal_LIBS)
-AC_SUBST(opengl_LIBS)
-AC_SUBST(thread_LIBS)
-AC_SUBST(network_LIBS)
-
-# The following are C++ items that need to be tested for with the c++
-# compiler
-
-AC_LANG_PUSH(C++)
-
-# 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
+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.8.0 or newer])
-AC_TRY_RUN([
-#include <plib/ul.h>
-
-#define MIN_PLIB_VERSION 170
-
-int main() {
-    int major, minor, micro;
+if test "$ALUT_OK" == "no"; then
+    echo
+    echo "You *must* have the alut library installed on your system to build"
+    echo "SimGear!"
+    echo
+    echo "Please see README.OpenAL for more details."
+    echo
+    echo "configure aborted."
+    exit
+fi
 
 
-    if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
-        return -1;
-    }
 
 
-    return 0;
-}
+LIBS="$base_LIBS"
 
 
-],
-  AC_MSG_RESULT(yes),
-  [AC_MSG_RESULT(wrong version);
-   AC_MSG_ERROR([Install plib 1.8.0 or later first...])],
-  AC_MSG_RESULT(yes)
-)
+AC_SUBST(base_LIBS)
+AC_SUBST(openal_LIBS)
+AC_SUBST(opengl_LIBS)
+AC_SUBST(thread_LIBS)
+AC_SUBST(network_LIBS)
+AC_SUBST(joystick_LIBS)
 
 
-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])
+# The following are C++ items that need to be tested for with the c++
+# compiler
 
 
+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"
@@ -411,7 +390,7 @@ if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
     exit
 fi
 
     exit
 fi
 
-AC_MSG_CHECKING([for simgear 0.3.7 or newer])
+AC_MSG_CHECKING([for simgear 0.3.10 or newer])
 AC_TRY_RUN([
 #include <stdio.h>
 
 AC_TRY_RUN([
 #include <stdio.h>
 
@@ -422,7 +401,7 @@ AC_TRY_RUN([
 
 #define MIN_MAJOR 0
 #define MIN_MINOR 3
 
 #define MIN_MAJOR 0
 #define MIN_MINOR 3
-#define MIN_MICRO 7
+#define MIN_MICRO 10
 
 int main() {
     int major, minor, micro;
 
 int main() {
     int major, minor, micro;
@@ -451,7 +430,11 @@ int main() {
 LIBS="$saved_LIBS"
 
 dnl Check if SimGear was built with Norman's JPEG factory support
 LIBS="$saved_LIBS"
 
 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
@@ -470,6 +453,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
@@ -488,11 +597,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 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
@@ -506,7 +617,7 @@ LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS( [ \
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS( [ \
-        ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
+       ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
        random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
        truncf ] )
 LIBS=$old_LIBS
        random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
        truncf ] )
 LIBS=$old_LIBS
@@ -522,35 +633,45 @@ 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/perl/Makefile \
-        scripts/perl/examples/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/Include/config.h-msvc6 \
        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/Main/Makefile \
        src/Main/runfgfs \
        src/Main/runfgfs.bat \
@@ -559,8 +680,6 @@ AC_CONFIG_FILES([ \
        src/MultiPlayer/Makefile \
        src/Navaids/Makefile \
        src/Network/Makefile \
        src/MultiPlayer/Makefile \
        src/Navaids/Makefile \
        src/Network/Makefile \
-       src/Objects/Makefile \
-       src/Replay/Makefile \
        src/Scenery/Makefile \
        src/Scripting/Makefile \
        src/Sound/Makefile \
        src/Scenery/Makefile \
        src/Scripting/Makefile \
        src/Sound/Makefile \
@@ -569,9 +688,13 @@ AC_CONFIG_FILES([ \
        src/Traffic/Makefile \
        tests/Makefile \
        utils/Makefile \
        src/Traffic/Makefile \
        tests/Makefile \
        utils/Makefile \
-       utils/TerraSync/Makefile \
-       utils/Modeller/Makefile \
+       utils/GPSsmooth/Makefile \
+       utils/fgadmin/Makefile
+       utils/fgadmin/src/Makefile \
        utils/js_server/Makefile \
        utils/js_server/Makefile \
+       utils/Modeller/Makefile \
+       utils/TerraSync/Makefile \
+       utils/xmlgrep/Makefile \
 ])
 AC_OUTPUT
 
 ])
 AC_OUTPUT
 
@@ -590,7 +713,7 @@ else
 fi
 
 echo -n "Automake version: "
 fi
 
 echo -n "Automake version: "
-automake --version | head -1
+automake --version | head -1
 
 if test "x$with_multiplayer" != "xno"; then
     echo "Building with multiplayer support"
 
 if test "x$with_multiplayer" != "xno"; then
     echo "Building with multiplayer support"
@@ -601,3 +724,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
+