1 dnl Process this file with autoget.sh to produce a working configure
5 AC_CONFIG_SRCDIR([src/Aircraft/aircraft.cxx])
7 dnl Require at least automake 2.52
10 dnl Initialize the automake stuff
11 dnl set the $host variable based on local machine/os
13 AM_INIT_AUTOMAKE(FlightGear, 1.0.0)
15 dnl Checks for programs.
24 # specify the simgear location
25 AC_ARG_WITH(simgear, [ --with-simgear=PREFIX Specify the prefix path to simgear])
27 if test "x$with_simgear" != "x" ; then
28 echo "SimGear prefix path is $with_simgear"
29 EXTRA_DIRS="${EXTRA_DIRS} $with_simgear"
30 CXXFLAGS="$CXXFLAGS -I$with_simgear"
33 # specify the plib location
34 AC_ARG_WITH(plib, [ --with-plib=PREFIX Specify the prefix path to plib])
36 if test "x$with_plib" != "x" ; then
37 echo "plib prefix is $with_plib"
38 EXTRA_DIRS="${EXTRA_DIRS} $with_plib"
41 # specify the osg location
42 AC_ARG_WITH(osg, [ --with-osg=PREFIX Specify the prefix path to osg])
44 if test "x$with_osg" != "x" ; then
45 echo "osg prefix is $with_osg"
46 EXTRA_DIRS="${EXTRA_DIRS} $with_osg"
49 dnl Determine an extra directories to add to include/lib search paths
51 *-apple-darwin* | *-*-mingw32*)
52 echo no EXTRA_DIRS for $host
56 if test -d /usr/local ; then
57 EXTRA_DIRS="${EXTRA_DIRS} /usr/local"
62 if test -d /usr/X11R6 ; then
63 EXTRA_DIR1="/usr/X11R6"
65 if test -d /opt/X11R6 ; then
66 EXTRA_DIR2="/opt/X11R6"
68 EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2 /usr/local"
72 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
77 if test "$CXX" = "CC"; then
80 CXXFLAGS="$CXXFLAGS -c99 -I$with_simgear/include/simgear/compatibility"
95 dnl set logging; default value of with_logging=yes
96 AC_ARG_WITH(logging, [ --with-logging Include logging output (default)])
97 if test "x$with_logging" = "xno" ; then
98 AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
101 AC_ARG_ENABLE(sp_fdms, [ --enable-sp-fdms Include special purpose Flight Models], [enable_sp_fdms="$enableval"] )
102 if test "x$enable_sp_fdms" != "xno"; then
103 AC_DEFINE([ENABLE_SP_FDM], 1, [Define to include special purpose FDMs])
105 AC_DEFINE([ENABLE_SP_FDM], 0, [Define to include special purpose FDMs])
107 AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
110 dnl Thread related checks
112 AC_ARG_WITH(threads, [ --with-threads Include tile loading threads [default=yes]], [], [with_threads=yes])
113 if test "x$with_threads" = "xyes"; then
114 AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
115 CXXFLAGS="$CXXFLAGS -D_REENTRANT"
116 CFLAGS="$CFLAGS -D_REENTRANT"
118 AC_CHECK_HEADER(pthread.h)
119 AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
121 dnl Used by JSBSim to conditionally compile in fgfs interface code
122 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
124 # Check for MS Windows environment
125 AC_CHECK_HEADER(windows.h)
127 dnl Using AM_CONDITIONAL is a step out of the protected little
128 dnl automake fold so it is potentially dangerous. But, we are
129 dnl beginning to run into cases where the standard checks are not
130 dnl enough. AM_CONDITIONALS are then referenced to conditionally
131 dnl build a Makefile.in from a Makefile.am which lets us define custom
132 dnl includes, compile alternative source files, etc.
134 dnl Check for external variables daylight and timezone.
136 if test "$have_daylight" = yes; then
137 AC_DEFINE([HAVE_DAYLIGHT], 1, [Define if system has daylight variable])
141 if test "$have_timezone" = yes; then
142 AC_DEFINE([HAVE_TIMEZONE], 1, [Define if system has timezone variable])
146 dnl add joystick support libraries
147 dnl search for FreeBSD library
148 AC_SEARCH_LIBS(hid_init, usbhid)
149 joystick_LIBS="$LIBS"
153 dnl ENABLE_AUDIO_SUPPORT could be depricated at any time in favor of
154 dnl just assuming we have audio support on all platform. We can
155 dnl depend on plib to hide the details.
156 AC_DEFINE([ENABLE_AUDIO_SUPPORT], 1, [Define for audio support])
158 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
159 dnl to use it if it is.
161 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
162 echo no fancy X11 check
171 dnl Checks for libraries.
173 dnl Thread related checks
174 AC_SEARCH_LIBS(pthread_create, [pthread c_r])
175 if test "x$ac_cv_header_pthread_h" = "xyes"; then
176 if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
177 CXXFLAGS="-pthread $CXXFLAGS"
178 CFLAGS="-pthread $CFLAGS"
185 dnl search for network related libraries
186 AC_SEARCH_LIBS(inet_addr, xnet)
187 AC_SEARCH_LIBS(socket, socket)
188 AC_SEARCH_LIBS(main, nsl)
193 dnl check for some default libraries
194 AC_SEARCH_LIBS(sqrt, [am ffm fm fastm m])
195 AC_SEARCH_LIBS(ceil, m)
196 AC_SEARCH_LIBS(dlclose, dl)
200 dnl Check for SDL or glut if enabled.
201 AC_ARG_ENABLE(osgviewer, [ --enable-osgviewer Configure to use osgViewer(default)], [enable_osgviewer="$enableval"])
202 AC_ARG_ENABLE(sdl, [ --enable-sdl Configure to use SDL], [enable_sdl="$enableval"])
203 AC_ARG_ENABLE(glut, [ --enable-glut Configure to use GLUT], [enable_glut="$enableval"])
204 AM_CONDITIONAL(USE_SDL, test "x$enable_sdl" = "xyes")
205 AM_CONDITIONAL(USE_GLUT, test "x$enable_glut" = "xyes")
206 if test "x$enable_sdl" != "xyes" -a "x$enable_glut" != "xyes" -a "x$enable_osgviewer" != "xno"; then
207 enable_osgviewer="yes"
209 if test "x$enable_osgviewer" = "xyes"; then
210 AC_DEFINE([USE_OSGVIEWER], 1, [Define to use osgViewer in renderer])
211 AC_DEFINE([ENABLE_OSGVIEWER], 1, [Define to use osgViewer in renderer])
212 AC_DEFINE([PU_USE_NATIVE], 1, [Define to use native system])
213 elif test "x$enable_sdl" = "xyes"; then
214 AC_DEFINE([PU_USE_SDL], 1, [Define to use SDL])
215 elif test "x$enable_glut" = "xyes"; then
216 AC_DEFINE([PU_USE_GLUT], 1, [Define to use glut])
218 AC_MSG_ERROR([One (and only one) of --enable-osgviewer, --enable-sdl, or --enable-glut must be supplied])
221 AC_ARG_ENABLE(osgdebug, [ --enable-osgdebug Use OSG debug libraries], [enable_osgdebug="$enableval"])
223 dnl check for OpenGL related libraries
225 *-*-cygwin* | *-*-mingw32*)
226 dnl CygWin under Windoze.
228 echo Win32 specific hacks...
229 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
230 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
232 if test "x$enable_sdl" = "xyes"; then
233 AC_SEARCH_LIBS(SDL_Init, SDL)
235 LIBS="$LIBS -lglut32"
238 LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
239 joystick_LIBS="$joystick_LIBS -lwinmm"
241 dnl add -lwsock32 for mingwin
244 echo "********** BUILDING FOR MINGW32 *************"
245 network_LIBS="$network_LIBS -lws2_32"
249 echo "Will link apps with $LIBS"
256 LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
257 joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
261 dnl X-Windows based machines
263 dnl Skip X11 library tests if requested.
264 if test "x$no_x" != "xyes"; then
265 AC_SEARCH_LIBS(XCreateWindow, X11)
266 AC_SEARCH_LIBS(XShmCreateImage, Xext)
267 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
268 AC_SEARCH_LIBS(IceOpenConnection, ICE)
269 AC_SEARCH_LIBS(SmcOpenConnection, SM)
270 AC_SEARCH_LIBS(XtMalloc, Xt)
271 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
274 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
275 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
276 dnl if GLcore found, then also check for GL
277 AC_SEARCH_LIBS(glXCreateContext, GL)
280 dnl if using mesa, check for xmesa.h
281 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
282 AC_CHECK_HEADER(GL/fxmesa.h)
283 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
284 AC_DEFINE([XMESA], 1, [Define for fxmesa])
285 AC_DEFINE([FX], 1, [Define for fxmesa])
289 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
290 AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
291 if test "x$enable_sdl" = "xyes"; then
292 AC_SEARCH_LIBS(SDL_Init, SDL)
299 LIBS="$base_LIBS $joystick_LIBS"
301 dnl check for OpenAL libraries
305 *-*-cygwin* | *-*-mingw32*)
306 dnl CygWin under Windoze.
307 INCLUDES="$INCLUDES -I/usr/local/include/"
308 LIBS="$LIBS -L/usr/local/lib"
309 AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal ] )
310 AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
311 LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
313 OPENAL_OK="$ac_cv_search_alGenBuffers"
314 ALUT_OK="$ac_cv_search_alutInit"
320 LIBS="$LIBS -framework IOKit -framework OpenAL"
322 # not sure how to test if OpenAL exists on MacOS (does it come by default?)
328 dnl default unix style machines
331 LIBS="$LIBS $thread_LIBS"
332 AC_SEARCH_LIBS(alGenBuffers, openal)
333 AC_SEARCH_LIBS(alutInit, [ alut openal ] )
334 OPENAL_OK="$ac_cv_search_alGenBuffers"
335 ALUT_OK="$ac_cv_search_alutInit"
342 if test "$OPENAL_OK" == "no"; then
344 echo "You *must* have the openal library installed on your system to build"
347 echo "Please see README.OpenAL for more details."
349 echo "configure aborted."
353 if test "$ALUT_OK" == "no"; then
355 echo "You *must* have the alut library installed on your system to build"
358 echo "Please see README.OpenAL for more details."
360 echo "configure aborted."
368 AC_SUBST(openal_LIBS)
369 AC_SUBST(opengl_LIBS)
370 AC_SUBST(thread_LIBS)
371 AC_SUBST(network_LIBS)
372 AC_SUBST(joystick_LIBS)
374 # The following are C++ items that need to be tested for with the c++
379 dnl Check for the presence of SimGear
380 if test "x$with_simgear" != "x"; then
381 AC_CHECK_HEADER($with_simgear/include/simgear/version.h, [ac_cv_header_simgear_version_h=yes], [ac_cv_header_simgear_version_h=no])
383 AC_CHECK_HEADER(simgear/version.h)
385 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
387 echo "You *must* have the SimGear support library installed on your system"
388 echo "to build the FGFS simulator!"
390 echo "Please see README.SimGear for more details."
392 echo "configure aborted."
396 AC_MSG_CHECKING([for simgear 0.3.10 or newer])
400 #include <simgear/version.h>
402 #define STRINGIFY(X) XSTRINGIFY(X)
403 #define XSTRINGIFY(X) #X
410 int major, minor, micro;
412 /* printf("%d.%d.%d or greater, ", MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
413 printf("[found %s] ... ", STRINGIFY(SIMGEAR_VERSION));
415 sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, µ );
417 if ( (major < MIN_MAJOR) ||
418 (major == MIN_MAJOR && minor < MIN_MINOR) ||
419 (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
428 [AC_MSG_RESULT(wrong version);
429 AC_MSG_ERROR([Install latest simgear first...])],
435 dnl Check if SimGear was built with Norman's JPEG factory support
436 if test "x$with_simgear" != "x"; then
437 AC_CHECK_HEADER($with_simgear/include/simgear/screen/jpgfactory.hxx,[ac_cv_header_simgear_screen_jpgfactory_hxx=yes],[ac_cv_header_simgear_screen_jpgfactory_hxx=no])
439 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
441 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
442 AC_CHECK_LIB(jpeg, jpeg_start_compress)
443 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
445 echo "The JPEG factory code was built and installed with SimGear."
446 echo "However it appears the libjpeg is no longer installed."
447 echo "You need to install libjpeg or remove jpgfactory support from"
450 echo "libjpeg is available at :"
451 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
454 AC_DEFINE([FG_JPEG_SERVER], 1,
455 [Define to build with jpeg screen shot server])
457 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
459 # Check for "plib" without which we cannot go on
460 AC_CHECK_HEADER(plib/ul.h)
461 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
463 echo "You *must* have the plib library installed on your system to build"
464 echo "the FGFS simulator!"
466 echo "Please see README.plib for more details."
468 echo "configure aborted."
472 AC_MSG_CHECKING([for plib 1.8.5 or newer])
476 #define MIN_PLIB_VERSION 185
479 int major, minor, micro;
481 if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
490 [AC_MSG_RESULT(wrong version);
491 AC_MSG_ERROR([Install plib 1.8.5 or later first...])],
495 dnl If we get here then plib is available, so force use of plib
497 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
499 AC_CHECK_HEADER(osg/Version)
500 if test "x$ac_cv_header_osg_Version" != "xyes"; then
502 echo "You *must* have the OpenSceneGraph support library installed on your system"
503 echo "to build the FGFS simulator!"
505 echo "Please see README.OSG for more details."
507 echo "configure aborted."
511 # Find the OSG libraries. Note special handling for OS X frameworks
515 dnl Thank you Christian Bauer from SheepSaver
516 dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
517 AC_DEFUN([AC_CHECK_FRAMEWORK], [
518 AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
519 AC_CACHE_CHECK([whether compiler supports framework $1],
522 LIBS="$LIBS -framework $1"
525 [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
528 AS_IF([test AS_VAR_GET(ac_Framework) = yes],
529 [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
531 AS_VAR_POPDEF([ac_Framework])dnl
534 if test "x$enable_osgdebug" = "xyes"; then
535 AC_CHECK_LIB(osgViewerd,osgViewerGetVersion)
536 AC_CHECK_LIB(osgGAd,osgGAGetVersion)
537 AC_CHECK_LIB(osgTextd,osgTextGetVersion)
538 LIBS="$LIBS -losgFXd"
539 AC_CHECK_LIB(osgUtild,osgUtilGetVersion)
540 AC_CHECK_LIB(osgDBd,osgDBGetVersion)
541 AC_CHECK_LIB(osgSimd,osgSimGetVersion)
542 AC_CHECK_LIB(osgParticled,osgParticleGetVersion)
543 AC_CHECK_LIB(osgd,osgGetVersion)
544 AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
546 AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>])
547 AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>])
548 AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>])
549 AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>])
550 AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>])
551 AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>])
552 AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>])
553 AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>])
554 AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>])
555 AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>])
559 if test "x$enable_osgdebug" = "xyes"; then
560 AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
561 AC_CHECK_LIB(osgd,osgGetVersion)
562 AC_CHECK_LIB(osgUtild,osgUtilGetVersion)
563 AC_CHECK_LIB(osgDBd,osgDBGetVersion)
564 AC_CHECK_LIB(osgTextd,osgTextGetVersion)
565 AC_CHECK_LIB(osgGAd,osgGAGetVersion)
566 AC_CHECK_LIB(osgViewerd,osgViewerGetVersion)
567 AC_CHECK_LIB(osgSimd,osgSimGetVersion)
568 AC_CHECK_LIB(osgParticled,osgParticleGetVersion)
569 LIBS="$LIBS -losgFXd"
571 AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
572 AC_CHECK_LIB(osg,osgGetVersion)
573 AC_CHECK_LIB(osgUtil,osgUtilGetVersion)
574 AC_CHECK_LIB(osgDB,osgDBGetVersion)
575 AC_CHECK_LIB(osgText,osgTextGetVersion)
576 AC_CHECK_LIB(osgGA,osgGAGetVersion)
577 AC_CHECK_LIB(osgViewer,osgViewerGetVersion)
578 AC_CHECK_LIB(osgSim,osgSimGetVersion)
579 AC_CHECK_LIB(osgParticle,osgParticleGetVersion)
587 dnl Check for system installed zlib
588 AC_CHECK_HEADER(zlib.h)
589 if test "x$ac_cv_header_zlib_h" != "xyes"; then
591 echo "zlib library not found."
593 echo "If your OS does not provide an installable package for zlib"
594 echo "you will have to compile and install it first yourself. A copy"
595 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
596 echo "have to untar this source code, and follow it's included instructions"
597 echo "to compile and install on your system."
599 echo "configure aborted."
605 dnl Checks for header files.
608 fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
609 sys/time.h sys/timeb.h unistd.h windows.h values.h )
611 dnl Checks for typedefs, structures, and compiler characteristics.
617 dnl Checks for library functions.
619 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
623 ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
624 random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
628 AM_CONFIG_HEADER(src/Include/config.h)
640 scripts/debug/Makefile \
641 scripts/perl/Makefile \
642 scripts/perl/examples/Makefile \
643 scripts/python/Makefile \
645 src/Include/Makefile \
646 src/Include/version.h \
647 src/Include/config.h-msvc6 \
648 src/Include/config.h-msvc71 \
649 src/Include/config.h-msvc8 \
650 src/Aircraft/Makefile \
651 src/Airports/Makefile \
652 src/ATCDCL/Makefile \
653 src/Autopilot/Makefile \
654 src/Cockpit/Makefile \
655 src/Cockpit/built_in/Makefile \
656 src/Environment/Makefile \
657 src/FDM/Balloon/Makefile \
658 src/FDM/ExternalNet/Makefile \
659 src/FDM/ExternalPipe/Makefile \
660 src/FDM/JSBSim/Makefile \
661 src/FDM/JSBSim/initialization/Makefile \
662 src/FDM/JSBSim/input_output/Makefile \
663 src/FDM/JSBSim/math/Makefile \
664 src/FDM/JSBSim/models/Makefile \
665 src/FDM/JSBSim/models/flight_control/Makefile \
666 src/FDM/JSBSim/models/atmosphere/Makefile \
667 src/FDM/JSBSim/models/propulsion/Makefile \
668 src/FDM/LaRCsim/Makefile \
669 src/FDM/SP/Makefile \
670 src/FDM/UIUCModel/Makefile \
671 src/FDM/YASim/Makefile \
675 src/Instrumentation/Makefile \
676 src/Instrumentation/KLN89/Makefile \
677 src/Instrumentation/HUD/Makefile \
680 src/Main/runfgfs.bat \
682 src/AIModel/Makefile \
683 src/MultiPlayer/Makefile \
684 src/Navaids/Makefile \
685 src/Network/Makefile \
686 src/Scenery/Makefile \
687 src/Scripting/Makefile \
689 src/Systems/Makefile \
691 src/Traffic/Makefile \
694 utils/GPSsmooth/Makefile \
695 utils/fgadmin/Makefile
696 utils/fgadmin/src/Makefile \
697 utils/js_server/Makefile \
698 utils/Modeller/Makefile \
699 utils/TerraSync/Makefile \
700 utils/xmlgrep/Makefile \
704 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
707 echo "Configure Summary"
708 echo "================="
710 echo "Prefix: $prefix"
712 if test "x$with_logging" != "x"; then
713 echo "Debug messages: $with_logging"
715 echo "Debug messages: yes"
718 echo -n "Automake version: "
719 automake --version | head -n 1
721 if test "x$with_multiplayer" != "xno"; then
722 echo "Building with multiplayer support"
725 if test "x$with_threads" = "xyes"; then
731 if test "x$enable_sp_fdms" != "xno"; then
732 echo "Include special purpose flight models: yes"
734 echo "Include special purpose flight models: no"