X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=configure.ac;h=9c94fc12441c3a2201987d991ba739eca1f39806;hb=0e5e760135b17fc0ede7187d703487cb5b45b593;hp=fb11f4942d202a9ad404252e738671e1422016f5;hpb=cedfade08de66edee3f9d31e3cb6ac5f59e1f151;p=simgear.git diff --git a/configure.ac b/configure.ac index fb11f494..9c94fc12 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.2) +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,24 +37,51 @@ 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 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" + 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) if echo $includedir | egrep "simgear$" > /dev/null; then echo "includedir is" $includedir "libdir is" $libdir @@ -91,10 +118,25 @@ else fi AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "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 + +# 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*) +*-apple-darwin* | *-*-cygwin* | *-*-mingw32*) echo no EXTRA_DIRS for $host ;; @@ -105,7 +147,7 @@ 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 @@ -134,55 +176,35 @@ 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" -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") -AC_CHECK_LIB(socket, socket) +AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_header_pthread_h" = "xyes") -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 -fi +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) + +base_LIBS="$LIBS" dnl check for OpenGL related libraries case "${host}" in @@ -193,7 +215,7 @@ 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 @@ -209,35 +231,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_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_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(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]) @@ -245,22 +260,89 @@ 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) - fi - - LIBS="$LIBS -lglut" + AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ]) ;; 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. + 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 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 + +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) +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) @@ -284,11 +366,11 @@ 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; @@ -303,59 +385,33 @@ 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) ) -dnl Check for MetaKit -AC_CHECK_HEADER(mk4.h) -if test "x$ac_cv_header_mk4_h" != "xyes"; then +LIBS="$saved_LIBS" + +AC_CHECK_HEADER(osg/Version) +if test "x$ac_cv_header_osg_Version" != "xyes"; then echo - echo "MetaKit library not found." + echo "You *must* have the OpenSceneGraph support 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 its included instructions" - echo "to compile and install on your system." + echo "Please see README.OSG for more details." 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 - -#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([ - -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) -) - -LIBS="$saved_LIBS" +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 @@ -388,46 +444,54 @@ 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/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/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 @@ -448,20 +512,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.)"