X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=configure.ac;h=2136625ba2dc490f6d0bdeb4a4733d8b32e79e47;hb=8be760b594f5e245e0a69efdef0baddab64193c8;hp=38f795832a1c63489a196a64a34ff206f35bdf27;hpb=8d63c300e27222a4275e2f7fb362eb38cf8afd15;p=simgear.git diff --git a/configure.ac b/configure.ac index 38f79583..2136625b 100644 --- a/configure.ac +++ b/configure.ac @@ -1,16 +1,16 @@ -dnl Process this file with aclocal ; automake -a ; autoconf to produce a -dnl working configure 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]) -# 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.0) +AM_INIT_AUTOMAKE(SimGear, 0.3.1) dnl Specify KAI C++ compiler and flags. dnl Borrowed with slight modification from blitz distribution. @@ -38,21 +38,24 @@ 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 +dnl Used on the Irix platform AR="ar" ARFLAGS="cru" -OS=`uname -s` -if test "$OS" = "IRIX" -o "$OS" = "IRIX64"; then +case "${host}" in +*-*-irix*) if test "$CXX" = "CC"; then AR="CC -ar" ARFLAGS="-o" + CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility" fi -fi + ;; +esac AC_SUBST(AR) AC_SUBST(ARFLAGS) - if echo $includedir | egrep "simgear$" > /dev/null; then echo "includedir is" $includedir "libdir is" $libdir else @@ -60,8 +63,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]) @@ -90,38 +92,26 @@ fi AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes") -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$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_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,11 +119,18 @@ 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) +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 + ;; + +*) AC_PATH_XTRA -fi + ;; + +esac dnl Checks for libraries. @@ -150,12 +147,74 @@ if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h 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" + 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 +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 +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 + +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 -lglut32 -lglu32 -lopengl32" + LIBS="$LIBS -luser32 -lgdi32 -lwinmm" + + 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" + ;; + +*) + dnl X-Windows based machines + AC_CHECK_LIB(X11, XCreateWindow) AC_CHECK_LIB(Xext, XShmCreateImage) AC_CHECK_LIB(Xi, XGetExtensionVersion) @@ -163,18 +222,7 @@ if test "x$HOSTTYPE" != "xmacintosh" ; then AC_CHECK_LIB(SM, SmcOpenConnection) AC_CHECK_LIB(Xt, XtMalloc) AC_CHECK_LIB(Xmu, XmuLookupStandardColormap) -fi - -dnl check for OpenGL related libraries - -AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes") - -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 @@ -203,61 +251,10 @@ elif test "x$ac_cv_header_windows_h" != "xyes" ; then AC_CHECK_LIB(MesaGLU, gluLookAt) fi - dnl check for glut - AC_CHECK_LIB(glut, glutGetModifiers) - - 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 - - echo Win32 specific hacks... - AC_DEFINE([WIN32], 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" - - 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 - - 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 - -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 + LIBS="$LIBS -lglut" + ;; -if test "x$ac_cv_lib_glut_glutGameModeString" = "xno"; 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 - echo " http://reality.sgi.com/opengl/glut3/glut3.html" - exit 1 -fi +esac opengl_LIBS="$LIBS" LIBS="$base_LIBS" @@ -265,7 +262,9 @@ LIBS="$base_LIBS" AC_SUBST(base_LIBS) AC_SUBST(opengl_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++ # compiler @@ -308,33 +307,79 @@ int main() { AC_MSG_RESULT(yes) ) -dnl Check for system installed metakit +dnl Check for 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." + 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 its included instructions" + echo "to compile and install on your system." + echo + echo "configure aborted." exit fi -AC_LANG_POP +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; -dnl Specify if we want logging (testing build) or not (release build) + 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_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]) @@ -349,7 +394,8 @@ AC_STRUCT_TM dnl Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_VPRINTF -AC_CHECK_FUNCS( ftime gettimeofday timegm memcpy bcopy mktime strstr rand \ +AC_CHECK_FUNCS( \ + ftime gettimeofday timegm memcpy bcopy mktime strstr rand \ random drand48 setitimer getitimer signal GetLocalTime rint getrusage ) AM_CONFIG_HEADER(simgear/simgear_config.h) @@ -360,6 +406,7 @@ AC_CONFIG_FILES([ \ src-libs/Makefile \ simgear/Makefile \ simgear/version.h \ + simgear/compatibility/Makefile \ simgear/bucket/Makefile \ simgear/debug/Makefile \ simgear/ephemeris/Makefile \ @@ -368,11 +415,17 @@ AC_CONFIG_FILES([ \ simgear/math/Makefile \ simgear/metar/Makefile \ simgear/misc/Makefile \ + simgear/props/Makefile \ simgear/route/Makefile \ + simgear/scene/Makefile \ + simgear/scene/material/Makefile \ + simgear/scene/model/Makefile \ + simgear/scene/tgdb/Makefile \ simgear/screen/Makefile \ simgear/serial/Makefile \ simgear/sky/Makefile \ simgear/sky/clouds3d/Makefile \ + simgear/sound/Makefile \ simgear/threads/Makefile \ simgear/timing/Makefile \ simgear/xgl/Makefile \ @@ -393,9 +446,16 @@ else echo "Debug messages: yes" fi -echo -n "Automake version: ($AUTO_MAKE_VERSION) " +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 @@ -407,3 +467,4 @@ if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h else echo "Threads: no threads (pthread lib not found.)" fi +