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 if enabled.
201 AC_ARG_ENABLE(sdl, [ --enable-sdl Configure to use SDL instead of GLUT], [enable_sdl="$enableval"])
202 AC_ARG_ENABLE(osgviewer, [ --enable-osgviewer Configure to use osgViewer], [enable_osgviewer="$enableval"])
203 AM_CONDITIONAL(USE_SDL, test "x$enable_sdl" = "xyes")
204 AM_CONDITIONAL(USE_OSGVIEWER, test "x$enable_osgviewer" = "xyes")
205 if test "x$enable_sdl" = "xyes"; then
206 AC_DEFINE([PU_USE_SDL], 1, [Define to use SDL])
208 if test "x$enable_osgviewer" = "xyes"; then
209 AC_DEFINE([ENABLE_OSGVIEWER], 1, [Define to use osgViewer in renderer])
210 AC_DEFINE([PU_USE_NATIVE], 1, [Define to use native system])
212 AC_DEFINE([PU_USE_GLUT], 1, [Define to use glut])
216 AC_ARG_ENABLE(osgdebug, [ --enable-osgdebug Use OSG debug libraries], [enable_osgdebug="$enableval"])
218 dnl check for OpenGL related libraries
220 *-*-cygwin* | *-*-mingw32*)
221 dnl CygWin under Windoze.
223 echo Win32 specific hacks...
224 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
225 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
227 if test "x$enable_sdl" = "xyes"; then
228 AC_SEARCH_LIBS(SDL_Init, SDL)
230 LIBS="$LIBS -lglut32"
233 LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
234 joystick_LIBS="$joystick_LIBS -lwinmm"
236 dnl add -lwsock32 for mingwin
239 echo "********** BUILDING FOR MINGW32 *************"
240 network_LIBS="$network_LIBS -lws2_32"
244 echo "Will link apps with $LIBS"
251 LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
252 joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
256 dnl X-Windows based machines
258 dnl Skip X11 library tests if requested.
259 if test "x$no_x" != "xyes"; then
260 AC_SEARCH_LIBS(XCreateWindow, X11)
261 AC_SEARCH_LIBS(XShmCreateImage, Xext)
262 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
263 AC_SEARCH_LIBS(IceOpenConnection, ICE)
264 AC_SEARCH_LIBS(SmcOpenConnection, SM)
265 AC_SEARCH_LIBS(XtMalloc, Xt)
266 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
269 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
270 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
271 dnl if GLcore found, then also check for GL
272 AC_SEARCH_LIBS(glXCreateContext, GL)
275 dnl if using mesa, check for xmesa.h
276 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
277 AC_CHECK_HEADER(GL/fxmesa.h)
278 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
279 AC_DEFINE([XMESA], 1, [Define for fxmesa])
280 AC_DEFINE([FX], 1, [Define for fxmesa])
284 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
285 AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
286 if test "x$enable_sdl" = "xyes"; then
287 AC_SEARCH_LIBS(SDL_Init, SDL)
294 LIBS="$base_LIBS $joystick_LIBS"
296 dnl check for OpenAL libraries
300 *-*-cygwin* | *-*-mingw32*)
301 dnl CygWin under Windoze.
302 INCLUDES="$INCLUDES -I/usr/local/include/"
303 LIBS="$LIBS -L/usr/local/lib"
304 AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal ] )
305 AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
306 LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
308 OPENAL_OK="$ac_cv_search_alGenBuffers"
309 ALUT_OK="$ac_cv_search_alutInit"
315 LIBS="$LIBS -framework IOKit -framework OpenAL"
317 # not sure how to test if OpenAL exists on MacOS (does it come by default?)
323 dnl default unix style machines
326 LIBS="$LIBS $thread_LIBS"
327 AC_SEARCH_LIBS(alGenBuffers, openal)
328 AC_SEARCH_LIBS(alutInit, [ alut openal ] )
329 OPENAL_OK="$ac_cv_search_alGenBuffers"
330 ALUT_OK="$ac_cv_search_alutInit"
337 if test "$OPENAL_OK" == "no"; then
339 echo "You *must* have the openal library installed on your system to build"
342 echo "Please see README.OpenAL for more details."
344 echo "configure aborted."
348 if test "$ALUT_OK" == "no"; then
350 echo "You *must* have the alut library installed on your system to build"
353 echo "Please see README.OpenAL for more details."
355 echo "configure aborted."
363 AC_SUBST(openal_LIBS)
364 AC_SUBST(opengl_LIBS)
365 AC_SUBST(thread_LIBS)
366 AC_SUBST(network_LIBS)
367 AC_SUBST(joystick_LIBS)
369 # The following are C++ items that need to be tested for with the c++
374 dnl Check for the presence of SimGear
375 if test "x$with_simgear" != "x"; then
376 AC_CHECK_HEADER($with_simgear/include/simgear/version.h, [ac_cv_header_simgear_version_h=yes], [ac_cv_header_simgear_version_h=no])
378 AC_CHECK_HEADER(simgear/version.h)
380 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
382 echo "You *must* have the SimGear support library installed on your system"
383 echo "to build the FGFS simulator!"
385 echo "Please see README.SimGear for more details."
387 echo "configure aborted."
391 AC_MSG_CHECKING([for simgear 0.3.10 or newer])
395 #include <simgear/version.h>
397 #define STRINGIFY(X) XSTRINGIFY(X)
398 #define XSTRINGIFY(X) #X
405 int major, minor, micro;
407 /* printf("%d.%d.%d or greater, ", MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
408 printf("[found %s] ... ", STRINGIFY(SIMGEAR_VERSION));
410 sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, µ );
412 if ( (major < MIN_MAJOR) ||
413 (major == MIN_MAJOR && minor < MIN_MINOR) ||
414 (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
423 [AC_MSG_RESULT(wrong version);
424 AC_MSG_ERROR([Install latest simgear first...])],
430 dnl Check if SimGear was built with Norman's JPEG factory support
431 if test "x$with_simgear" != "x"; then
432 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])
434 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
436 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
437 AC_CHECK_LIB(jpeg, jpeg_start_compress)
438 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
440 echo "The JPEG factory code was built and installed with SimGear."
441 echo "However it appears the libjpeg is no longer installed."
442 echo "You need to install libjpeg or remove jpgfactory support from"
445 echo "libjpeg is available at :"
446 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
449 AC_DEFINE([FG_JPEG_SERVER], 1,
450 [Define to build with jpeg screen shot server])
452 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
454 # Check for "plib" without which we cannot go on
455 AC_CHECK_HEADER(plib/ul.h)
456 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
458 echo "You *must* have the plib library installed on your system to build"
459 echo "the FGFS simulator!"
461 echo "Please see README.plib for more details."
463 echo "configure aborted."
467 AC_MSG_CHECKING([for plib 1.8.5 or newer])
471 #define MIN_PLIB_VERSION 185
474 int major, minor, micro;
476 if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
485 [AC_MSG_RESULT(wrong version);
486 AC_MSG_ERROR([Install plib 1.8.5 or later first...])],
490 dnl If we get here then plib is available, so force use of plib
492 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
494 AC_CHECK_HEADER(osg/Version)
495 if test "x$ac_cv_header_osg_Version" != "xyes"; then
497 echo "You *must* have the OpenSceneGraph support library installed on your system"
498 echo "to build the FGFS simulator!"
500 echo "Please see README.OSG for more details."
502 echo "configure aborted."
506 # Find the OSG libraries. Note special handling for OS X frameworks
510 dnl Thank you Christian Bauer from SheepSaver
511 dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES)
512 AC_DEFUN([AC_CHECK_FRAMEWORK], [
513 AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
514 AC_CACHE_CHECK([whether compiler supports framework $1],
517 LIBS="$LIBS -framework $1"
520 [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
523 AS_IF([test AS_VAR_GET(ac_Framework) = yes],
524 [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
526 AS_VAR_POPDEF([ac_Framework])dnl
529 if test "x$enable_osgdebug" = "xyes"; then
530 AC_CHECK_LIB(osgViewerd,osgViewerGetVersion)
531 AC_CHECK_LIB(osgGAd,osgGAGetVersion)
532 AC_CHECK_LIB(osgTextd,osgTextGetVersion)
533 LIBS="$LIBS -losgFXd"
534 AC_CHECK_LIB(osgUtild,osgUtilGetVersion)
535 AC_CHECK_LIB(osgDBd,osgDBGetVersion)
536 AC_CHECK_LIB(osgSimd,osgSimGetVersion)
537 AC_CHECK_LIB(osgParticled,osgParticleGetVersion)
538 AC_CHECK_LIB(osgd,osgGetVersion)
539 AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
541 AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>])
542 AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>])
543 AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>])
544 AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>])
545 AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>])
546 AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>])
547 AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>])
548 AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>])
549 AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>])
550 AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>])
554 if test "x$enable_osgdebug" = "xyes"; then
555 AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion)
556 AC_CHECK_LIB(osgd,osgGetVersion)
557 AC_CHECK_LIB(osgUtild,osgUtilGetVersion)
558 AC_CHECK_LIB(osgDBd,osgDBGetVersion)
559 AC_CHECK_LIB(osgTextd,osgTextGetVersion)
560 AC_CHECK_LIB(osgGAd,osgGAGetVersion)
561 AC_CHECK_LIB(osgViewerd,osgViewerGetVersion)
562 AC_CHECK_LIB(osgSimd,osgSimGetVersion)
563 AC_CHECK_LIB(osgParticled,osgParticleGetVersion)
564 LIBS="$LIBS -losgFXd"
566 AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion)
567 AC_CHECK_LIB(osg,osgGetVersion)
568 AC_CHECK_LIB(osgUtil,osgUtilGetVersion)
569 AC_CHECK_LIB(osgDB,osgDBGetVersion)
570 AC_CHECK_LIB(osgText,osgTextGetVersion)
571 AC_CHECK_LIB(osgGA,osgGAGetVersion)
572 AC_CHECK_LIB(osgViewer,osgViewerGetVersion)
573 AC_CHECK_LIB(osgSim,osgSimGetVersion)
574 AC_CHECK_LIB(osgParticle,osgParticleGetVersion)
582 dnl Check for system installed zlib
583 AC_CHECK_HEADER(zlib.h)
584 if test "x$ac_cv_header_zlib_h" != "xyes"; then
586 echo "zlib library not found."
588 echo "If your OS does not provide an installable package for zlib"
589 echo "you will have to compile and install it first yourself. A copy"
590 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
591 echo "have to untar this source code, and follow it's included instructions"
592 echo "to compile and install on your system."
594 echo "configure aborted."
600 dnl Checks for header files.
603 fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
604 sys/time.h sys/timeb.h unistd.h windows.h values.h )
606 dnl Checks for typedefs, structures, and compiler characteristics.
612 dnl Checks for library functions.
614 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
618 ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
619 random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
623 AM_CONFIG_HEADER(src/Include/config.h)
635 scripts/debug/Makefile \
636 scripts/perl/Makefile \
637 scripts/perl/examples/Makefile \
638 scripts/python/Makefile \
640 src/Include/Makefile \
641 src/Include/version.h \
642 src/Include/config.h-msvc6 \
643 src/Include/config.h-msvc71 \
644 src/Include/config.h-msvc8 \
645 src/Aircraft/Makefile \
646 src/Airports/Makefile \
648 src/Autopilot/Makefile \
649 src/Cockpit/Makefile \
650 src/Cockpit/built_in/Makefile \
651 src/Environment/Makefile \
652 src/FDM/Balloon/Makefile \
653 src/FDM/ExternalNet/Makefile \
654 src/FDM/ExternalPipe/Makefile \
655 src/FDM/JSBSim/Makefile \
656 src/FDM/JSBSim/initialization/Makefile \
657 src/FDM/JSBSim/input_output/Makefile \
658 src/FDM/JSBSim/math/Makefile \
659 src/FDM/JSBSim/models/Makefile \
660 src/FDM/JSBSim/models/flight_control/Makefile \
661 src/FDM/JSBSim/models/atmosphere/Makefile \
662 src/FDM/JSBSim/models/propulsion/Makefile \
663 src/FDM/LaRCsim/Makefile \
664 src/FDM/SP/Makefile \
665 src/FDM/UIUCModel/Makefile \
666 src/FDM/YASim/Makefile \
670 src/Instrumentation/Makefile \
671 src/Instrumentation/KLN89/Makefile \
672 src/Instrumentation/HUD/Makefile \
675 src/Main/runfgfs.bat \
677 src/AIModel/Makefile \
678 src/MultiPlayer/Makefile \
679 src/Navaids/Makefile \
680 src/Network/Makefile \
681 src/Scenery/Makefile \
682 src/Scripting/Makefile \
684 src/Systems/Makefile \
686 src/Traffic/Makefile \
689 utils/GPSsmooth/Makefile \
690 utils/fgadmin/Makefile
691 utils/fgadmin/src/Makefile \
692 utils/js_server/Makefile \
693 utils/Modeller/Makefile \
694 utils/TerraSync/Makefile \
695 utils/xmlgrep/Makefile \
699 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
702 echo "Configure Summary"
703 echo "================="
705 echo "Prefix: $prefix"
707 if test "x$with_logging" != "x"; then
708 echo "Debug messages: $with_logging"
710 echo "Debug messages: yes"
713 echo -n "Automake version: "
714 automake --version | head -n 1
716 if test "x$with_multiplayer" != "xno"; then
717 echo "Building with multiplayer support"
720 if test "x$with_threads" = "xyes"; then
726 if test "x$enable_sp_fdms" != "xno"; then
727 echo "Include special purpose flight models: yes"
729 echo "Include special purpose flight models: no"