X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=configure.ac;h=d5761639d5ee5796c7ee1797b700429225df06c3;hb=1e87dd790344ccbe9078dc506652cfebf09b9ac1;hp=5cce26bcd8a5db15d179a028a039af54b5506b61;hpb=7d73dc660273dd1daa90a1625bfcb10ac313fa0f;p=simgear.git diff --git a/configure.ac b/configure.ac index 5cce26bc..d5761639 100644 --- a/configure.ac +++ b/configure.ac @@ -1,16 +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 AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx]) -# Require at least automake 2.52 +dnl Require at least automake 2.52 AC_PREREQ(2.52) dnl Initialize the automake stuff -AM_INIT_AUTOMAKE(SimGear, 0.3.1) +AM_INIT_AUTOMAKE(SimGear, 0.3.8) dnl Specify KAI C++ compiler and flags. dnl Borrowed with slight modification from blitz distribution. @@ -38,20 +36,45 @@ AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_LN_S +dnl set the $host variable based on local machine/os +AC_CANONICAL_HOST -# Used on the Irix platform -AR="ar" -ARFLAGS="cru" -OS=`uname -s` -if test "$OS" = "IRIX" -o "$OS" = "IRIX64"; then - if test "$CXX" = "CC"; then - AR="CC -ar" +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 -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 @@ -60,8 +83,7 @@ else echo "includedir changed to" $includedir "libdir is" $libdir fi -# 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]) @@ -89,39 +111,34 @@ 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") - -AC_EGREP_CPP(yes, -[#ifdef __CYGWIN__ - yes - #endif -],is_cygwin=yes, is_cygwin=no) - -echo "IS_CYGWIN = $is_cygwin" -AM_CONDITIONAL(IS_CYGWIN, test "x$is_cygwin" = "xyes") +if test "x$with_plib" != "x" ; then + echo "plib prefix is $with_plib" + EXTRA_DIRS="${EXTRA_DIRS} $with_plib" +fi -if test "x$HOSTTYPE" != "xmacintosh" -a "x$is_mingw" != "xyes"; then - dnl extra library and include directories - EXTRA_DIRS="/usr/X11R6" +dnl Determine an extra directories to add to include/lib search paths +case "${host}" in +*-apple-darwin* | *-*-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 @@ -129,33 +146,52 @@ 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 $FLAGS" + 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") -AC_CANONICAL_HOST +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. @@ -164,49 +200,44 @@ case "${host}" in AC_DEFINE([WIN32], 1, [Define for Win32 platforms]) AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms]) - dnl just define these to true and hope for the best - ac_cv_lib_glut_glutGetModifiers="yes" - ac_cv_lib_glut_glutGameModeString="yes" - - LIBS="$LIBS -lglut32 -lglu32 -lopengl32" + LIBS="$LIBS -lglu32 -lopengl32" LIBS="$LIBS -luser32 -lgdi32 -lwinmm" - if test "x$is_mingw" = "xyes" ; then - EXTRA_DIRS="${EXTRA_DIRS}" - fi + + dnl add -lwsock32 for mingwin + case "${host}" in + *-*-mingw32*) + base_LIBS="$base_LIBS -lws2_32" + ;; + esac + echo "Will link apps with $LIBS" - ;; + *-apple-darwin*) dnl Mac OS X - LIBS="$LIBS -framework GLUT -framework OpenGL -framework Carbon -lobjc" + LIBS="$LIBS -framework OpenGL -framework Carbon -lobjc" ;; + *) - dnl Reasonable stuff for 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) + 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_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]) @@ -214,49 +245,70 @@ 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 + AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ]) + ;; - dnl check for glut - AC_CHECK_LIB(glut, glutGetModifiers) +esac + +opengl_LIBS="$LIBS" +LIBS="$base_LIBS" - 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" +dnl check for OpenAL libraries +OPENAL_OK="no" +case "${host}" in +*-*-cygwin* | *-*-mingw32*) + dnl CygWin under Windoze. + AC_SEARCH_LIBS(alGenBuffers, openal32) + AC_SEARCH_LIBS(alutInit, [ openal32 ALut ] ) + LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32" + openal_LIBS="$LIBS" + OPENAL_OK="$ac_cv_search_alGenBuffers" ;; -esac -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 -fi +*-apple-darwin*) + dnl Mac OS X -if test "x$ac_cv_lib_glut_glutGameModeString" = "xno"; then + 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" + ;; + +*) + dnl default unix style machines + + save_LIBS=$LIBS + LIBS="$LIBS $thread_LIBS" + AC_SEARCH_LIBS(alGenBuffers, openal) + OPENAL_OK="$ac_cv_search_alGenBuffers" + 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 "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 "Please see README.OpenAL for more details." echo - echo " http://reality.sgi.com/opengl/glut3/glut3.html" - exit 1 + 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) -AM_CONDITIONAL(HAVE_XWINDOWS, test "x$ac_cv_lib_X11_XCreateWindow" = "xyes" ) +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++ @@ -277,11 +329,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.4 or newer]) AC_TRY_RUN([ #include -#define MIN_PLIB_VERSION 160 +#define MIN_PLIB_VERSION 184 int main() { int major, minor, micro; @@ -296,37 +348,35 @@ 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.4 or later first...])], AC_MSG_RESULT(yes) ) -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." - exit -fi +LIBS="$saved_LIBS" AC_LANG_POP -dnl Specify if we want logging (testing build) or not (release build) - 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]) @@ -339,10 +389,14 @@ 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) @@ -352,19 +406,30 @@ AC_CONFIG_FILES([ \ 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/material/Makefile \ + simgear/scene/model/Makefile \ + simgear/scene/sky/Makefile \ + simgear/scene/sky/clouds3d/Makefile \ + simgear/scene/tgdb/Makefile \ simgear/screen/Makefile \ simgear/serial/Makefile \ - simgear/sky/Makefile \ - simgear/sky/clouds3d/Makefile \ + simgear/sound/Makefile \ + simgear/structure/Makefile \ simgear/threads/Makefile \ simgear/timing/Makefile \ simgear/xgl/Makefile \ @@ -385,7 +450,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 @@ -394,8 +459,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 +