X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=configure.ac;h=9c94fc12441c3a2201987d991ba739eca1f39806;hb=0e5e760135b17fc0ede7187d703487cb5b45b593;hp=3fdc71ed652ef79bc926c8627f2c8ea580796852;hpb=8c4ee69aeba5b8f0d1620be6a9e96f258604f9da;p=simgear.git diff --git a/configure.ac b/configure.ac index 3fdc71ed..9c94fc12 100644 --- a/configure.ac +++ b/configure.ac @@ -1,15 +1,14 @@ -dnl Process this file with aclocal ; automake -a ; autoconf to produce a -dnl working configure script. -dnl -dnl $Id$ +dnl Process this file with autoget.sh to produce a working configure +dnl script. -AC_INIT(simgear/bucket/newbucket.cxx) +AC_INIT +AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx]) -# Require at least automake 2.53 -AC_PREREQ(2.53) +dnl Require at least automake 2.52 +AC_PREREQ(2.52) dnl Initialize the automake stuff -AM_INIT_AUTOMAKE(SimGear, 0.0.19pre1) +AM_INIT_AUTOMAKE(SimGear, 1.9.1) dnl Specify KAI C++ compiler and flags. dnl Borrowed with slight modification from blitz distribution. @@ -25,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 @@ -36,16 +37,52 @@ AC_PROG_CXX AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_LN_S +AX_BOOST_BASE([1.34.0]) -AR="ar" -OS=`uname -s` -if test "$OS" = "IRIX" -o "$OS" = "IRIX64"; then - if test "$CXX" = "CC"; then - AR="CC -ar" - AC_SUBST(AR) - fi +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 +case "${host}" in +*-*-irix*) + 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) + if echo $includedir | egrep "simgear$" > /dev/null; then echo "includedir is" $includedir "libdir is" $libdir else @@ -53,14 +90,7 @@ else echo "includedir changed to" $includedir "libdir is" $libdir fi -# Determine version of automake ... important because of -# incompatibilities between versions -AUTO_MAKE_VERSION=`automake --version | head -1 | awk '{print $4}' | sed -e 's/\-p[[0-9]]$//' | sed -e 's/\.//'` -AM_CONDITIONAL(ANCIENT_AUTOMAKE, test $AUTO_MAKE_VERSION -lt 14) -AM_CONDITIONAL(OLD_AUTOMAKE, test $AUTO_MAKE_VERSION -lt 15) - -# set logging default value -# with_logging=yes +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 AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output]) @@ -88,39 +118,42 @@ 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]) -dnl Check for MS Windows environment -AC_CHECK_HEADER(windows.h) - -AC_EGREP_CPP(yes, -[#ifdef __MINGW32__ - yes - #endif -],is_mingw=yes, is_mingw=no) - -echo "IS_MINGW = $is_mingw" -AM_CONDITIONAL(IS_MINGW, test "x$is_mingw" = "xyes") +if test "x$with_plib" != "x" ; then + echo "plib prefix is $with_plib" + EXTRA_DIRS="${EXTRA_DIRS} $with_plib" +fi -AC_EGREP_CPP(yes, -[#ifdef __CYGWIN__ - yes - #endif -],is_cygwin=yes, is_cygwin=no) +# specify the osg location +AC_ARG_WITH(osg, [ --with-osg=PREFIX Specify the prefix path to osg]) -echo "IS_CYGWIN = $is_cygwin" -AM_CONDITIONAL(IS_CYGWIN, test "x$is_cygwin" = "xyes") +if test "x$with_osg" != "x" ; then + echo "osg prefix is $with_osg" + EXTRA_DIRS="${EXTRA_DIRS} $with_osg" +fi -if test "x$HOSTTYPE" != "xmacintosh" -a "x$is_mingw" != "xyes"; then - dnl extra library and include directories - EXTRA_DIRS="/usr/local /usr/local/plib /usr/X11R6" +dnl Determine an extra directories to add to include/lib search paths +case "${host}" in +*-apple-darwin* | *-*-cygwin* | *-*-mingw32*) + echo no EXTRA_DIRS for $host + ;; +*) + if test -d /usr/X11R6 ; then + EXTRA_DIR1="/usr/X11R6" + fi if test -d /opt/X11R6 ; then - EXTRA_DIRS="$EXTRA_DIRS /opt/X11R6" + EXTRA_DIR2="/opt/X11R6" fi -fi + 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 automake fold so it is potentially dangerous. But, we are dnl beginning to run into cases where the standard checks are not @@ -128,65 +161,98 @@ dnl enough. AM_CONDITIONALS are then referenced to conditionally dnl build a Makefile.in from a Makefile.am which lets us define custom dnl includes, compile alternative source files, etc. -dnl X11 might be installed on Mac OS X, don't want to use it if it is. -if test "x$HOSTTYPE" != "xmacintosh" ; then - dnl Check for X11 (fancy) - AC_PATH_XTRA -fi - -dnl Checks for libraries. +dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want +dnl to use it if it is. +case "${host}" in +*-apple-darwin* | *-*-cygwin* | *-*-mingw32*) + echo no fancy X11 check + ;; -null_LIBS="$LIBS" +*) + AC_PATH_XTRA + ;; -AC_CHECK_LIB(m, cos) +esac -base_LIBS="$LIBS" +dnl Checks for libraries. 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) - -dnl X11 might be installed, but we don't want to use it for OSX -dw- -if test "x$HOSTTYPE" != "xmacintosh" ; then - 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) -fi + +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) + +base_LIBS="$LIBS" dnl check for OpenGL related libraries +case "${host}" in +*-*-cygwin* | *-*-mingw32*) + dnl CygWin under Windoze. + + echo Win32 specific hacks... + AC_DEFINE([WIN32], 1, [Define for Win32 platforms]) + AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms]) + + LIBS="$LIBS -lglu32 -lopengl32" + LIBS="$LIBS -luser32 -lgdi32 -lwinmm" + + dnl add -lwsock32 for mingwin + case "${host}" in + *-*-mingw32*) + base_LIBS="$base_LIBS -lws2_32" + ;; + esac -if test "x$HOSTTYPE" = "xmacintosh" ; then - dnl Macintosh OSX - LIBS="$LIBS -framework OpenGL -framework GLUT" -elif test "x$ac_cv_header_windows_h" != "xyes" ; then - dnl Reasonable stuff for X-Windows based machines - - 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 + echo "Will link apps with $LIBS" + ;; + +*-apple-darwin*) + dnl Mac OS X + + LIBS="$LIBS -framework OpenGL -framework Carbon -lobjc" + ;; + +*) + dnl X-Windows based machines + + 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]) @@ -194,85 +260,105 @@ elif test "x$ac_cv_header_windows_h" != "xyes" ; then 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 + AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ]) + ;; - dnl check for glut - AC_CHECK_LIB(glut, glutGetModifiers) +esac - dnl test for glutGameModeString, but avoid adding glut a second time into - dnl the list of libraries - save_LIBS="$LIBS" - AC_CHECK_LIB(glut, glutGameModeString) - LIBS="$save_LIBS" -else - dnl Win32 libs +AC_SEARCH_LIBS(glutGetModifiers, [ glut glut32 freeglut ], have_glut=yes, have_glut=no) +AM_CONDITIONAL(HAVE_GLUT, test "x$have_glut" = "xyes") - echo Win32 specific hacks... - AC_DEFINE([WIN32], 1, [Define for Win32 platforms]) +opengl_LIBS="$LIBS" +LIBS="$base_LIBS" - dnl force a failed check since we will be building under windoze - AM_CONDITIONAL(ENABLE_XMESA_FX, test "no" = "yes") - - dnl just define these to true and hope for the best - ac_cv_lib_glut_glutGetModifiers="yes" - ac_cv_lib_glut_glutGameModeString="yes" - - if test "x$with_sgi_opengl" = "xyes" ; then - echo "Building with glut.dll, glu.dll, and opengl.dll" - WIN32_GLUT=glut - WIN32_GLU=glu - WIN32_OPENGL=opengl - else - echo "Building with glut32.dll, glu32.dll, and opengl32.dll" - WIN32_GLUT=glut32 - WIN32_GLU=glu32 - WIN32_OPENGL=opengl32 - fi +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" + ;; - LIBS="$LIBS -l${WIN32_GLUT} -l${WIN32_GLU} -l${WIN32_OPENGL}" - LIBS="$LIBS -luser32 -lgdi32" - if test "x$is_mingw" = "xyes" ; then - EXTRA_DIRS="${EXTRA_DIRS}" - fi - echo "Will link apps with $LIBS" -fi +*-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" + ;; -if test "x$ac_cv_lib_glut_glutGetModifiers" = "xno"; then - echo - echo "Unable to find the necessary OpenGL or GLUT libraries." - echo "See config.log for automated test details and results ..." - exit 1 +*) + 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 "x$ac_cv_lib_glut_glutGameModeString" = "xno"; then +if test "$ALUT_OK" == "no"; then echo - echo "Your version of glut doesn't support game mode." - echo "You need to install the latest version of glut. If your" - echo "distribution doesn't provide a newer version, you can get the source" - echo "code from:" + echo "You *must* have the alut library installed on your system to build" + echo "SimGear!" echo - echo " http://reality.sgi.com/opengl/glut3/glut3.html" - exit 1 + echo "Please see README.OpenAL for more details." + echo + echo "configure aborted." + exit fi -opengl_LIBS="$LIBS" + + 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) +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 -AM_CONDITIONAL(HAVE_XWINDOWS, test "x$ac_cv_lib_X11_XCreateWindow" = "xyes" ) +AC_LANG_PUSH(C++) dnl Check for "plib" without which we cannot go on -AC_CHECK_HEADER(plib/pu.h) -if test "x$ac_cv_header_plib_pu_h" != "xyes"; then +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 "SimGear!" echo echo "Please see README.plib for more details." echo @@ -280,37 +366,76 @@ if test "x$ac_cv_header_plib_pu_h" != "xyes"; then exit fi -AC_CHECK_HEADER(plib/ssgaLensFlare.h) -if test "x$ac_cv_header_plib_ssgaLensFlare_h" = "xyes"; then - AC_DEFINE([FG_CHEESY_LENS_FLARE], 1, [Define for cheesy lens flare effect]) -fi +AC_MSG_CHECKING([for plib 1.8.5 or newer]) +AC_TRY_RUN([ +#include -dnl Check for system installed metakit -AC_CHECK_HEADER(mk4.h) -if test "x$ac_cv_header_mk4_h" != "xyes"; then - echo - echo "Metakit not found, you will need to install this first." - echo "Please read the README.metakit for more information." +#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) +) + +LIBS="$saved_LIBS" + +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 this version of SimGear!" + echo + echo "Please see README.OSG for more details." + echo + echo "configure aborted." exit 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 -dnl Specify if we want logging (testing build) or not (release build) +AC_LANG_POP dnl Check for system installed zlib AC_CHECK_HEADER(zlib.h) if test "x$ac_cv_header_zlib_h" != "xyes"; then - echo - echo "zlib not found, you will need to install this first." - echo "Please read the README.zlib for more information." - exit + echo + echo "zlib library not found." + echo + 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 its included instructions" + echo "to compile and install on your system." + echo + echo "configure aborted." + echo fi 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 windows.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]) @@ -319,43 +444,58 @@ 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( ftime gettimeofday timegm memcpy bcopy mktime strstr rand \ - random drand48 setitimer getitimer signal GetLocalTime rint getrusage ) +AC_CHECK_FUNCS( [ \ + ftime gettimeofday timegm memcpy bcopy mktime strstr rand \ + random drand48 setitimer getitimer signal GetLocalTime rint getrusage ] ) +LIBS=$old_LIBS AM_CONFIG_HEADER(simgear/simgear_config.h) -AC_OUTPUT( \ +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/interpreter/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/sky/Makefile \ + simgear/sound/Makefile \ + simgear/structure/Makefile \ simgear/threads/Makefile \ simgear/timing/Makefile \ - simgear/xgl/Makefile \ simgear/xml/Makefile \ -) +]) +AC_OUTPUT -# AC_OUTPUT_COMMANDS([]) echo "" echo "Configure Summary" @@ -369,7 +509,7 @@ else echo "Debug messages: yes" fi -echo -n "Automake version: ($AUTO_MAKE_VERSION) " +echo -n "Automake version: " automake --version | head -1 if test "x$with_jpeg_factory" = "xyes"; then @@ -378,8 +518,9 @@ 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.)" fi +