]> git.mxchange.org Git - flightgear.git/blobdiff - configure.ac
Merge branch 'jmt/acinclude'
[flightgear.git] / configure.ac
index 40106421306ef14640602f3b97c9c55aa8f93a0b..df8ba3dcb4b4647d7633865b493a8e28a75724fc 100644 (file)
@@ -10,17 +10,18 @@ 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, 1.9.1)
+AM_INIT_AUTOMAKE(FlightGear, 2.0.0)
 
 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.34.0])
+AX_BOOST_BASE([1.37.0])
 
 if test "x$BOOST_CPPFLAGS" != "x-I/usr/include" ; then
    CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
@@ -85,16 +86,32 @@ case "${host}" in
     ])
 
     # Mac OS X specific configure options
+    AC_ARG_WITH(cocoa_framework, [  --with-cocoa-framework       Use the Cocoa rather than Carbon]])
+    if test "x$with_cocoa_framework" != "x" ; then
+        macAPI=Cocoa
+        AC_MSG_NOTICE([Using Cocoa framework])
+    else
+        macAPI=Carbon
+        AC_MSG_NOTICE([Using Carbon framework])
+    fi
+
     AC_ARG_WITH(osg_framework, [  --with-osg-framework=PREFIX       Specify the prefix path to osg frameworks [default=standard framework paths]])
+    if test "x$with_osg_framework" != "x" ; then
+        echo "osg prefix is $with_osg_framework"
+       export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:$with_osg_framework"
+    fi
 
+    AC_ARG_WITH(plib_framework, [  --with-plib-framework=PREFIX       Specify the prefix path to PLIB framework [default=standard framework paths]])
     if test "x$with_plib_framework" != "x" ; then
         echo "plib prefix is $with_plib_framework"
+       export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:$with_plib_framework"
     fi
 
-    AC_ARG_WITH(plib_framework, [  --with-plib-framework=PREFIX       Specify the prefix path to PLIB framework [default=standard framework paths]])
-    if test "x$with_osg_framework" != "x" ; then
-        echo "osg prefix is $with_osg_framework"
+    AC_ARG_WITH(openal_framework, [ --with-openal-framework=PREFIX    Speicfy the prefix path to OpenAL.framework ])
+    if test "x$with_openal_framework" != "x"; then
+        echo "OpenAL framework prefix is $with_openal_framework"
     fi
+
     ;;
 esac
 
@@ -158,6 +175,17 @@ else
 fi
 AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
 
+# Specify whether we want to compile ATCDCL.
+# default to with_atcdcl=yes
+AC_ARG_ENABLE(atcdcl, [  --enable-atcdcl                Compile and link the depricated atc/ai module], [enable_atcdcl="$enableval"] )
+if test "x$enable_atcdcl" != "xno"; then
+    AC_DEFINE([ENABLE_ATCDCL], 1, [Define to include old ATC/AI module])
+else
+    AC_DEFINE([ENABLE_ATCDCL], 0, [Define to include old ATC/AI module])
+fi
+AM_CONDITIONAL(ENABLE_ATCDCL, test "x$enable_atcdcl" != "xno")
+
+
 
 dnl EXPERIMENTAL generic event driven input device
 # defaults to no
@@ -200,7 +228,7 @@ if test "x$with_threads" = "xyes"; then
     CFLAGS="$CFLAGS -D_REENTRANT"
 fi
 AC_CHECK_HEADER(pthread.h)
-AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
+
 
 dnl Used by JSBSim to conditionally compile in fgfs interface code
 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
@@ -260,6 +288,7 @@ 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"
+    LIBS="-lsgthreads $LIBS"
   fi
 fi
 
@@ -283,7 +312,7 @@ AC_SEARCH_LIBS(clock_gettime, rt)
 base_LIBS="$LIBS"
 
 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(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")
@@ -335,7 +364,7 @@ case "${host}" in
 *-apple-darwin*)
     dnl Mac OS X
 
-    LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
+    LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework $macAPI -lobjc"
     joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
     ;;
 
@@ -388,7 +417,7 @@ case "${host}" in
     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(alGenBuffers, [ openal32 openal 'openal -ldsound -lwinmm' ] )
     AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
     LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
     openal_LIBS="$LIBS"
@@ -399,11 +428,19 @@ case "${host}" in
 *-apple-darwin*)
     dnl Mac OS X
 
+    # Mac OS X has OpenAL.framework with ALUT by default
+    # so we can use it without checking it.
+    # Note: SimGear needs to check the existance of alut.h since it includes the header.
     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 Check for OpenAL.framework when --with-openal-framework is specified
+    if test "x$with_openal_framework" != "x"; then
+      AC_CHECK_FRAMEWORK(OpenAL, [#include <OpenAL/alut.h>], $with_openal_framework)
+    fi
+
     ;;
 
 *)
@@ -475,7 +512,7 @@ if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
     exit
 fi
 
-AC_MSG_CHECKING([for SimGear 1.9.0 or newer])
+AC_MSG_CHECKING([for SimGear 2.0.0 or newer])
 AC_TRY_RUN([
 #include <stdio.h>
 
@@ -484,8 +521,8 @@ AC_TRY_RUN([
 #define STRINGIFY(X) XSTRINGIFY(X)
 #define XSTRINGIFY(X) #X
 
-#define MIN_MAJOR 1
-#define MIN_MINOR 9
+#define MIN_MAJOR 2
+#define MIN_MINOR 0
 #define MIN_MICRO 0
 
 int main() {
@@ -589,6 +626,51 @@ 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])
 
+# Find the OSG libraries.  Note special handling for OS X frameworks
+if test "x$with_osg_framework" = "x"; then
+    if test "x$enable_osgdebug" = "xyes"; then
+        AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion, , [AC_MSG_ERROR(OpenThreads library not found.)],)
+        AC_CHECK_LIB(osgd,osgGetVersion, , [AC_MSG_ERROR(OpenSceneGraph library not found.)],)
+        AC_CHECK_LIB(osgUtild,osgUtilGetVersion, , [AC_MSG_ERROR(OpenSceneGraph utility library not found.)],)
+        AC_CHECK_LIB(osgDBd,osgDBGetVersion, , [AC_MSG_ERROR(OpenSceneGraph database library not found.)],)
+        AC_CHECK_LIB(osgTextd,osgTextGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Text library not found.)],)
+        AC_CHECK_LIB(osgGAd,osgGAGetVersion, , [AC_MSG_ERROR(OpenSceneGraph GUI Abstraction library not found.)],)
+        AC_CHECK_LIB(osgViewerd,osgViewerGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Viewer library not found.)],)
+        AC_CHECK_LIB(osgSimd,osgSimGetVersion, , [AC_MSG_ERROR(OpenSceneGraph simulation library not found.)],)
+        AC_CHECK_LIB(osgParticled,osgParticleGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Particle library not found.)],)
+        AC_CHECK_LIB(osgFXd, osgFXGetVersion, , [AC_MSG_ERROR(OpenSceneGraph FX library not found.)],)
+    else
+        AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion, , [AC_MSG_ERROR(OpenThreads library not found.)],)
+        AC_CHECK_LIB(osg,osgGetVersion, , [AC_MSG_ERROR(OpenSceneGraph library not found.)],)
+        AC_CHECK_LIB(osgUtil,osgUtilGetVersion, , [AC_MSG_ERROR(OpenSceneGraph utility library not found.)],)
+        AC_CHECK_LIB(osgDB,osgDBGetVersion, , [AC_MSG_ERROR(OpenSceneGraph database library not found.)],)
+        AC_CHECK_LIB(osgText,osgTextGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Text library not found.)],)
+        AC_CHECK_LIB(osgGA,osgGAGetVersion, , [AC_MSG_ERROR(OpenSceneGraph GUI Abstraction library not found.)],)
+        AC_CHECK_LIB(osgViewer,osgViewerGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Viewer library not found.)],)
+        AC_CHECK_LIB(osgSim,osgSimGetVersion, , [AC_MSG_ERROR(OpenSceneGraph simulation library not found.)],)
+        AC_CHECK_LIB(osgParticle,osgParticleGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Particle library not found.)],)
+        AC_CHECK_LIB(osgFX, osgFXGetVersion, , [AC_MSG_ERROR(OpenSceneGraph FX library not found.)],)
+    fi
+else
+    # Checking osg frameworks.
+    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_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>], $with_osg_framework)
+    openthreads_FRAMEWORK="$FRAMEWORKS"
+    AC_SUBST(osg_FRAMEWORKS)
+    AC_SUBST(openthreads_FRAMEWORK)
+fi
+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"; then
     echo
@@ -601,90 +683,48 @@ if test "x$ac_cv_header_osg_Version" != "xyes"; then
     exit
 fi
 
-# Find the OSG libraries.  Note special handling for OS X frameworks
-case "${host}" in
-*-apple-darwin*)
-    if test "x$with_osg_framework" = "x"; then
-        if test "x$enable_osgdebug" = "xyes"; then
-            # debug version of osg libs
-            AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
-            openthreads_LIBS="$LIBS"
-            LIBS=""
-            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)
-            OSG_LIBS="$LIBS -losgFXd $openthreads_LIBS"
-            LIBS=""
-        else
-            # release version of osg libs
-            AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
-            openthreads_LIBS="$LIBS"
-            LIBS=""
-            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)
-            OSG_LIBS="$LIBS -losgFX $openthreads_LIBS"
-            LIBS=""
-            # echo $LIBS
-        fi
-        AC_SUBST(openthreads_LIBS)
-        AC_SUBST(OSG_LIBS)
+
+AC_MSG_CHECKING([checking for osg::CullSettings::CLEAR_MASK])
+AC_COMPILE_IFELSE(
+  [AC_LANG_PROGRAM([[#include <osg/CullSettings>]],
+    [[osg::CullSettings::VariablesMask mask = osg::CullSettings::CLEAR_MASK;]])],
+  [AC_DEFINE([HAVE_CULLSETTINGS_CLEAR_MASK],1,[define if OSG has CullSettings::CLEAR_MASK])
+   AC_MSG_RESULT([yes])],
+  [AC_MSG_RESULT([no])])
+
+# Special handling for static version of OSG
+if test -n "`echo "$CPPFLAGS" "$CXXFLAGS" "$CFLAGS" | grep "\-DOSG_LIBRARY_STATIC" 2>/dev/null`" ; then
+    saved_LIBS="$LIBS"
+    LIBS=""
+    #***** Check image support (needed for static build) *****
+    AC_SEARCH_LIBS([jpeg_read_header], [jpeg], [CPPFLAGS="$CPPFLAGS -DOSG_JPEG_ENABLED"])
+    AC_SEARCH_LIBS([png_read_image], [png 'png -lz'], [CPPFLAGS="$CPPFLAGS -DOSG_PNG_ENABLED"])
+    AC_SEARCH_LIBS([TIFFOpen], [tiff], [CPPFLAGS="$CPPFLAGS -DOSG_TIFF_ENABLED"])
+    img_LIBS="$LIBS"
+    LIBS="$saved_LIBS"
+
+    if test "x$with_osg" != "x" ; then
+        osg_prefix="$with_osg"
     else
-        # Checking osg frameworks.
-        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_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>], $with_osg_framework)
-        openthreads_FRAMEWORK="$FRAMEWORKS"
-        AC_SUBST(osg_FRAMEWORKS)
-        AC_SUBST(openthreads_FRAMEWORK)
+        osg_prefix="/usr"
     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"
+    PKG_CHECK_EXISTS([openscenegraph], [osg_version="`$PKG_CONFIG --modversion openscenegraph 2>/dev/null`"])
+    LIBS="-L$osg_prefix/lib/osgPlugins-$osg_version -losgdb_bmp -losgdb_dds -losgdb_hdr -losgdb_pic -losgdb_pnm -losgdb_rgb -losgdb_tga \
+                                                          -losgdb_3ds -losgdb_ac -losgdb_ive -losgdb_osg -losgdb_txf \
+                                                          -losgVolume -losgTerrain $LIBS -losgUtil"
+
+    if test -n "`echo "$CPPFLAGS" "$CXXFLAGS" "$CFLAGS" | grep "\-DOSG_JPEG_ENABLED" 2>/dev/null`" ; then
+      LIBS="$LIBS -losgdb_jpeg"
     fi
-    ;;
-esac
-AM_CONDITIONAL(HAVE_FRAMEWORK_OSG, test "x$ac_cv_framework_osg" != "x")
+    if test -n "`echo "$CPPFLAGS" "$CXXFLAGS" "$CFLAGS" | grep "\-DOSG_PNG_ENABLED" 2>/dev/null`" ; then
+      LIBS="$LIBS -losgdb_png"
+    fi
+    if test -n "`echo "$CPPFLAGS" "$CXXFLAGS" "$CFLAGS" | grep "\-DOSG_TIFF_ENABLED" 2>/dev/null`" ; then
+      LIBS="$LIBS -losgdb_tiff"
+    fi
+
+    LIBS="$LIBS $img_LIBS"
+fi
 
 AC_LANG_POP
 
@@ -778,6 +818,7 @@ AC_CONFIG_FILES([ \
        src/Include/config.h-msvc6 \
        src/Include/config.h-msvc71 \
        src/Include/config.h-msvc8 \
+       src/Include/config.h-msvc90 \
        src/Aircraft/Makefile \
        src/Airports/Makefile \
        src/ATC/Makefile \
@@ -873,3 +914,8 @@ else
     echo "Include special purpose flight models: no"
 fi
 
+if test "x$enable_atcdcl" != "xno"; then
+    echo "Build depricated ATC/AI module: yes"
+else
+    echo "Build depricated ATC/AI module: no"
+fi