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.9)
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 dnl Determine an extra directories to add to include/lib search paths
43 *-apple-darwin* | *-*-mingw32*)
44 echo no EXTRA_DIRS for $host
48 if test -d /usr/local ; then
49 EXTRA_DIRS="${EXTRA_DIRS} /usr/local"
54 if test -d /usr/X11R6 ; then
55 EXTRA_DIR1="/usr/X11R6"
57 if test -d /opt/X11R6 ; then
58 EXTRA_DIR2="/opt/X11R6"
60 EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2 /usr/local"
64 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
69 if test "$CXX" = "CC"; then
72 CXXFLAGS="$CXXFLAGS -c99 -I$with_simgear/include/simgear/compatibility"
87 dnl set logging; default value of with_logging=yes
88 AC_ARG_WITH(logging, [ --with-logging Include logging output (default)])
89 if test "x$with_logging" = "xno" ; then
90 AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
93 AC_ARG_ENABLE(sp_fdms, [ --enable-sp-fdms Include special purpose Flight Models], [enable_sp_fdms="$enableval"] )
94 AC_DEFINE([ENABLE_SP_FMDS], test "x$enable_sp_fdms" = "xyes", [Define to include special purpose FDMs])
95 AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
98 dnl Thread related checks
100 AC_ARG_WITH(threads, [ --with-threads Include tile loading threads [default=yes]], [], [with_threads=yes])
101 if test "x$with_threads" = "xyes"; then
102 AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
103 CXXFLAGS="$CXXFLAGS -D_REENTRANT"
104 CFLAGS="$CFLAGS -D_REENTRANT"
106 AC_CHECK_HEADER(pthread.h)
107 AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
109 dnl Used by JSBSim to conditionally compile in fgfs interface code
110 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
112 # Check for MS Windows environment
113 AC_CHECK_HEADER(windows.h)
115 dnl Using AM_CONDITIONAL is a step out of the protected little
116 dnl automake fold so it is potentially dangerous. But, we are
117 dnl beginning to run into cases where the standard checks are not
118 dnl enough. AM_CONDITIONALS are then referenced to conditionally
119 dnl build a Makefile.in from a Makefile.am which lets us define custom
120 dnl includes, compile alternative source files, etc.
122 dnl Check for external variables daylight and timezone.
124 if test "$have_daylight" = yes; then
125 AC_DEFINE([HAVE_DAYLIGHT], 1, [Define if system has daylight variable])
129 if test "$have_timezone" = yes; then
130 AC_DEFINE([HAVE_TIMEZONE], 1, [Define if system has timezone variable])
134 dnl add joystick support libraries
135 dnl search for FreeBSD library
136 AC_SEARCH_LIBS(hid_init, usbhid)
137 joystick_LIBS="$LIBS"
141 dnl ENABLE_AUDIO_SUPPORT could be depricated at any time in favor of
142 dnl just assuming we have audio support on all platform. We can
143 dnl depend on plib to hide the details.
144 AC_DEFINE([ENABLE_AUDIO_SUPPORT], 1, [Define for audio support])
146 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
147 dnl to use it if it is.
149 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
150 echo no fancy X11 check
159 dnl Checks for libraries.
161 dnl Thread related checks
162 AC_SEARCH_LIBS(pthread_cancel, [pthread c_r])
163 if test "x$ac_cv_header_pthread_h" = "xyes"; then
164 if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
165 CXXFLAGS="-pthread $CXXFLAGS"
166 CFLAGS="-pthread $CFLAGS"
173 dnl search for network related libraries
174 AC_SEARCH_LIBS(inet_addr, xnet)
175 AC_SEARCH_LIBS(socket, socket)
176 AC_SEARCH_LIBS(main, nsl)
181 dnl check for some default libraries
182 AC_SEARCH_LIBS(sqrt, [am ffm fm fastm m])
183 AC_SEARCH_LIBS(ceil, m)
184 AC_SEARCH_LIBS(dlclose, dl)
188 dnl Check for SDL if enabled.
189 AC_ARG_ENABLE(sdl, [ --enable-sdl Configure to use SDL instead of GLUT], [enable_sdl="$enableval"])
190 AM_CONDITIONAL(USE_SDL, test "x$enable_sdl" = "xyes")
191 if test "x$enable_sdl" = "xyes"; then
192 AC_DEFINE([PU_USE_SDL], 1, [Define to use SDL])
194 AC_DEFINE([PU_USE_GLUT], 1, [Define to use glut])
197 dnl check for OpenGL related libraries
199 *-*-cygwin* | *-*-mingw32*)
200 dnl CygWin under Windoze.
202 echo Win32 specific hacks...
203 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
204 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
206 if test "x$enable_sdl" = "xyes"; then
207 AC_SEARCH_LIBS(SDL_Init, SDL)
209 LIBS="$LIBS -lglut32"
212 LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
213 joystick_LIBS="$joystick_LIBS -lwinmm"
215 dnl add -lwsock32 for mingwin
218 echo "********** BUILDING FOR MINGW32 *************"
219 network_LIBS="$network_LIBS -lws2_32"
223 echo "Will link apps with $LIBS"
230 LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
231 joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
235 dnl X-Windows based machines
237 dnl Skip X11 library tests if requested.
238 if test "x$no_x" != "xyes"; then
239 AC_SEARCH_LIBS(XCreateWindow, X11)
240 AC_SEARCH_LIBS(XShmCreateImage, Xext)
241 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
242 AC_SEARCH_LIBS(IceOpenConnection, ICE)
243 AC_SEARCH_LIBS(SmcOpenConnection, SM)
244 AC_SEARCH_LIBS(XtMalloc, Xt)
245 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
248 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
249 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
250 dnl if GLcore found, then also check for GL
251 AC_SEARCH_LIBS(glXCreateContext, GL)
254 dnl if using mesa, check for xmesa.h
255 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
256 AC_CHECK_HEADER(GL/fxmesa.h)
257 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
258 AC_DEFINE([XMESA], 1, [Define for fxmesa])
259 AC_DEFINE([FX], 1, [Define for fxmesa])
263 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
264 AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
265 if test "x$enable_sdl" = "xyes"; then
266 AC_SEARCH_LIBS(SDL_Init, SDL)
273 LIBS="$base_LIBS $joystick_LIBS"
275 dnl check for OpenAL libraries
277 *-*-cygwin* | *-*-mingw32*)
278 dnl CygWin under Windoze.
280 AC_SEARCH_LIBS(alGenBuffers, openal32)
281 AC_SEARCH_LIBS(alutInit, [ openal32 ALut ] )
282 LIBS="$LIBS -ldsound -ldxguid -lole32"
289 LIBS="$LIBS -framework IOKit -framework OpenAL"
294 dnl default unix style machines
297 LIBS="$LIBS $thread_LIBS"
298 AC_SEARCH_LIBS(alGenBuffers, openal)
299 AC_SEARCH_LIBS(alutInit, [ alut openal ] )
300 OPENAL_OK="$ac_cv_search_alGenBuffers"
310 AC_SUBST(openal_LIBS)
311 AC_SUBST(opengl_LIBS)
312 AC_SUBST(thread_LIBS)
313 AC_SUBST(network_LIBS)
314 AC_SUBST(joystick_LIBS)
316 # The following are C++ items that need to be tested for with the c++
321 # Check for "plib" without which we cannot go on
322 AC_CHECK_HEADER(plib/ul.h)
323 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
325 echo "You *must* have the plib library installed on your system to build"
326 echo "the FGFS simulator!"
328 echo "Please see README.plib for more details."
330 echo "configure aborted."
334 AC_MSG_CHECKING([for plib 1.8.4 or newer])
338 #define MIN_PLIB_VERSION 184
341 int major, minor, micro;
343 if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
352 [AC_MSG_RESULT(wrong version);
353 AC_MSG_ERROR([Install plib 1.8.4 or later first...])],
357 dnl If we get here then plib is available, so force use of plib
359 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
362 dnl Check for the presence of SimGear
363 if test "x$with_simgear" != "x"; then
364 AC_CHECK_HEADER($with_simgear/include/simgear/version.h, [ac_cv_header_simgear_version_h=yes], [ac_cv_header_simgear_version_h=no])
366 AC_CHECK_HEADER(simgear/version.h)
368 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
370 echo "You *must* have the SimGear support library installed on your system"
371 echo "to build the FGFS simulator!"
373 echo "Please see README.SimGear for more details."
375 echo "configure aborted."
379 AC_MSG_CHECKING([for simgear 0.3.9 or newer])
383 #include <simgear/version.h>
385 #define STRINGIFY(X) XSTRINGIFY(X)
386 #define XSTRINGIFY(X) #X
393 int major, minor, micro;
395 /* printf("%d.%d.%d or greater, ", MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
396 printf("[found %s] ... ", STRINGIFY(SIMGEAR_VERSION));
398 sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, µ );
400 if ( (major < MIN_MAJOR) ||
401 (major == MIN_MAJOR && minor < MIN_MINOR) ||
402 (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
411 [AC_MSG_RESULT(wrong version);
412 AC_MSG_ERROR([Install latest simgear first...])],
418 dnl Check if SimGear was built with Norman's JPEG factory support
419 if test "x$with_simgear" != "x"; then
420 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])
422 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
424 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
425 AC_CHECK_LIB(jpeg, jpeg_start_compress)
426 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
428 echo "The JPEG factory code was built and installed with SimGear."
429 echo "However it appears the libjpeg is no longer installed."
430 echo "You need to install libjpeg or remove jpgfactory support from"
433 echo "libjpeg is available at :"
434 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
437 AC_DEFINE([FG_JPEG_SERVER], 1,
438 [Define to build with jpeg screen shot server])
440 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
444 dnl Check for system installed zlib
445 AC_CHECK_HEADER(zlib.h)
446 if test "x$ac_cv_header_zlib_h" != "xyes"; then
448 echo "zlib library not found."
450 echo "If your OS does not provide an installable package for zlib"
451 echo "you will have to compile and install it first yourself. A copy"
452 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
453 echo "have to untar this source code, and follow it's included instructions"
454 echo "to compile and install on your system."
456 echo "configure aborted."
460 dnl Checks for header files.
463 fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
464 sys/time.h sys/timeb.h unistd.h windows.h values.h )
466 dnl Checks for typedefs, structures, and compiler characteristics.
472 dnl Checks for library functions.
474 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
478 ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
479 random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
483 AM_CONFIG_HEADER(src/Include/config.h)
495 scripts/debug/Makefile \
496 scripts/perl/Makefile \
497 scripts/perl/examples/Makefile \
498 scripts/python/Makefile \
500 src/Include/Makefile \
501 src/Include/version.h \
502 src/Include/config.h-msvc6 \
503 src/Aircraft/Makefile \
504 src/Airports/Makefile \
506 src/Autopilot/Makefile \
507 src/Cockpit/Makefile \
508 src/Cockpit/built_in/Makefile \
509 src/Environment/Makefile \
510 src/FDM/Balloon/Makefile \
511 src/FDM/ExternalNet/Makefile \
512 src/FDM/ExternalPipe/Makefile \
513 src/FDM/JSBSim/Makefile \
514 src/FDM/JSBSim/initialization/Makefile \
515 src/FDM/JSBSim/input_output/Makefile \
516 src/FDM/JSBSim/math/Makefile \
517 src/FDM/JSBSim/models/Makefile \
518 src/FDM/JSBSim/models/flight_control/Makefile \
519 src/FDM/JSBSim/models/atmosphere/Makefile \
520 src/FDM/JSBSim/models/propulsion/Makefile \
521 src/FDM/LaRCsim/Makefile \
522 src/FDM/SP/Makefile \
523 src/FDM/UIUCModel/Makefile \
524 src/FDM/YASim/Makefile \
528 src/Instrumentation/Makefile \
529 src/Instrumentation/KLN89/Makefile \
532 src/Main/runfgfs.bat \
534 src/AIModel/Makefile \
535 src/MultiPlayer/Makefile \
536 src/Navaids/Makefile \
537 src/Network/Makefile \
538 src/Scenery/Makefile \
539 src/Scripting/Makefile \
541 src/Systems/Makefile \
543 src/Traffic/Makefile \
546 utils/GPSsmooth/Makefile \
547 utils/js_server/Makefile \
548 utils/Modeller/Makefile \
549 utils/TerraSync/Makefile \
550 utils/xmlgrep/Makefile \
554 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
557 echo "Configure Summary"
558 echo "================="
560 echo "Prefix: $prefix"
562 if test "x$with_logging" != "x"; then
563 echo "Debug messages: $with_logging"
565 echo "Debug messages: yes"
568 echo -n "Automake version: "
569 automake --version | head -n 1
571 if test "x$with_multiplayer" != "xno"; then
572 echo "Building with multiplayer support"
575 if test "x$with_threads" = "xyes"; then
581 if test "x$enable_sp_fdms" != "xno"; then
582 echo "Include special purpose flight models: yes"
584 echo "Include special purpose flight models: no"