1 dnl Process this file with autoget.sh to produce a working configure
5 AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx])
7 dnl Require at least automake 2.52
10 dnl Initialize the automake stuff
11 AM_INIT_AUTOMAKE(SimGear, 2.2.0)
13 dnl Specify KAI C++ compiler and flags.
14 dnl Borrowed with slight modification from blitz distribution.
16 [ --with-cxx=COMPILER[:name-flags] set options for COMPILER (KCC)],
18 KCC*) # KAI C++ http://www.kai.com/
19 echo "Configuring for KAI C++"
20 AC_SG_SET_COMPILER($withval,"KCC","--restrict --strict_warnings")
21 CXX_OPTIMIZE_FLAGS=="+K3 -O3"
22 CXX_DEBUG_FLAGS="-g +K0"
27 AC_ARG_ENABLE(headless,
28 AS_HELP_STRING([--enable-headless],[Enable only packages for headless build]))
30 AC_MSG_CHECKING([for headless mode])
31 AC_MSG_RESULT([$enable_headless])
33 AM_CONDITIONAL(WANT_HEADLESS,[test "x$enable_headless" = "xyes"])
35 AC_MSG_CHECKING([CXX])
40 dnl Checks for programs.
49 AX_BOOST_BASE([1.37.0])
51 if test "x$BOOST_CPPFLAGS" != "x-I/usr/include" ; then
52 CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
55 dnl set the $host variable based on local machine/os
58 dnl Used on the Irix platform
61 if test "x$CXX" = "xCC" -o "x$CXX" = "xccache CC"; then
64 CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility/MIPSpro740"
65 compatibility_DIR="compatibility"
66 MIPSpro_DIRS="MIPSpro740"
67 AC_MSG_CHECKING([for MIPSpro compiler version 7.4 or newer])
70 if ( _COMPILER_VERSION < 740 ) {
76 ], AC_MSG_RESULT(yes),
78 CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility/MIPSpro721"
79 MIPSpro_DIRS="$(MIPSpro_DIRS) MIPSpro721"
80 AC_MSG_WARN([Using our own subset of the STL headers])
81 ], AC_MSG_RESULT(yes))
82 AC_SUBST(MIPSpro_DIRS)
93 AC_SUBST(compatibility_DIR)
95 # Show all compiler warnings by default
96 CXXFLAGS="$CXXFLAGS -Wall"
97 CFLAGS="$CFLAGS -Wall"
99 if echo $includedir | egrep "simgear$" > /dev/null; then
100 echo "includedir is" $includedir "libdir is" $libdir
102 includedir="${includedir}/simgear"
103 echo "includedir changed to" $includedir "libdir is" $libdir
106 dnl set logging; default value of with_logging=yes
107 AC_ARG_WITH(logging, [ --with-logging Include logging output (default)])
108 if test "x$with_logging" = "xno" ; then
109 AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
112 # Specify if we want to build with Norman's jpeg image server support.
113 # This requires libjpeg to be installed and available.
114 # Default to with_jpeg_server=no
116 AC_ARG_WITH(jpeg_factory, [ --with-jpeg-factory Include Norman's jpeg image factory support code])
117 if test "x$with_jpeg_factory" = "xyes" ; then
118 echo "Building with Norman's jpeg image factory support"
119 AC_CHECK_LIB(jpeg, jpeg_start_compress)
120 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
122 echo "In order to build the jpeg factory code you need libjpeg installed."
123 echo "otherwise please configure with the --with-jpeg-sever=no option"
125 echo "libjpeg is available at :"
126 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
130 echo "Building without Norman's jpeg image server support"
132 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes")
134 # specify the osg location
135 AC_ARG_WITH(osg, [ --with-osg=PREFIX Specify the prefix path to osg])
137 if test "x$with_osg" != "x" ; then
138 echo "osg prefix is $with_osg"
139 EXTRA_DIRS="${EXTRA_DIRS} $with_osg"
142 AC_ARG_WITH(osg_framework, [ --with-osg-framework=PREFIX Specify the prefix path to OSG.framework ])
144 if test "x$with_osg_framework" != "x"; then
145 echo "osg framework prefix is $with_osg_framework"
146 CPPFLAGS = "$CPPFLAGS -F$with-osg-framework"
147 export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:$with_osg_framework"
150 dnl specifying ALUT.framework (for user provided ALUT.framework)
151 AC_ARG_WITH(alut_framework, [ --with-alut-framework=PREFIX Specify the prefix path to ALUT.framework ])
153 if test "x$with_alut_framework" != "x"; then
154 echo "ALUT framework prefix is $with_alut_framework"
157 # specify the rti13 location
158 AC_ARG_WITH(rti13, [ --with-rti13=PREFIX Specify the prefix path to a HLA13 rti])
160 if test "x$with_rti13" != "x" ; then
161 echo "rti13 prefix is $with_rti13"
162 EXTRA_DIRS="${EXTRA_DIRS} $with_rti13"
165 dnl Determine an extra directories to add to include/lib search paths
167 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
168 echo no EXTRA_DIRS for $host
172 if test -d /usr/X11R6 ; then
173 EXTRA_DIR1="/usr/X11R6"
175 if test -d /opt/X11R6 ; then
176 EXTRA_DIR2="/opt/X11R6"
178 EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2"
182 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
185 dnl Using AM_CONDITIONAL is a step out of the protected little
186 dnl automake fold so it is potentially dangerous. But, we are
187 dnl beginning to run into cases where the standard checks are not
188 dnl enough. AM_CONDITIONALS are then referenced to conditionally
189 dnl build a Makefile.in from a Makefile.am which lets us define custom
190 dnl includes, compile alternative source files, etc.
192 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
193 dnl to use it if it is.
195 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
196 echo no fancy X11 check
205 dnl Checks for libraries.
207 dnl Thread related checks
208 AC_CHECK_HEADER(pthread.h)
209 AC_SEARCH_LIBS(pthread_exit, [pthread c_r])
210 if test "x$ac_cv_header_pthread_h" = "xyes"; then
211 CXXFLAGS="$CXXFLAGS -D_REENTRANT"
212 CFLAGS="$CFLAGS -D_REENTRANT"
214 if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
215 CXXFLAGS="-pthread $CXXFLAGS"
216 CFLAGS="-pthread $CFLAGS"
220 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_header_pthread_h" = "xyes")
225 dnl search for network related libraries
226 AC_SEARCH_LIBS(inet_addr, xnet)
227 AC_SEARCH_LIBS(socket, socket)
232 dnl check for some default libraries
233 AC_SEARCH_LIBS(cos, m)
234 AC_SEARCH_LIBS(clock_gettime, rt)
238 dnl check for OpenGL related libraries
240 *-*-cygwin* | *-*-mingw32*)
241 dnl CygWin under Windoze.
243 echo Win32 specific hacks...
244 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
245 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
247 LIBS="$LIBS -lglu32 -lopengl32"
248 LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
250 dnl add -lwsock32 for mingwin
253 base_LIBS="$base_LIBS -lws2_32"
257 echo "Will link apps with $LIBS"
263 LIBS="$LIBS -framework OpenGL -framework Carbon -lobjc"
267 dnl X-Windows based machines
269 AC_SEARCH_LIBS(XCreateWindow, X11)
270 AC_SEARCH_LIBS(XShmCreateImage, Xext)
271 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
272 AC_SEARCH_LIBS(IceOpenConnection, ICE)
273 AC_SEARCH_LIBS(SmcOpenConnection, SM)
274 AC_SEARCH_LIBS(XtMalloc, Xt)
275 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
277 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
278 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
279 dnl if GLcore found, then also check for GL
280 AC_SEARCH_LIBS(glXCreateContext, GL)
283 dnl if using mesa, check for xmesa.h
284 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
285 AC_CHECK_HEADER(GL/fxmesa.h)
286 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
287 AC_DEFINE([XMESA], 1, [Define for fxmesa])
288 AC_DEFINE([FX], 1, [Define for fxmesa])
292 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
300 dnl check for OpenAL libraries
304 *-*-cygwin* | *-*-mingw32*)
305 dnl CygWin under Windoze.
306 INCLUDES="$INCLUDES -I/usr/local/include/"
307 LIBS="$LIBS -L/usr/local/lib"
308 AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal 'openal -ldsound -lwinmm' ] )
309 AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
310 LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
312 OPENAL_OK="$ac_cv_search_alGenBuffers"
313 ALUT_OK="$ac_cv_search_alutInit"
319 LIBS="$LIBS -framework IOKit -framework OpenAL -framework ALUT"
322 if test "x$with_openal_lib" != "x"; then
323 echo "libopenal is not supported on Mac OS platform."
327 AC_CHECK_HEADERS([OpenAL/al.h],[OPENAL_OK="yes"])
329 AC_CHECK_HEADERS([ALUT/alut.h],[ALUT_OK="yes"])
331 dnl Thank you Christian Bauer from SheepSaver
332 dnl Modified by Tatsuhiro Nishioka for accepting a given framework path
333 dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES, $3=FRAMEWORK_PATH, $4=ACTION_IF_TRUE) ; $3 is optional
334 AC_DEFUN([AC_CHECK_FRAMEWORK], [
335 AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
336 AC_CACHE_CHECK([whether compiler supports framework $1],
339 FRAMEWORKS="$FRAMEWORKS -framework $1"
340 if test "$3" = ""; then
341 FRAMEWORKS="$FRAMEWORKS $ADD2LD"
342 elif test "`echo $FRAMEWORKS | grep -- -F$3`" = ""; then
343 FRAMEWORKS="$FRAMEWORKS -F$3"
344 CXXFLAGS="$CXXFLAGS -F$3"
345 CPPFLAGS="$CPPFLAGS -F$3"
346 CCFLAGS="$CCFLAGS -F$3"
347 dnl This is needed for AC_TRY_LINK when a framework path is specified
348 export DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}:$3"
352 [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
355 AS_IF([test AS_VAR_GET(ac_Framework) = yes],
356 [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
358 AS_IF([test AS_VAR_GET(ac_Framework) = yes], $4)
360 AS_VAR_POPDEF([ac_Framework])dnl
363 dnl Check for ALUT.framework when --with-alut-framework is specified
364 if test "x$with_alut_framework" != "x"; then
365 AC_CHECK_FRAMEWORK(ALUT, [#include <ALUT/alut.h>], $with_alut_framework, [ALUT_OK="yes"])
371 dnl default unix style machines
374 LIBS="$LIBS $thread_LIBS"
375 AC_SEARCH_LIBS(alGenBuffers, openal)
376 AC_SEARCH_LIBS(alutInit, [ alut openal ] )
377 OPENAL_OK="$ac_cv_search_alGenBuffers"
378 ALUT_OK="$ac_cv_search_alutInit"
385 if test "$OPENAL_OK" == "no" -a "x$enable_headless" != "xyes"; then
387 echo "You *must* have the openal library installed on your system to build"
390 echo "Please see README.OpenAL for more details."
392 echo "configure aborted."
396 if test "$ALUT_OK" == "no" -a "x$enable_headless" != "xyes"; then
398 echo "You *must* have the alut library installed on your system to build"
401 echo "Please see README.OpenAL for more details."
403 echo "configure aborted."
412 AC_SUBST(openal_LIBS)
413 AC_SUBST(opengl_LIBS)
414 AC_SUBST(thread_LIBS)
415 AC_SUBST(network_LIBS)
417 dnl Check for MS Windows environment
418 AC_CHECK_HEADER(windows.h)
419 AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
421 # The following are C++ items that need to be tested for with the c++
430 if test "x$with_osg_framework" != "x"; then
431 # AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>], $with_osg_framework)
432 # AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>], $with_osg_framework)
433 # AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>], $with_osg_framework)
434 # AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>], $with_osg_framework)
435 # AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>], $with_osg_framework)
436 # AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>], $with_osg_framework)
437 # AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>], $with_osg_framework)
438 # AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>], $with_osg_framework)
439 AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>], $with_osg_framework)
440 # osg_FRAMEWORKS="$FRAMEWORKS"
442 # AC_SUBST(osg_FRAMEWORKS)
443 AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>], $with_osg_framework)
444 openthreads_FRAMEWORK="$FRAMEWORKS"
446 AC_SUBST(openthreads_FRAMEWORK)
449 dnl This is needed when osg dynamic libs are specified
450 dnl instead of OSG frameworks on Mac OS X
452 AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
456 if test "x$enable_osgdebug" = "xyes"; then
457 AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
459 AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
464 AM_CONDITIONAL(HAVE_FRAMEWORK_OSG, test "x$ac_cv_framework_osg" != "x")
466 AC_CHECK_HEADER(osg/Version)
468 if test "x$ac_cv_header_osg_Version" != "xyes" -o "x$ac_cv_lib_OpenThreads_OpenThreadsGetVersion" != "xyes"; then
469 if test "x$ac_cv_framework_osg" != "xyes"; then
471 echo "You *must* have the OpenThreads library installed on your system"
472 echo "to build this version of SimGear!"
473 echo " Maybe you need to specify --with-osg=DIR."
474 echo " Maybe you need to specify some LDFLAGS to help the linker."
476 echo " LIBS: '$LIBS'"
477 echo " LDFLAGS: '$LDFLAGS'"
478 echo " CPPFLAGS: '$CPPFLAGS'"
480 echo "Please see README.OSG for more details."
482 echo "configure aborted."
487 AC_CHECK_HEADER(boost/version.hpp)
488 if test "x$ac_cv_header_boost_version_hpp" != "xyes"; then
490 echo "You *must* have the Boost library installed on your system"
491 echo "to build this version of SimGear!"
493 echo " LIBS: '$LIBS'"
494 echo " LDFLAGS: '$LDFLAGS'"
495 echo " CPPFLAGS: '$CPPFLAGS'"
497 echo "configure aborted."
501 dnl Check for a HLA13 rti.
502 dnl This is really tricky because of the ancient iostream stuff in RTI13
503 saved_CPPFLAGS="$CPPFLAGS"
504 CPPFLAGS="$CPPFLAGS -DRTI_USES_STD_FSTREAM"
505 AC_CHECK_HEADER(RTI.hh)
506 CPPFLAGS="${saved_CPPFLAGS}"
508 dnl Up to now only RTI13
509 AM_CONDITIONAL(ENABLE_HLA, test "x$ac_cv_header_RTI_hh" = "xyes")
510 AM_CONDITIONAL(ENABLE_HLA13, test "x$ac_cv_header_RTI_hh" = "xyes")
514 dnl Check for system installed zlib
515 AC_CHECK_HEADER(zlib.h)
516 if test "x$ac_cv_header_zlib_h" != "xyes"; then
518 echo "zlib library not found."
520 echo "If your OS does not provide an installable package for zlib"
521 echo "you will have to compile and install it first yourself. A copy"
522 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
523 echo "have to untar this source code, and follow its included instructions"
524 echo "to compile and install on your system."
526 echo "configure aborted."
530 dnl Checks for header files.
533 fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
534 sys/stat.h sys/time.h sys/timeb.h unistd.h values.h )
536 if test "x$ac_cv_header_stdint_h" = "xyes"; then
537 AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
540 dnl Checks for typedefs, structures, and compiler characteristics.
547 dnl Checks for library functions.
549 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
553 ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
554 random drand48 setitimer getitimer signal GetLocalTime rint getrusage ] )
557 AM_CONFIG_HEADER(simgear/simgear_config.h)
564 simgear/compatibility/Makefile \
565 simgear/compatibility/MIPSpro721/Makefile \
566 simgear/compatibility/MIPSpro740/Makefile \
567 simgear/bucket/Makefile \
568 simgear/debug/Makefile \
569 simgear/ephemeris/Makefile \
570 simgear/hla/Makefile \
571 simgear/io/Makefile \
572 simgear/magvar/Makefile \
573 simgear/math/Makefile \
574 simgear/environment/Makefile \
575 simgear/misc/Makefile \
576 simgear/nasal/Makefile \
577 simgear/props/Makefile \
578 simgear/route/Makefile \
579 simgear/scene/Makefile \
580 simgear/scene/bvh/Makefile \
581 simgear/scene/material/Makefile \
582 simgear/scene/model/Makefile \
583 simgear/scene/sky/Makefile \
584 simgear/scene/tgdb/Makefile \
585 simgear/scene/util/Makefile \
586 simgear/screen/Makefile \
587 simgear/serial/Makefile \
588 simgear/sound/Makefile \
589 simgear/structure/Makefile \
590 simgear/threads/Makefile \
591 simgear/timing/Makefile \
592 simgear/xml/Makefile \
598 echo "Configure Summary"
599 echo "================="
601 echo "Prefix: $prefix"
603 if test "x$with_logging" != "x"; then
604 echo "Debug messages: $with_logging"
606 echo "Debug messages: yes"
609 echo -n "Automake version: "
610 automake --version | head -1
612 if test "x$with_jpeg_factory" = "xyes"; then
613 echo "With JPEG Factory support"
615 echo "Without JPEG Factory support"
618 if test "x$ac_cv_header_pthread_h" = "xyes"; then
619 echo "Threads: pthread lib found."
621 echo "Threads: no threads (pthread lib not found.)"