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, 0.9.10)
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_cancel, [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"])
217 AM_CONDITIONAL(USE_OSGDEBUG, test "x$enable_osgdebug" = "xyes")
219 dnl check for OpenGL related libraries
221 *-*-cygwin* | *-*-mingw32*)
222 dnl CygWin under Windoze.
224 echo Win32 specific hacks...
225 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
226 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
228 if test "x$enable_sdl" = "xyes"; then
229 AC_SEARCH_LIBS(SDL_Init, SDL)
231 LIBS="$LIBS -lglut32"
234 LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
235 joystick_LIBS="$joystick_LIBS -lwinmm"
237 dnl add -lwsock32 for mingwin
240 echo "********** BUILDING FOR MINGW32 *************"
241 network_LIBS="$network_LIBS -lws2_32"
245 echo "Will link apps with $LIBS"
252 LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
253 joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
257 dnl X-Windows based machines
259 dnl Skip X11 library tests if requested.
260 if test "x$no_x" != "xyes"; then
261 AC_SEARCH_LIBS(XCreateWindow, X11)
262 AC_SEARCH_LIBS(XShmCreateImage, Xext)
263 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
264 AC_SEARCH_LIBS(IceOpenConnection, ICE)
265 AC_SEARCH_LIBS(SmcOpenConnection, SM)
266 AC_SEARCH_LIBS(XtMalloc, Xt)
267 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
270 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
271 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
272 dnl if GLcore found, then also check for GL
273 AC_SEARCH_LIBS(glXCreateContext, GL)
276 dnl if using mesa, check for xmesa.h
277 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
278 AC_CHECK_HEADER(GL/fxmesa.h)
279 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
280 AC_DEFINE([XMESA], 1, [Define for fxmesa])
281 AC_DEFINE([FX], 1, [Define for fxmesa])
285 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
286 AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
287 if test "x$enable_sdl" = "xyes"; then
288 AC_SEARCH_LIBS(SDL_Init, SDL)
295 LIBS="$base_LIBS $joystick_LIBS"
297 dnl check for OpenAL libraries
301 *-*-cygwin* | *-*-mingw32*)
302 dnl CygWin under Windoze.
303 INCLUDES="$INCLUDES -I/usr/local/include/"
304 LIBS="$LIBS -L/usr/local/lib"
305 AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal ] )
306 AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
307 LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
309 OPENAL_OK="$ac_cv_search_alGenBuffers"
310 ALUT_OK="$ac_cv_search_alutInit"
316 LIBS="$LIBS -framework IOKit -framework OpenAL"
318 # not sure how to test if OpenAL exists on MacOS (does it come by default?)
324 dnl default unix style machines
327 LIBS="$LIBS $thread_LIBS"
328 AC_SEARCH_LIBS(alGenBuffers, openal)
329 AC_SEARCH_LIBS(alutInit, [ alut openal ] )
330 OPENAL_OK="$ac_cv_search_alGenBuffers"
331 ALUT_OK="$ac_cv_search_alutInit"
338 if test "$OPENAL_OK" == "no"; then
340 echo "You *must* have the openal library installed on your system to build"
343 echo "Please see README.OpenAL for more details."
345 echo "configure aborted."
349 if test "$ALUT_OK" == "no"; then
351 echo "You *must* have the alut library installed on your system to build"
354 echo "Please see README.OpenAL for more details."
356 echo "configure aborted."
364 AC_SUBST(openal_LIBS)
365 AC_SUBST(opengl_LIBS)
366 AC_SUBST(thread_LIBS)
367 AC_SUBST(network_LIBS)
368 AC_SUBST(joystick_LIBS)
370 # The following are C++ items that need to be tested for with the c++
375 dnl Check for the presence of SimGear
376 if test "x$with_simgear" != "x"; then
377 AC_CHECK_HEADER($with_simgear/include/simgear/version.h, [ac_cv_header_simgear_version_h=yes], [ac_cv_header_simgear_version_h=no])
379 AC_CHECK_HEADER(simgear/version.h)
381 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
383 echo "You *must* have the SimGear support library installed on your system"
384 echo "to build the FGFS simulator!"
386 echo "Please see README.SimGear for more details."
388 echo "configure aborted."
392 AC_MSG_CHECKING([for simgear 0.3.10 or newer])
396 #include <simgear/version.h>
398 #define STRINGIFY(X) XSTRINGIFY(X)
399 #define XSTRINGIFY(X) #X
406 int major, minor, micro;
408 /* printf("%d.%d.%d or greater, ", MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
409 printf("[found %s] ... ", STRINGIFY(SIMGEAR_VERSION));
411 sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, µ );
413 if ( (major < MIN_MAJOR) ||
414 (major == MIN_MAJOR && minor < MIN_MINOR) ||
415 (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
424 [AC_MSG_RESULT(wrong version);
425 AC_MSG_ERROR([Install latest simgear first...])],
431 dnl Check if SimGear was built with Norman's JPEG factory support
432 if test "x$with_simgear" != "x"; then
433 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])
435 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
437 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
438 AC_CHECK_LIB(jpeg, jpeg_start_compress)
439 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
441 echo "The JPEG factory code was built and installed with SimGear."
442 echo "However it appears the libjpeg is no longer installed."
443 echo "You need to install libjpeg or remove jpgfactory support from"
446 echo "libjpeg is available at :"
447 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
450 AC_DEFINE([FG_JPEG_SERVER], 1,
451 [Define to build with jpeg screen shot server])
453 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
455 # Check for "plib" without which we cannot go on
456 AC_CHECK_HEADER(plib/ul.h)
457 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
459 echo "You *must* have the plib library installed on your system to build"
460 echo "the FGFS simulator!"
462 echo "Please see README.plib for more details."
464 echo "configure aborted."
468 AC_MSG_CHECKING([for plib 1.8.4 or newer])
472 #define MIN_PLIB_VERSION 184
475 int major, minor, micro;
477 if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
486 [AC_MSG_RESULT(wrong version);
487 AC_MSG_ERROR([Install plib 1.8.4 or later first...])],
491 dnl If we get here then plib is available, so force use of plib
493 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
495 AC_CHECK_HEADER(osg/Version)
496 if test "x$ac_cv_header_osg_Version" != "xyes"; then
498 echo "You *must* have the OpenSceneGraph support library installed on your system"
499 echo "to build the FGFS simulator!"
501 echo "Please see README.OSG for more details."
503 echo "configure aborted."
509 dnl Check for system installed zlib
510 AC_CHECK_HEADER(zlib.h)
511 if test "x$ac_cv_header_zlib_h" != "xyes"; then
513 echo "zlib library not found."
515 echo "If your OS does not provide an installable package for zlib"
516 echo "you will have to compile and install it first yourself. A copy"
517 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
518 echo "have to untar this source code, and follow it's included instructions"
519 echo "to compile and install on your system."
521 echo "configure aborted."
527 dnl Checks for header files.
530 fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
531 sys/time.h sys/timeb.h unistd.h windows.h values.h )
533 dnl Checks for typedefs, structures, and compiler characteristics.
539 dnl Checks for library functions.
541 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
545 ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
546 random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
550 AM_CONFIG_HEADER(src/Include/config.h)
562 scripts/debug/Makefile \
563 scripts/perl/Makefile \
564 scripts/perl/examples/Makefile \
565 scripts/python/Makefile \
567 src/Include/Makefile \
568 src/Include/version.h \
569 src/Include/config.h-msvc6 \
570 src/Include/config.h-msvc71 \
571 src/Include/config.h-msvc8 \
572 src/Aircraft/Makefile \
573 src/Airports/Makefile \
575 src/Autopilot/Makefile \
576 src/Cockpit/Makefile \
577 src/Cockpit/built_in/Makefile \
578 src/Environment/Makefile \
579 src/FDM/Balloon/Makefile \
580 src/FDM/ExternalNet/Makefile \
581 src/FDM/ExternalPipe/Makefile \
582 src/FDM/JSBSim/Makefile \
583 src/FDM/JSBSim/initialization/Makefile \
584 src/FDM/JSBSim/input_output/Makefile \
585 src/FDM/JSBSim/math/Makefile \
586 src/FDM/JSBSim/models/Makefile \
587 src/FDM/JSBSim/models/flight_control/Makefile \
588 src/FDM/JSBSim/models/atmosphere/Makefile \
589 src/FDM/JSBSim/models/propulsion/Makefile \
590 src/FDM/LaRCsim/Makefile \
591 src/FDM/SP/Makefile \
592 src/FDM/UIUCModel/Makefile \
593 src/FDM/YASim/Makefile \
597 src/Instrumentation/Makefile \
598 src/Instrumentation/KLN89/Makefile \
599 src/Instrumentation/HUD/Makefile \
602 src/Main/runfgfs.bat \
604 src/AIModel/Makefile \
605 src/MultiPlayer/Makefile \
606 src/Navaids/Makefile \
607 src/Network/Makefile \
608 src/Scenery/Makefile \
609 src/Scripting/Makefile \
611 src/Systems/Makefile \
613 src/Traffic/Makefile \
616 utils/GPSsmooth/Makefile \
617 utils/js_server/Makefile \
618 utils/Modeller/Makefile \
619 utils/TerraSync/Makefile \
620 utils/xmlgrep/Makefile \
624 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
627 echo "Configure Summary"
628 echo "================="
630 echo "Prefix: $prefix"
632 if test "x$with_logging" != "x"; then
633 echo "Debug messages: $with_logging"
635 echo "Debug messages: yes"
638 echo -n "Automake version: "
639 automake --version | head -n 1
641 if test "x$with_multiplayer" != "xno"; then
642 echo "Building with multiplayer support"
645 if test "x$with_threads" = "xyes"; then
651 if test "x$enable_sp_fdms" != "xno"; then
652 echo "Include special purpose flight models: yes"
654 echo "Include special purpose flight models: no"