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 # specify the rti13 location
166 AC_ARG_WITH(rti1516, [ --with-rti1516=PREFIX Specify the prefix path to a HLA1516 rti])
168 if test "x$with_rti1516" != "x" ; then
169 echo "rti1516 prefix is $with_rti1516"
170 EXTRA_DIRS="${EXTRA_DIRS} $with_rti1516"
173 dnl Determine an extra directories to add to include/lib search paths
175 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
176 echo no EXTRA_DIRS for $host
180 if test -d /usr/X11R6 ; then
181 EXTRA_DIR1="/usr/X11R6"
183 if test -d /opt/X11R6 ; then
184 EXTRA_DIR2="/opt/X11R6"
186 EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2"
190 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
193 dnl Using AM_CONDITIONAL is a step out of the protected little
194 dnl automake fold so it is potentially dangerous. But, we are
195 dnl beginning to run into cases where the standard checks are not
196 dnl enough. AM_CONDITIONALS are then referenced to conditionally
197 dnl build a Makefile.in from a Makefile.am which lets us define custom
198 dnl includes, compile alternative source files, etc.
200 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
201 dnl to use it if it is.
203 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
204 echo no fancy X11 check
213 dnl Checks for libraries.
215 dnl Thread related checks
216 AC_CHECK_HEADER(pthread.h)
217 AC_SEARCH_LIBS(pthread_exit, [pthread c_r])
218 if test "x$ac_cv_header_pthread_h" = "xyes"; then
219 CXXFLAGS="$CXXFLAGS -D_REENTRANT"
220 CFLAGS="$CFLAGS -D_REENTRANT"
222 if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
223 CXXFLAGS="-pthread $CXXFLAGS"
224 CFLAGS="-pthread $CFLAGS"
228 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_header_pthread_h" = "xyes")
233 dnl search for network related libraries
234 AC_SEARCH_LIBS(inet_addr, xnet)
235 AC_SEARCH_LIBS(socket, socket)
240 dnl check for some default libraries
241 AC_SEARCH_LIBS(cos, m)
242 AC_SEARCH_LIBS(clock_gettime, rt)
246 dnl check for OpenGL related libraries
248 *-*-cygwin* | *-*-mingw32*)
249 dnl CygWin under Windoze.
251 echo Win32 specific hacks...
252 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
253 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
255 LIBS="$LIBS -lglu32 -lopengl32"
256 LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
258 dnl add -lwsock32 for mingwin
261 base_LIBS="$base_LIBS -lws2_32"
265 echo "Will link apps with $LIBS"
271 LIBS="$LIBS -framework OpenGL -framework Carbon -lobjc"
275 dnl X-Windows based machines
277 AC_SEARCH_LIBS(XCreateWindow, X11)
278 AC_SEARCH_LIBS(XShmCreateImage, Xext)
279 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
280 AC_SEARCH_LIBS(IceOpenConnection, ICE)
281 AC_SEARCH_LIBS(SmcOpenConnection, SM)
282 AC_SEARCH_LIBS(XtMalloc, Xt)
283 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
285 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
286 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
287 dnl if GLcore found, then also check for GL
288 AC_SEARCH_LIBS(glXCreateContext, GL)
291 dnl if using mesa, check for xmesa.h
292 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
293 AC_CHECK_HEADER(GL/fxmesa.h)
294 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
295 AC_DEFINE([XMESA], 1, [Define for fxmesa])
296 AC_DEFINE([FX], 1, [Define for fxmesa])
300 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
308 dnl check for OpenAL libraries
312 *-*-cygwin* | *-*-mingw32*)
313 dnl CygWin under Windoze.
314 INCLUDES="$INCLUDES -I/usr/local/include/"
315 LIBS="$LIBS -L/usr/local/lib"
316 AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal 'openal -ldsound -lwinmm' ] )
317 AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
318 LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
320 OPENAL_OK="$ac_cv_search_alGenBuffers"
321 ALUT_OK="$ac_cv_search_alutInit"
327 LIBS="$LIBS -framework IOKit -framework OpenAL -framework ALUT"
330 if test "x$with_openal_lib" != "x"; then
331 echo "libopenal is not supported on Mac OS platform."
335 AC_CHECK_HEADERS([OpenAL/al.h],[OPENAL_OK="yes"])
337 AC_CHECK_HEADERS([ALUT/alut.h],[ALUT_OK="yes"])
339 dnl Thank you Christian Bauer from SheepSaver
340 dnl Modified by Tatsuhiro Nishioka for accepting a given framework path
341 dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES, $3=FRAMEWORK_PATH, $4=ACTION_IF_TRUE) ; $3 is optional
342 AC_DEFUN([AC_CHECK_FRAMEWORK], [
343 AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
344 AC_CACHE_CHECK([whether compiler supports framework $1],
347 FRAMEWORKS="$FRAMEWORKS -framework $1"
348 if test "$3" = ""; then
349 FRAMEWORKS="$FRAMEWORKS $ADD2LD"
350 elif test "`echo $FRAMEWORKS | grep -- -F$3`" = ""; then
351 FRAMEWORKS="$FRAMEWORKS -F$3"
352 CXXFLAGS="$CXXFLAGS -F$3"
353 CPPFLAGS="$CPPFLAGS -F$3"
354 CCFLAGS="$CCFLAGS -F$3"
355 dnl This is needed for AC_TRY_LINK when a framework path is specified
356 export DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}:$3"
360 [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
363 AS_IF([test AS_VAR_GET(ac_Framework) = yes],
364 [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
366 AS_IF([test AS_VAR_GET(ac_Framework) = yes], $4)
368 AS_VAR_POPDEF([ac_Framework])dnl
371 dnl Check for ALUT.framework when --with-alut-framework is specified
372 if test "x$with_alut_framework" != "x"; then
373 AC_CHECK_FRAMEWORK(ALUT, [#include <ALUT/alut.h>], $with_alut_framework, [ALUT_OK="yes"])
379 dnl default unix style machines
382 LIBS="$LIBS $thread_LIBS"
383 AC_SEARCH_LIBS(alGenBuffers, openal)
384 AC_SEARCH_LIBS(alutInit, [ alut openal ] )
385 OPENAL_OK="$ac_cv_search_alGenBuffers"
386 ALUT_OK="$ac_cv_search_alutInit"
393 if test "$OPENAL_OK" == "no" -a "x$enable_headless" != "xyes"; then
395 echo "You *must* have the openal library installed on your system to build"
398 echo "Please see README.OpenAL for more details."
400 echo "configure aborted."
404 if test "$ALUT_OK" == "no" -a "x$enable_headless" != "xyes"; then
406 echo "You *must* have the alut library installed on your system to build"
409 echo "Please see README.OpenAL for more details."
411 echo "configure aborted."
420 AC_SUBST(openal_LIBS)
421 AC_SUBST(opengl_LIBS)
422 AC_SUBST(thread_LIBS)
423 AC_SUBST(network_LIBS)
425 dnl Check for MS Windows environment
426 AC_CHECK_HEADER(windows.h)
427 AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
429 # The following are C++ items that need to be tested for with the c++
438 if test "x$with_osg_framework" != "x"; then
439 # AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>], $with_osg_framework)
440 # AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>], $with_osg_framework)
441 # AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>], $with_osg_framework)
442 # AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>], $with_osg_framework)
443 # AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>], $with_osg_framework)
444 # AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>], $with_osg_framework)
445 # AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>], $with_osg_framework)
446 # AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>], $with_osg_framework)
447 AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>], $with_osg_framework)
448 # osg_FRAMEWORKS="$FRAMEWORKS"
450 # AC_SUBST(osg_FRAMEWORKS)
451 AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>], $with_osg_framework)
452 openthreads_FRAMEWORK="$FRAMEWORKS"
454 AC_SUBST(openthreads_FRAMEWORK)
457 dnl This is needed when osg dynamic libs are specified
458 dnl instead of OSG frameworks on Mac OS X
460 AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
464 if test "x$enable_osgdebug" = "xyes"; then
465 AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
467 AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
472 AM_CONDITIONAL(HAVE_FRAMEWORK_OSG, test "x$ac_cv_framework_osg" != "x")
474 AC_CHECK_HEADER(osg/Version)
476 if test "x$ac_cv_header_osg_Version" != "xyes" -o "x$ac_cv_lib_OpenThreads_OpenThreadsGetVersion" != "xyes"; then
477 if test "x$ac_cv_framework_osg" != "xyes"; then
479 echo "You *must* have the OpenThreads library installed on your system"
480 echo "to build this version of SimGear!"
481 echo " Maybe you need to specify --with-osg=DIR."
482 echo " Maybe you need to specify some LDFLAGS to help the linker."
484 echo " LIBS: '$LIBS'"
485 echo " LDFLAGS: '$LDFLAGS'"
486 echo " CPPFLAGS: '$CPPFLAGS'"
488 echo "Please see README.OSG for more details."
490 echo "configure aborted."
495 AC_CHECK_HEADER(boost/version.hpp)
496 if test "x$ac_cv_header_boost_version_hpp" != "xyes"; then
498 echo "You *must* have the Boost library installed on your system"
499 echo "to build this version of SimGear!"
501 echo " LIBS: '$LIBS'"
502 echo " LDFLAGS: '$LDFLAGS'"
503 echo " CPPFLAGS: '$CPPFLAGS'"
505 echo "configure aborted."
509 dnl Check for a HLA13 rti.
510 dnl This is really tricky because of the ancient iostream stuff in RTI13
511 saved_CPPFLAGS="$CPPFLAGS"
512 CPPFLAGS="$CPPFLAGS -DRTI_USES_STD_FSTREAM"
513 AC_CHECK_HEADER(RTI.hh)
514 CPPFLAGS="${saved_CPPFLAGS}"
516 dnl Up to now only RTI13
517 AM_CONDITIONAL(ENABLE_HLA, test "x$ac_cv_header_RTI_hh" = "xyes")
518 AM_CONDITIONAL(ENABLE_HLA13, test "x$ac_cv_header_RTI_hh" = "xyes")
522 dnl Check for system installed zlib
523 AC_CHECK_HEADER(zlib.h)
524 if test "x$ac_cv_header_zlib_h" != "xyes"; then
526 echo "zlib library not found."
528 echo "If your OS does not provide an installable package for zlib"
529 echo "you will have to compile and install it first yourself. A copy"
530 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
531 echo "have to untar this source code, and follow its included instructions"
532 echo "to compile and install on your system."
534 echo "configure aborted."
538 dnl Checks for header files.
541 fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
542 sys/stat.h sys/time.h sys/timeb.h unistd.h values.h )
544 if test "x$ac_cv_header_stdint_h" = "xyes"; then
545 AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
548 dnl Checks for typedefs, structures, and compiler characteristics.
555 dnl Checks for library functions.
557 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
561 ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
562 random drand48 setitimer getitimer signal GetLocalTime rint getrusage ] )
565 AM_CONFIG_HEADER(simgear/simgear_config.h)
572 simgear/compatibility/Makefile \
573 simgear/compatibility/MIPSpro721/Makefile \
574 simgear/compatibility/MIPSpro740/Makefile \
575 simgear/bucket/Makefile \
576 simgear/debug/Makefile \
577 simgear/ephemeris/Makefile \
578 simgear/hla/Makefile \
579 simgear/io/Makefile \
580 simgear/magvar/Makefile \
581 simgear/math/Makefile \
582 simgear/environment/Makefile \
583 simgear/misc/Makefile \
584 simgear/nasal/Makefile \
585 simgear/props/Makefile \
586 simgear/route/Makefile \
587 simgear/scene/Makefile \
588 simgear/scene/bvh/Makefile \
589 simgear/scene/material/Makefile \
590 simgear/scene/model/Makefile \
591 simgear/scene/sky/Makefile \
592 simgear/scene/tgdb/Makefile \
593 simgear/scene/util/Makefile \
594 simgear/screen/Makefile \
595 simgear/serial/Makefile \
596 simgear/sound/Makefile \
597 simgear/structure/Makefile \
598 simgear/threads/Makefile \
599 simgear/timing/Makefile \
600 simgear/xml/Makefile \
606 echo "Configure Summary"
607 echo "================="
609 echo "Prefix: $prefix"
611 if test "x$with_logging" != "x"; then
612 echo "Debug messages: $with_logging"
614 echo "Debug messages: yes"
617 echo -n "Automake version: "
618 automake --version | head -1
620 if test "x$with_jpeg_factory" = "xyes"; then
621 echo "With JPEG Factory support"
623 echo "Without JPEG Factory support"
626 if test "x$ac_cv_header_pthread_h" = "xyes"; then
627 echo "Threads: pthread lib found."
629 echo "Threads: no threads (pthread lib not found.)"