]> git.mxchange.org Git - flightgear.git/blobdiff - configure.ac
Functions should always return a value
[flightgear.git] / configure.ac
index 10307ed06bac2b014d94eba2e3d366d4d3d2d9bb..3ea1d4f501d180400e3c1639993fb46afa048cee 100644 (file)
@@ -10,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
-AM_INIT_AUTOMAKE(FlightGear, 0.9.10)
+AM_INIT_AUTOMAKE(FlightGear, 1.9.1)
 
 dnl Checks for programs.
 AC_PROG_MAKE_SET
@@ -20,9 +20,14 @@ AC_PROG_CXX
 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
-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"
@@ -38,6 +43,14 @@ if test "x$with_plib" != "x" ; then
     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*)
@@ -90,8 +103,12 @@ if test "x$with_logging" = "xno" ; then
     AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
 fi
 
-AC_ARG_ENABLE(sp_fdms, [  --enable-sp-fdms              Include special purpose Flight Models], [enable_sp_fdms="$enableval"] )
-AC_DEFINE([ENABLE_SP_FMDS], test "x$enable_sp_fdms" = "xyes", [Define to include special purpose FDMs])
+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
+    AC_DEFINE([ENABLE_SP_FDM], 0, [Define to include special purpose FDMs])
+fi
 AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
 
 
@@ -159,7 +176,7 @@ esac
 dnl Checks for libraries.
 
 dnl Thread related checks
-AC_SEARCH_LIBS(pthread_cancel, [pthread c_r])
+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"
@@ -182,17 +199,29 @@ 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)
+AC_SEARCH_LIBS(clock_gettime, rt)
 
 base_LIBS="$LIBS"
 
-dnl Check for SDL if enabled.
-AC_ARG_ENABLE(sdl, [  --enable-sdl                  Configure to use SDL instead of GLUT], [enable_sdl="$enableval"])
+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")
-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
+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
+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
@@ -273,14 +302,19 @@ opengl_LIBS="$LIBS"
 LIBS="$base_LIBS $joystick_LIBS"
 
 dnl check for OpenAL libraries
+OPENAL_OK="no"
+ALUT_OK="no"
 case "${host}" in
 *-*-cygwin* | *-*-mingw32*)
     dnl CygWin under Windoze.
-
-    AC_SEARCH_LIBS(alGenBuffers, openal32)
-    AC_SEARCH_LIBS(alutInit, [ openal32 ALut ] )
-    LIBS="$LIBS -ldsound -ldxguid -lole32"
+    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"
     ;;
 
 *-apple-darwin*)
@@ -288,6 +322,9 @@ case "${host}" in
 
     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"
     ;;
 
 *)
@@ -298,12 +335,36 @@ case "${host}" in
     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 "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
+
+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
+
+
 LIBS="$base_LIBS"
 
 AC_SUBST(base_LIBS)
@@ -318,47 +379,6 @@ AC_SUBST(joystick_LIBS)
 
 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
-    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])
-
-
 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])
@@ -376,7 +396,7 @@ if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
     exit
 fi
 
-AC_MSG_CHECKING([for simgear 0.3.10 or newer])
+AC_MSG_CHECKING([for SimGear 1.9.0 or newer])
 AC_TRY_RUN([
 #include <stdio.h>
 
@@ -385,9 +405,9 @@ AC_TRY_RUN([
 #define STRINGIFY(X) XSTRINGIFY(X)
 #define XSTRINGIFY(X) #X
 
-#define MIN_MAJOR 0
-#define MIN_MINOR 3
-#define MIN_MICRO 10
+#define MIN_MAJOR 1
+#define MIN_MINOR 9
+#define MIN_MICRO 0
 
 int main() {
     int major, minor, micro;
@@ -409,7 +429,7 @@ int main() {
 ],
   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)
 )
 
@@ -439,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")
 
+# 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
@@ -457,11 +603,40 @@ if test "x$ac_cv_header_zlib_h" != "xyes"; then
     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 \
-        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
@@ -475,7 +650,7 @@ LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
 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
@@ -491,30 +666,32 @@ AC_CONFIG_FILES([ \
        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/Include/config.h-msvc71 \
+       src/Include/config.h-msvc8 \
        src/Aircraft/Makefile \
        src/Airports/Makefile \
        src/ATC/Makefile \
+       src/ATCDCL/Makefile \
        src/Autopilot/Makefile \
        src/Cockpit/Makefile \
        src/Cockpit/built_in/Makefile \
        src/Environment/Makefile \
-       src/FDM/Balloon/Makefile \
        src/FDM/ExternalNet/Makefile \
        src/FDM/ExternalPipe/Makefile \
        src/FDM/JSBSim/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/Makefile \
        src/FDM/JSBSim/models/flight_control/Makefile \
        src/FDM/JSBSim/models/atmosphere/Makefile \
        src/FDM/JSBSim/models/propulsion/Makefile \
@@ -545,8 +722,11 @@ AC_CONFIG_FILES([ \
        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/xmlgrep/Makefile \
 ])