]> git.mxchange.org Git - simgear.git/blobdiff - configure.ac
Harald JOHNSEN:
[simgear.git] / configure.ac
index c16390d4745631a8dd45c0e96bc1cf1333affd21..8ed44bd036f399c119ef9d1594b56563e3a2fa48 100644 (file)
@@ -1,7 +1,5 @@
 dnl Process this file with autoget.sh to produce a working configure
 dnl script.
 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])
 
 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
 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.
 
 dnl Specify KAI C++ compiler and flags.
 dnl Borrowed with slight modification from blitz distribution.
@@ -42,18 +40,41 @@ dnl set the $host variable based on local machine/os
 AC_CANONICAL_HOST
 
 dnl Used on the Irix platform
 AC_CANONICAL_HOST
 
 dnl Used on the Irix platform
-AR="ar"
-ARFLAGS="cru"
 case "${host}" in
 *-*-irix*)
 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"
         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)
 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
 
 if echo $includedir | egrep "simgear$" > /dev/null; then
     echo "includedir is" $includedir "libdir is" $libdir
@@ -90,10 +111,17 @@ else
 fi
 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes")
 
 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
 
 dnl Determine an extra directories to add to include/lib search paths
 case "${host}" in
 
 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
     ;;
 
     echo no EXTRA_DIRS for $host
     ;;
 
@@ -104,7 +132,7 @@ case "${host}" in
     if test -d /opt/X11R6 ; then
         EXTRA_DIR2="/opt/X11R6"
     fi
     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
     ;;
 
 esac
@@ -133,36 +161,35 @@ esac
 
 dnl Checks for libraries.
 
 
 dnl Checks for libraries.
 
-null_LIBS="$LIBS"
-
-AC_CHECK_LIB(m, cos)
-
-base_LIBS="$LIBS"
-
 dnl Thread related checks
 dnl Thread related checks
-AC_CHECK_LIB(pthread, pthread_exit)
 AC_CHECK_HEADER(pthread.h)
 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"
     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
 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
 
 dnl check for OpenGL related libraries
 case "${host}" in
@@ -173,13 +200,13 @@ case "${host}" in
     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
 
     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
     case "${host}" in
     *-*-mingw32*)
     LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
 
     dnl add -lwsock32 for mingwin
     case "${host}" in
     *-*-mingw32*)
-        LIBS="$LIBS -lws2_32"
+        base_LIBS="$base_LIBS -lws2_32"
         ;;
     esac
 
         ;;
     esac
 
@@ -189,35 +216,28 @@ case "${host}" in
 *-apple-darwin*)
     dnl Mac OS X
 
 *-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
 
     ;;
 
 *)
     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
        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
     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])
        AC_CHECK_HEADER(GL/fxmesa.h)
        if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
            AC_DEFINE([XMESA], 1, [Define for fxmesa])
@@ -225,13 +245,7 @@ case "${host}" in
         fi
     fi
 
         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
     ;;
 
 esac
@@ -239,8 +253,60 @@ esac
 opengl_LIBS="$LIBS"
 LIBS="$base_LIBS"
 
 opengl_LIBS="$LIBS"
 LIBS="$base_LIBS"
 
+dnl check for OpenAL libraries
+OPENAL_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)
+    AC_SEARCH_LIBS(alutInit, [ openal32 ALut ] )
+    LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
+    openal_LIBS="$LIBS"
+    OPENAL_OK="$ac_cv_search_alGenBuffers"
+    ;;
+
+*-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"
+    ;;
+
+*)
+    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 "Please see README.OpenAL for more details."
+    echo
+    echo "configure aborted."
+    exit
+fi
+
+LIBS="$base_LIBS"
+
 AC_SUBST(base_LIBS)
 AC_SUBST(base_LIBS)
+AC_SUBST(openal_LIBS)
 AC_SUBST(opengl_LIBS)
 AC_SUBST(opengl_LIBS)
+AC_SUBST(thread_LIBS)
+AC_SUBST(network_LIBS)
 
 dnl Check for MS Windows environment
 AC_CHECK_HEADER(windows.h)
 
 dnl Check for MS Windows environment
 AC_CHECK_HEADER(windows.h)
@@ -264,11 +330,11 @@ if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
     exit
 fi
 
     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 <plib/ul.h>
 
 AC_TRY_RUN([
 #include <plib/ul.h>
 
-#define MIN_PLIB_VERSION 160
+#define MIN_PLIB_VERSION 184
 
 int main() {
     int major, minor, micro;
 
 int main() {
     int major, minor, micro;
@@ -283,55 +349,7 @@ int main() {
 ],
   AC_MSG_RESULT(yes),
   [AC_MSG_RESULT(wrong version);
 ],
   AC_MSG_RESULT(yes),
   [AC_MSG_RESULT(wrong version);
-   AC_MSG_ERROR([Install plib 1.6.0 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
-    echo
-    echo "MetaKit library not found."
-    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 it's included instructions"
-    echo "to compile and install on your system."
-    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 <mk4.h>
-
-#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_ERROR([Install plib 1.8.4 or later first...])],
   AC_MSG_RESULT(yes)
 )
 
   AC_MSG_RESULT(yes)
 )
 
@@ -348,7 +366,7 @@ if test "x$ac_cv_header_zlib_h" != "xyes"; then
     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 "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 it's included instructions"
+    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 "to compile and install on your system."
     echo
     echo "configure aborted."
@@ -359,7 +377,7 @@ 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 \
 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 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])
 
 if test "x$ac_cv_header_stdint_h" = "xyes"; then
     AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
@@ -372,11 +390,14 @@ AC_HEADER_TIME
 AC_STRUCT_TM
 
 dnl Checks for library functions.
 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_TYPE_SIGNAL
 AC_FUNC_VPRINTF
-AC_CHECK_FUNCS( \
+AC_CHECK_FUNCS( \
         ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
         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)
 
 
 AM_CONFIG_HEADER(simgear/simgear_config.h)
 
@@ -386,19 +407,29 @@ AC_CONFIG_FILES([ \
        src-libs/Makefile \
        simgear/Makefile \
        simgear/version.h \
        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/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/misc/Makefile \
+       simgear/nasal/Makefile \
+       simgear/props/Makefile \
        simgear/route/Makefile \
        simgear/route/Makefile \
+       simgear/scene/Makefile \
+       simgear/scene/material/Makefile \
+       simgear/scene/model/Makefile \
+       simgear/scene/sky/Makefile \
+       simgear/scene/tgdb/Makefile \
        simgear/screen/Makefile \
        simgear/serial/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 \
        simgear/threads/Makefile \
        simgear/timing/Makefile \
        simgear/xgl/Makefile \
@@ -422,20 +453,13 @@ fi
 echo -n "Automake version: "
 automake --version | head -1
 
 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$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.)"
    echo "Threads: pthread lib found."
 else
    echo "Threads: no threads (pthread lib not found.)"