X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=configure.ac;h=e82399f41fa3ba34730881dfd9924f8830ed0cff;hb=b784bebaa927d92cc266933b145d25794a36c452;hp=d3035616f8203b430ee8753fac6a84241bdab660;hpb=06f3cb4f8ed697f4b4a73b2529b31cffce6a2041;p=simgear.git diff --git a/configure.ac b/configure.ac index d3035616..e82399f4 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,5 @@ dnl Process this file with autoget.sh to produce a working configure dnl script. -dnl -dnl $Id$ AC_INIT AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx]) @@ -10,7 +8,7 @@ dnl Require at least automake 2.52 AC_PREREQ(2.52) dnl Initialize the automake stuff -AM_INIT_AUTOMAKE(SimGear, 0.3.7) +AM_INIT_AUTOMAKE(SimGear, 1.9.1) dnl Specify KAI C++ compiler and flags. dnl Borrowed with slight modification from blitz distribution. @@ -26,8 +24,10 @@ AC_ARG_WITH(cxx, esac ]) -echo CXX = $CXX -echo CC = $CC +AC_MSG_CHECKING([CXX]) +AC_MSG_RESULT([$CXX]) +AC_MSG_CHECKING([CC]) +AC_MSG_RESULT([$CC]) dnl Checks for programs. AC_PROG_MAKE_SET @@ -37,6 +37,11 @@ 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 dnl set the $host variable based on local machine/os AC_CANONICAL_HOST @@ -121,9 +126,29 @@ if test "x$with_plib" != "x" ; then EXTRA_DIRS="${EXTRA_DIRS} $with_plib" fi +AC_ARG_WITH(plib_framework, [ --with-plib-framework=PREFIX Specify the prefix path to PLIB.framework ]) + +if test "x$with_plib_framework" != "x"; then + echo "plib framework prefix is $with_plib_framework" +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 + +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" +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 ;; @@ -165,33 +190,18 @@ dnl Checks for libraries. dnl Thread related checks AC_CHECK_HEADER(pthread.h) -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 +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" -fi -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" + + if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then CXXFLAGS="-pthread $CXXFLAGS" - CFLAGS="-pthread $FLAGS" - 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 - else - dnl This is cheating a bit. pthread_exit comes with using -pthread, not --lpthread - ac_cv_lib_pthread_pthread_exit="yes" - fi - LIBS=$save_LIBS + 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") +AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_header_pthread_h" = "xyes") thread_LIBS="$LIBS" LIBS="" @@ -205,6 +215,7 @@ LIBS="" dnl check for some default libraries AC_SEARCH_LIBS(cos, m) +AC_SEARCH_LIBS(clock_gettime, rt) base_LIBS="$LIBS" @@ -267,34 +278,79 @@ case "${host}" in esac +AC_SEARCH_LIBS(glutGetModifiers, [ glut glut32 freeglut ], have_glut=yes, have_glut=no) +AM_CONDITIONAL(HAVE_GLUT, test "x$have_glut" = "xyes") + 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. - - 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" + 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" + 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 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) ; $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" + 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_VAR_POPDEF([ac_Framework])dnl + ]) + ;; *) 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 @@ -310,7 +366,19 @@ if test "$OPENAL_OK" == "no"; then exit fi -openal_LIBS="$LIBS" +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) @@ -326,9 +394,23 @@ 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 +case ${host} in +*-apple-darwin*) + # Check PLIB framework availability when with-plib-framework is specified + if test "x$with_plib_framework" != "x"; then + AC_CHECK_FRAMEWORK(PLIB, [#include ], $with_plib_framework) + plib_FRAMEWORK="$FRAMEWORKS" + FRAMEWORKS="" + AC_SUBST(plib_FRAMEWORK) + fi + ;; +esac +AM_CONDITIONAL(HAVE_FRAMEWORK_PLIB, test "x$ac_cv_framework_PLIB" != "x") + AC_CHECK_HEADER(plib/ul.h) if test "x$ac_cv_header_plib_ul_h" != "xyes"; then echo @@ -341,15 +423,13 @@ if test "x$ac_cv_header_plib_ul_h" != "xyes"; then exit fi -AC_MSG_CHECKING([for plib 1.6.0 or newer]) +AC_MSG_CHECKING([for plib 1.8.5 or newer]) AC_TRY_RUN([ #include -#define MIN_PLIB_VERSION 160 +#define MIN_PLIB_VERSION 185 int main() { - int major, minor, micro; - if ( PLIB_VERSION < MIN_PLIB_VERSION ) { return -1; } @@ -360,12 +440,67 @@ int main() { ], AC_MSG_RESULT(yes), [AC_MSG_RESULT(wrong version); - AC_MSG_ERROR([Install plib 1.6.0 or later first...])], + AC_MSG_ERROR([Install plib 1.8.5 or later first...])], AC_MSG_RESULT(yes) ) LIBS="$saved_LIBS" +# OpenSceneGraph +case "${host}" in +*-apple-darwin*) + if test "x$with_osg_framework" != "x"; then + AC_CHECK_FRAMEWORK(osgViewer, [#include ], $with_osg_framework) + AC_CHECK_FRAMEWORK(osgGA, [#include ], $with_osg_framework) + AC_CHECK_FRAMEWORK(osgText, [#include ], $with_osg_framework) + AC_CHECK_FRAMEWORK(osgFX, [#include ], $with_osg_framework) + AC_CHECK_FRAMEWORK(osgUtil, [#include ], $with_osg_framework) + AC_CHECK_FRAMEWORK(osgDB, [#include ], $with_osg_framework) + AC_CHECK_FRAMEWORK(osgSim, [#include ], $with_osg_framework) + AC_CHECK_FRAMEWORK(osgParticle, [#include ], $with_osg_framework) + AC_CHECK_FRAMEWORK(osg, [#include ], $with_osg_framework) + osg_FRAMEWORKS="$FRAMEWORKS" + FRAMEWORKS="" + AC_SUBST(osg_FRAMEWORKS) + AC_CHECK_FRAMEWORK(OpenThreads, [#include ], $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 + LDFLAGS="$LDFLAGS -L$with_osg" + 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"; then + if test "x$ac_cv_framework_osg" != "xyes"; then + echo + echo "You *must* have the OpenSceneGraph support library installed on your system" + echo "to build this version of SimGear!" + echo + echo "Please see README.OSG for more details." + echo + echo "configure aborted." + exit + fi +fi + +AC_CHECK_HEADER(boost/version.hpp) +if test "x$ac_cv_header_boost_version_hpp" != "xyes"; then + echo + echo "You *must* have the Boost library installed on your system" + echo "to build this version of SimGear!" + echo + echo "configure aborted." + exit +fi + AC_LANG_POP dnl Check for system installed zlib @@ -397,6 +532,7 @@ 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 @@ -415,7 +551,6 @@ AM_CONFIG_HEADER(simgear/simgear_config.h) AC_CONFIG_FILES([ \ Makefile \ SimGear.spec \ - src-libs/Makefile \ simgear/Makefile \ simgear/version.h \ simgear/compatibility/Makefile \ @@ -433,19 +568,18 @@ AC_CONFIG_FILES([ \ simgear/props/Makefile \ simgear/route/Makefile \ simgear/scene/Makefile \ - simgear/scene/fgsg/Makefile \ + simgear/scene/bvh/Makefile \ simgear/scene/material/Makefile \ simgear/scene/model/Makefile \ simgear/scene/sky/Makefile \ - simgear/scene/sky/clouds3d/Makefile \ simgear/scene/tgdb/Makefile \ + simgear/scene/util/Makefile \ simgear/screen/Makefile \ simgear/serial/Makefile \ simgear/sound/Makefile \ simgear/structure/Makefile \ simgear/threads/Makefile \ simgear/timing/Makefile \ - simgear/xgl/Makefile \ simgear/xml/Makefile \ ]) AC_OUTPUT @@ -472,7 +606,7 @@ 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.)"