]> git.mxchange.org Git - simgear.git/blobdiff - configure.ac
Remove some debug output, fix version.h include path
[simgear.git] / configure.ac
index a12582a54ffc3a64007c688144eb9331cd6bacc5..28e846cd491bf215f9a35e98e562011d5cbd8c7f 100644 (file)
@@ -1,17 +1,17 @@
-dnl Process this file with autoget.sh to produce a working configure
+dnl Process this file with autogen.sh to produce a working configure
 dnl script.
-dnl
-dnl $Id$
 
-AC_INIT
+AC_INIT(SimGear, m4_esyscmd([cat ./version | tr -d '\n']), [http://www.flightgear.org])
+
+dnl Ensure touching the version causes autoconf to re-run
+AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/version'])
+
 AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx])
 
 dnl Require at least automake 2.52
 AC_PREREQ(2.52)
 
 dnl Initialize the automake stuff
-AM_INIT_AUTOMAKE(SimGear, 0.3.1)
-
 dnl Specify KAI C++ compiler and flags.
 dnl Borrowed with slight modification from blitz distribution.
 AC_ARG_WITH(cxx,
@@ -25,35 +25,81 @@ AC_ARG_WITH(cxx,
     ;;
   esac
 ])
+dnl set the $host variable based on local machine/os
+AC_CANONICAL_TARGET
+AM_INIT_AUTOMAKE([dist-bzip2])
 
-echo CXX = $CXX
-echo CC = $CC
+AC_ARG_ENABLE(headless,
+        AS_HELP_STRING([--enable-headless],[Enable only packages for headless build]))
+
+AC_MSG_CHECKING([for headless mode])
+AC_MSG_RESULT([$enable_headless])
+
+AM_CONDITIONAL(WANT_HEADLESS,[test "x$enable_headless" = "xyes"])
+
+AC_MSG_CHECKING([CXX])
+AC_MSG_RESULT([$CXX])
+AC_MSG_CHECKING([CC])
+AC_MSG_RESULT([$CC])
 
 dnl Checks for programs.
 AC_PROG_MAKE_SET
 AC_PROG_CC
 AC_PROG_CPP
 AC_PROG_CXX
+AC_PROG_CXXCPP
 AC_PROG_RANLIB
 AC_PROG_INSTALL
 AC_PROG_LN_S
+AX_BOOST_BASE([1.37.0])
+
+if test "x$BOOST_CPPFLAGS" != "x-I/usr/include" ; then
+   CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
+fi
 
 dnl set the $host variable based on local machine/os
 AC_CANONICAL_HOST
 
 dnl Used on the Irix platform
-AR="ar"
-ARFLAGS="cru"
 case "${host}" in
 *-*-irix*)
-    if test "$CXX" = "CC"; then
-        AR="CC -ar"
+    if test "x$CXX" = "xCC" -o "x$CXX" = "xccache CC"; then
+        AR="$CXX -ar"
         ARFLAGS="-o"
+        CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility/MIPSpro740"
+        compatibility_DIR="compatibility"
+        MIPSpro_DIRS="MIPSpro740"
+        AC_MSG_CHECKING([for MIPSpro compiler version 7.4 or newer])
+        AC_TRY_RUN([
+           int main() {
+              if ( _COMPILER_VERSION < 740 ) {
+                 return -1;
+              }
+              return 0;
+           }
+
+        ], AC_MSG_RESULT(yes),
+        [  AC_MSG_RESULT(no)
+           CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility/MIPSpro721"
+           MIPSpro_DIRS="$(MIPSpro_DIRS) MIPSpro721"
+           AC_MSG_WARN([Using our own subset of the STL headers])
+        ], AC_MSG_RESULT(yes))
+        AC_SUBST(MIPSpro_DIRS)
     fi
     ;;
+*)
+    AR="ar"
+    ARFLAGS="cru"
+    compatibility_DIR=
+    ;;
 esac
 AC_SUBST(AR)
 AC_SUBST(ARFLAGS)
+AC_SUBST(compatibility_DIR)
+
+# Show all compiler warnings by default
+CXXFLAGS="$CXXFLAGS -Wall"
+CFLAGS="$CFLAGS -Wall"
 
 if echo $includedir | egrep "simgear$" > /dev/null; then
     echo "includedir is" $includedir "libdir is" $libdir
@@ -61,7 +107,7 @@ else
     includedir="${includedir}/simgear"
     echo "includedir changed to" $includedir "libdir is" $libdir
 fi
-         
+
 dnl set logging; default value of with_logging=yes
 AC_ARG_WITH(logging, [  --with-logging          Include logging output (default)])
 if test "x$with_logging" = "xno" ; then
@@ -90,10 +136,48 @@ else
 fi
 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes")
 
+# 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
+
+AC_ARG_WITH(osg_framework, [  --with-osg-framework=PREFIX     Specify the prefix path to OSG.framework ])
+
+if test "x$with_osg_framework" != "x"; then
+    echo "osg framework prefix is $with_osg_framework"
+    CPPFLAGS = "$CPPFLAGS -F$with-osg-framework"
+    export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:$with_osg_framework"
+fi
+
+dnl specifying ALUT.framework (for user provided ALUT.framework)
+AC_ARG_WITH(alut_framework, [  --with-alut-framework=PREFIX    Specify the prefix path to ALUT.framework ])
+
+if test "x$with_alut_framework" != "x"; then
+    echo "ALUT framework prefix is $with_alut_framework"
+fi
+
+# specify the rti13 location
+AC_ARG_WITH(rti13, [  --with-rti13=PREFIX       Specify the prefix path to a HLA13 rti])
+
+if test "x$with_rti13" != "x" ; then
+    echo "rti13 prefix is $with_rti13"
+    EXTRA_DIRS="${EXTRA_DIRS} $with_rti13"
+fi
+
+# specify the rti13 location
+AC_ARG_WITH(rti1516, [  --with-rti1516=PREFIX     Specify the prefix path to a HLA1516 rti])
+
+if test "x$with_rti1516" != "x" ; then
+    echo "rti1516 prefix is $with_rti1516"
+    EXTRA_DIRS="${EXTRA_DIRS} $with_rti1516"
+fi
 
 dnl Determine an extra directories to add to include/lib search paths
 case "${host}" in
-*-apple-darwin* | *-*-mingw32*)
+*-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
     echo no EXTRA_DIRS for $host
     ;;
 
@@ -104,14 +188,14 @@ case "${host}" in
     if test -d /opt/X11R6 ; then
         EXTRA_DIR2="/opt/X11R6"
     fi
-    EXTRA_DIRS="$EXTRA_DIR1 $EXTRA_DIR2"
+    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 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 enough.  AM_CONDITIONALS are then referenced to conditionally
@@ -133,23 +217,38 @@ esac
 
 dnl Checks for libraries.
 
-null_LIBS="$LIBS"
-
-AC_CHECK_LIB(m, cos)
-
-base_LIBS="$LIBS"
-
 dnl Thread related checks
-AC_CHECK_LIB(pthread, pthread_exit)
 AC_CHECK_HEADER(pthread.h)
-if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
+AC_SEARCH_LIBS(pthread_exit, [pthread c_r])
+if test "x$ac_cv_header_pthread_h" = "xyes"; then
     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
     CFLAGS="$CFLAGS -D_REENTRANT"
+
+  if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
+    CXXFLAGS="-pthread $CXXFLAGS"
+    CFLAGS="-pthread $CFLAGS"
+  fi
 fi
-AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes")
 
-AC_CHECK_LIB(socket, socket)
+AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_header_pthread_h" = "xyes")
+
+thread_LIBS="$LIBS"
+LIBS=""
 
+dnl search for network related libraries
+AC_SEARCH_LIBS(inet_addr, xnet)
+AC_SEARCH_LIBS(socket, socket)
+
+network_LIBS="$LIBS"
+LIBS=""
+
+dnl check for some default libraries
+AC_SEARCH_LIBS(cos, m)
+AC_SEARCH_LIBS(clock_gettime, rt)
+
+base_LIBS="$LIBS"
+
+dnl check for OpenGL related libraries
 case "${host}" in
 *-*-cygwin* | *-*-mingw32*)
     dnl CygWin under Windoze.
@@ -158,13 +257,13 @@ case "${host}" in
     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
 
-    LIBS="$LIBS -lglut32 -lglu32 -lopengl32"
+    LIBS="$LIBS -lglu32 -lopengl32"
     LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
 
     dnl add -lwsock32 for mingwin
     case "${host}" in
     *-*-mingw32*)
-        LIBS="$LIBS -lws2_32"
+        base_LIBS="$base_LIBS -lws2_32"
         ;;
     esac
 
@@ -174,35 +273,28 @@ case "${host}" in
 *-apple-darwin*)
     dnl Mac OS X
 
-    LIBS="$LIBS -framework GLUT -framework OpenGL -framework Carbon -lobjc"
+    LIBS="$LIBS -framework OpenGL -framework Carbon -lobjc"
     ;;
 
 *)
     dnl X-Windows based machines
 
-    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_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
+    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)
+
+    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_CHECK_LIB(GL, glXCreateContext)
+        AC_SEARCH_LIBS(glXCreateContext, GL)
     fi
 
     dnl if using mesa, check for xmesa.h
-    if test "x$ac_cv_lib_MesaGL_glNewList" = "xyes" ; then
+    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])
@@ -210,36 +302,130 @@ case "${host}" in
         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)
+    AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
+    ;;
+
+esac
+
+opengl_LIBS="$LIBS"
+LIBS="$base_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 'openal -ldsound -lwinmm' ] )
+    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"
+    ;;
+
+*-apple-darwin*)
+    dnl Mac OS X
+
+    LIBS="$LIBS -framework IOKit -framework OpenAL -framework ALUT"
+    openal_LIBS="$LIBS"
+
+    if test "x$with_openal_lib" != "x"; then
+        echo "libopenal is not supported on Mac OS platform."
+        openal_LIBS=""
+    fi
+
+    AC_CHECK_HEADERS([OpenAL/al.h],[OPENAL_OK="yes"])
+    # Looking for alut.h
+    AC_CHECK_HEADERS([ALUT/alut.h],[ALUT_OK="yes"])
+
+    dnl Thank you Christian Bauer from SheepSaver
+    dnl Modified by Tatsuhiro Nishioka for accepting a given framework path
+    dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES, $3=FRAMEWORK_PATH, $4=ACTION_IF_TRUE) ; $3 is optional
+    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"
+        FRAMEWORKS="$FRAMEWORKS -framework $1"
+        if test "$3" = ""; then
+            FRAMEWORKS="$FRAMEWORKS $ADD2LD"
+        elif test "`echo $FRAMEWORKS | grep -- -F$3`" = ""; then
+            FRAMEWORKS="$FRAMEWORKS -F$3"
+            CXXFLAGS="$CXXFLAGS -F$3"
+            CPPFLAGS="$CPPFLAGS -F$3"
+            CCFLAGS="$CCFLAGS -F$3"
+            dnl This is needed for AC_TRY_LINK when a framework path is specified
+            export DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}:$3"
+        fi
+        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_IF([test AS_VAR_GET(ac_Framework) = yes], $4)
+
+    AS_VAR_POPDEF([ac_Framework])dnl
+    ])
+
+    dnl Check for ALUT.framework when --with-alut-framework is specified
+    if test "x$with_alut_framework" != "x"; then
+      AC_CHECK_FRAMEWORK(ALUT, [#include <ALUT/alut.h>], $with_alut_framework, [ALUT_OK="yes"])
     fi
 
-    LIBS="$LIBS -lglut"
+    ;;
+
+*)
+    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
 
-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
+if test "$OPENAL_OK" == "no" -a "x$enable_headless" != "xyes"; then
+    echo
+    echo "You *must* have the openal library installed on your system to build"
+    echo "SimGear!"
+    echo
+    echo "Please see README.OpenAL for more details."
+    echo
+    echo "configure aborted."
+    exit
 fi
 
-opengl_LIBS="$LIBS"
+if test "$ALUT_OK" == "no" -a "x$enable_headless" != "xyes"; 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
+
+
+
 LIBS="$base_LIBS"
 
 AC_SUBST(base_LIBS)
+AC_SUBST(openal_LIBS)
 AC_SUBST(opengl_LIBS)
+AC_SUBST(thread_LIBS)
+AC_SUBST(network_LIBS)
 
 dnl Check for MS Windows environment
 AC_CHECK_HEADER(windows.h)
@@ -248,91 +434,93 @@ AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
 # The following are C++ items that need to be tested for with the c++
 # compiler
 
+CXXCPP="g++ -E"
 AC_LANG_PUSH(C++)
 
-dnl 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
+# OpenSceneGraph
+case "${host}" in
+*-apple-darwin*)
+    if test "x$with_osg_framework" != "x"; then
+#       AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>], $with_osg_framework)
+#       AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>], $with_osg_framework)
+#       AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>], $with_osg_framework)
+#       AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>], $with_osg_framework)
+#       AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>], $with_osg_framework)
+#       AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>], $with_osg_framework)
+#       AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>], $with_osg_framework)
+#       AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>], $with_osg_framework)
+        AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>], $with_osg_framework)
+#       osg_FRAMEWORKS="$FRAMEWORKS"
+#       FRAMEWORKS=""
+#       AC_SUBST(osg_FRAMEWORKS)
+        AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>], $with_osg_framework)
+        openthreads_FRAMEWORK="$FRAMEWORKS"
+        FRAMEWORKS=""
+        AC_SUBST(openthreads_FRAMEWORK)
+    else
+        dnl
+        dnl This is needed when osg dynamic libs are specified
+        dnl instead of OSG frameworks on Mac OS X
+        dnl
+        AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
+    fi
+    ;;
+*)
+    if test "x$enable_osgdebug" = "xyes"; then
+        AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
+    else
+        AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
+    fi
+    ;;
+esac
+
+AM_CONDITIONAL(HAVE_FRAMEWORK_OSG, test "x$ac_cv_framework_osg" != "x")
+
+AC_CHECK_HEADER(osg/Version)
+
+if test "x$ac_cv_header_osg_Version" != "xyes" -o "x$ac_cv_lib_OpenThreads_OpenThreadsGetVersion" != "xyes"; then
+  if test "x$ac_cv_framework_osg" != "xyes"; then
     echo
-    echo "You *must* have the plib library installed on your system to build"
-    echo "SimGear!"
+    echo "You *must* have the OpenThreads library installed on your system"
+    echo "to build this version of SimGear!"
+    echo "   Maybe you need to specify --with-osg=DIR."
+    echo "   Maybe you need to specify some LDFLAGS to help the linker."
     echo
-    echo "Please see README.plib for more details."
+    echo "     LIBS: '$LIBS'"
+    echo "  LDFLAGS: '$LDFLAGS'"
+    echo " CPPFLAGS: '$CPPFLAGS'"
+    echo
+    echo "Please see README.OSG for more details."
     echo
     echo "configure aborted."
     exit
+  fi
 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 Check for MetaKit
-AC_CHECK_HEADER(mk4.h)
-if test "x$ac_cv_header_mk4_h" != "xyes"; then
+AC_CHECK_HEADER(boost/version.hpp)
+if test "x$ac_cv_header_boost_version_hpp" != "xyes"; then
     echo
-    echo "MetaKit library not found."
+    echo "You *must* have the Boost library installed on your system"
+    echo "to build this version of SimGear!"
     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 "     LIBS: '$LIBS'"
+    echo "  LDFLAGS: '$LDFLAGS'"
+    echo " CPPFLAGS: '$CPPFLAGS'"
     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;
-}
-
-],
-  AC_MSG_RESULT(yes),
-  [AC_MSG_RESULT(wrong version);
-   AC_MSG_ERROR([
+dnl Check for a HLA13 rti.
+dnl This is really tricky because of the ancient iostream stuff in RTI13
+saved_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS -DRTI_USES_STD_FSTREAM"
+AC_CHECK_HEADER(RTI.hh)
+CPPFLAGS="${saved_CPPFLAGS}"
 
-Install metakit 2.4.3 or later first.
-
-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)
-)
+dnl Up to now only RTI13
+AM_CONDITIONAL(ENABLE_HLA, test "x$ac_cv_header_RTI_hh" = "xyes")
+AM_CONDITIONAL(ENABLE_HLA13, test "x$ac_cv_header_RTI_hh" = "xyes")
 
 AC_LANG_POP
 
@@ -345,18 +533,51 @@ if test "x$ac_cv_header_zlib_h" != "xyes"; then
     echo "If your OS does not provide an installable package for zlib"
     echo "you will have to compile and install it first yourself.  A copy"
     echo "of zlib-1.1.4.tar.gz is included with SimGear.  You will"
-    echo "have to untar this source code, and follow it's included instructions"
+    echo "have to untar this source code, and follow its included instructions"
     echo "to compile and install on your system."
     echo
     echo "configure aborted."
     echo
 fi
 
+dnl Check for Subversion library support
+# libsvn support defaults to yes
+save_LIBS=$LIBS
+save_CPPFLAGS=$CPPFLAGS
+AC_ARG_WITH(libsvn, [  --without-libsvn        Do not use built-in subversion (libsvn) for simgear [default=no]], [], [with_libsvn=yes])
+if test "x$with_libsvn" = "xyes"; then
+    LIBS="`apr-1-config --link-ld`"
+    CPPFLAGS="-I/usr/include/subversion-1 `apr-1-config --includes --cppflags`"
+    AC_CHECK_HEADERS([svn_client.h])
+       if test "x$ac_cv_header_svn_client_h" = "xyes"; then
+       echo "Using built-in subversion (libsvn) for scenery downloads."
+       AC_SEARCH_LIBS(svn_client_checkout, svn_client-1,
+                      [AC_DEFINE([HAVE_LIBSVN_CLIENT_1], [1], [Define to 1 if you have libsvn_client-1])],
+                      [AC_MSG_ERROR(svn_client-1 library not found.)],)
+       AC_SEARCH_LIBS(svn_cmdline_init, svn_subr-1, , [AC_MSG_ERROR(svn_subr-1 library not found.)],)
+       AC_SEARCH_LIBS(svn_ra_initialize, svn_ra-1, , [AC_MSG_ERROR(svn_ra-1 library not found.)],)
+       svn_LIBS=$LIBS
+       svn_CPPFLAGS=$CPPFLAGS
+       AC_SUBST(svn_LIBS)
+       AC_SUBST(svn_CPPFLAGS)
+       else
+       echo "Libsvn not found. Will use command line subversion for scenery downloads."
+       svn_LIBS=""
+       svn_CPPFLAGS=""
+       fi
+else
+echo "Libsvn explicitly disabled. Will use command line subversion for scenery downloads."
+  svn_LIBS=""
+  svn_CPPFLAGS=""
+fi
+LIBS=$save_LIBS
+CPPFLAGS=$save_CPPFLAGS
+
 dnl Checks for header files.
 AC_HEADER_STDC
 AC_CHECK_HEADERS( \
        fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
-       sys/stat.h sys/time.h sys/timeb.h unistd.h winbase.h values.h )
+       sys/stat.h sys/time.h sys/timeb.h unistd.h values.h )
 
 if test "x$ac_cv_header_stdint_h" = "xyes"; then
     AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
@@ -365,40 +586,56 @@ fi
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 AC_TYPE_SIZE_T
+AC_TYPE_MODE_T
 AC_HEADER_TIME
 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_CHECK_FUNCS( \
+AC_CHECK_FUNCS( \
         ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
-       random drand48 setitimer getitimer signal GetLocalTime rint getrusage )
+       random drand48 setitimer getitimer signal GetLocalTime rint getrusage ] )
+LIBS=$old_LIBS
 
 AM_CONFIG_HEADER(simgear/simgear_config.h)
 
 AC_CONFIG_FILES([ \
        Makefile \
        SimGear.spec \
-       src-libs/Makefile \
        simgear/Makefile \
        simgear/version.h \
+       simgear/compatibility/Makefile \
+       simgear/compatibility/MIPSpro721/Makefile \
+       simgear/compatibility/MIPSpro740/Makefile \
        simgear/bucket/Makefile \
        simgear/debug/Makefile \
        simgear/ephemeris/Makefile \
+       simgear/hla/Makefile \
        simgear/io/Makefile \
        simgear/magvar/Makefile \
        simgear/math/Makefile \
-       simgear/metar/Makefile \
+       simgear/environment/Makefile \
        simgear/misc/Makefile \
+       simgear/nasal/Makefile \
+       simgear/props/Makefile \
        simgear/route/Makefile \
+       simgear/scene/Makefile \
+       simgear/scene/bvh/Makefile \
+       simgear/scene/material/Makefile \
+       simgear/scene/model/Makefile \
+       simgear/scene/sky/Makefile \
+       simgear/scene/tgdb/Makefile \
+       simgear/scene/util/Makefile \
+       simgear/scene/tsync/Makefile \
        simgear/screen/Makefile \
        simgear/serial/Makefile \
-       simgear/sky/Makefile \
-       simgear/sky/clouds3d/Makefile \
+       simgear/sound/Makefile \
+       simgear/structure/Makefile \
        simgear/threads/Makefile \
        simgear/timing/Makefile \
-       simgear/xgl/Makefile \
        simgear/xml/Makefile \
 ])
 AC_OUTPUT
@@ -419,20 +656,13 @@ fi
 echo -n "Automake version: "
 automake --version | head -1
 
-if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
-   echo "With GL/glut.h"
-fi
-if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then
-   echo "With GLUT/glut.h"
-fi
-
 if test "x$with_jpeg_factory" = "xyes"; then
    echo "With JPEG Factory support"
 else
    echo "Without JPEG Factory support"
 fi
 
-if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
+if test "x$ac_cv_header_pthread_h" = "xyes"; then
    echo "Threads: pthread lib found."
 else
    echo "Threads: no threads (pthread lib not found.)"