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.8-pre2)
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"
34 if test "$CXX" = "CC"; then
37 CXXFLAGS="$CXXFLAGS -I$with_simgear/include/simgear/compatibility"
51 dnl set logging; default value of with_logging=yes
52 AC_ARG_WITH(logging, [ --with-logging Include logging output (default)])
53 if test "x$with_logging" = "xno" ; then
54 AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
57 # Specify if we want to build with Multiplayer support
58 # default to with_network=yes
59 AC_ARG_WITH(multiplayer, [ --with-multiplayer Include multiplayer support [default=yes]])
61 if test "x$with_multiplayer" = "xno"; then
62 echo "Building without any kind of multiplayer support"
64 echo "Building with multiplayer support"
65 AC_DEFINE([FG_MPLAYER_AS], 1, [Define to build with multiplayer support])
67 AM_CONDITIONAL(ENABLE_MPLAYER_AS, test "x$with_multiplayer" != "xno")
69 AC_ARG_ENABLE(sp_fdms, [ --enable-sp-fdms Include special purpose Flight Models], [enable_sp_fdms="$enableval"] )
70 AC_DEFINE([ENABLE_SP_FMDS], test "x$enable_sp_fdms" = "xyes", [Define to include special purpose FDMs])
71 AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
74 dnl Thread related checks
77 AC_ARG_WITH(threads, [ --with-threads Include tile loading threads [default=yes]])
78 if test "x$with_threads" != "xyes"; then
79 AC_DEFINE([ENABLE_THREADS], 0, [Define to enable threaded tile paging])
81 AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
82 CXXFLAGS="$CXXFLAGS -D_REENTRANT"
83 CFLAGS="$CFLAGS -D_REENTRANT"
85 AC_CHECK_HEADER(pthread.h)
86 AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
88 # specify the plib location
89 AC_ARG_WITH(plib, [ --with-plib=PREFIX Specify the prefix path to plib])
91 if test "x$with_plib" != "x" ; then
92 echo "plib prefix is $with_plib"
93 EXTRA_DIRS="${EXTRA_DIRS} $with_plib"
96 dnl Used by JSBSim to conditionally compile in fgfs interface code
97 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
99 dnl Used to control whether clouds3d should be compiled in or not
100 AC_DEFINE([FG_USE_CLOUDS_3D], 1, [Define to use 3D cloud support])
101 AM_CONDITIONAL(FG_USE_CLOUDS_3D, test "x" = "x")
103 # Check for MS Windows environment
104 AC_CHECK_HEADER(windows.h)
106 dnl Determine an extra directories to add to include/lib search paths
108 *-apple-darwin* | *-*-mingw32*)
109 echo no EXTRA_DIRS for $host
113 if test -d /usr/local ; then
114 EXTRA_DIRS="${EXTRA_DIRS} /usr/local"
119 if test -d /usr/X11R6 ; then
120 EXTRA_DIR1="/usr/X11R6"
122 if test -d /opt/X11R6 ; then
123 EXTRA_DIR2="/opt/X11R6"
125 EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2 /usr/local/"
129 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
132 dnl Using AM_CONDITIONAL is a step out of the protected little
133 dnl automake fold so it is potentially dangerous. But, we are
134 dnl beginning to run into cases where the standard checks are not
135 dnl enough. AM_CONDITIONALS are then referenced to conditionally
136 dnl build a Makefile.in from a Makefile.am which lets us define custom
137 dnl includes, compile alternative source files, etc.
139 dnl Check for external variables daylight and timezone.
141 if test "$have_daylight" = yes; then
142 AC_DEFINE([HAVE_DAYLIGHT], 1, [Define if system has daylight variable])
146 if test "$have_timezone" = yes; then
147 AC_DEFINE([HAVE_TIMEZONE], 1, [Define if system has timezone variable])
150 dnl add correct audio libs and configure for audio support
151 LIBS="-lplibsl -lplibsm"
153 dnl search for FreeBSD library
154 AC_SEARCH_LIBS(hid_init, usbhid)
157 *-*-cygwin* | *-*-mingw32*)
161 LIBS="$LIBS -framework IOKit -framework CoreFoundation"
172 dnl ENABLE_AUDIO_SUPPORT could be depricated at any time in favor of
173 dnl just assuming we have audio support on all platform. We can
174 dnl depend on plib to hide the details.
175 AC_DEFINE([ENABLE_AUDIO_SUPPORT], 1, [Define for audio support])
177 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
178 dnl to use it if it is.
180 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
181 echo no fancy X11 check
190 dnl Checks for libraries.
192 dnl Thread related checks
193 AC_SEARCH_LIBS(pthread_cancel, [pthread c_r])
194 if test "x$ac_cv_header_pthread_h" = "xyes"; then
195 if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
196 CXXFLAGS="-pthread $CXXFLAGS"
197 CFLAGS="-pthread $FLAGS"
204 dnl search for network related libraries
205 AC_SEARCH_LIBS(inet_addr, xnet)
206 AC_SEARCH_LIBS(socket, socket)
207 AC_SEARCH_LIBS(main, nsl)
212 dnl check for some default libraries
213 AC_SEARCH_LIBS(cos, m)
214 AC_SEARCH_LIBS(dlclose, dl)
218 dnl Check for SDL if enabled.
219 AC_ARG_ENABLE(sdl, [ --enable-sdl Configure to use SDL instead of GLUT], [enable_sdl="$enableval"])
220 AM_CONDITIONAL(USE_SDL, test "x$enable_sdl" = "xyes")
221 if test "x$enable_sdl" = "xyes"; then
222 AC_DEFINE([PU_USE_SDL], 1, [Define to use SDL])
224 AC_DEFINE([PU_USE_GLUT], 1, [Define to use glut])
227 dnl check for OpenGL related libraries
229 *-*-cygwin* | *-*-mingw32*)
230 dnl CygWin under Windoze.
232 echo Win32 specific hacks...
233 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
234 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
236 if test "x$enable_sdl" = "xyes"; then
237 AC_SEARCH_LIBS(SDL_Init, SDL)
239 LIBS="$LIBS -lglut32"
242 LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
244 dnl add -lwsock32 for mingwin
247 echo "********** BUILDING FOR MINGW32 *************"
248 base_LIBS="$base_LIBS -lws2_32"
252 echo "Will link apps with $LIBS"
259 LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
263 dnl X-Windows based machines
265 dnl Skip X11 library tests if requested.
266 if test "x$no_x" != "xyes"; then
267 AC_SEARCH_LIBS(XCreateWindow, X11)
268 AC_SEARCH_LIBS(XShmCreateImage, Xext)
269 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
270 AC_SEARCH_LIBS(IceOpenConnection, ICE)
271 AC_SEARCH_LIBS(SmcOpenConnection, SM)
272 AC_SEARCH_LIBS(XtMalloc, Xt)
273 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
276 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
277 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
278 dnl if GLcore found, then also check for GL
279 AC_SEARCH_LIBS(glXCreateContext, GL)
282 dnl if using mesa, check for xmesa.h
283 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
284 AC_CHECK_HEADER(GL/fxmesa.h)
285 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
286 AC_DEFINE([XMESA], 1, [Define for fxmesa])
287 AC_DEFINE([FX], 1, [Define for fxmesa])
291 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
292 AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
293 if test "x$enable_sdl" = "xyes"; then
294 AC_SEARCH_LIBS(SDL_Init, SDL)
303 dnl search for FreeBSD library
304 AC_SEARCH_LIBS(hid_init, usbhid)
306 dnl check for OpenAL libraries
308 *-*-cygwin* | *-*-mingw32*)
309 dnl CygWin under Windoze.
311 AC_SEARCH_LIBS(alGenBuffers, openal32)
312 AC_SEARCH_LIBS(alutInit, [ openal32 ALut ] )
313 LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
320 LIBS="$LIBS -framework IOKit -framework OpenAL"
325 dnl default unix style machines
328 LIBS="$LIBS $thread_LIBS"
329 AC_SEARCH_LIBS(alGenBuffers, openal)
330 OPENAL_OK="$ac_cv_search_alGenBuffers"
340 AC_SUBST(openal_LIBS)
341 AC_SUBST(opengl_LIBS)
342 AC_SUBST(thread_LIBS)
343 AC_SUBST(network_LIBS)
345 # The following are C++ items that need to be tested for with the c++
350 # Check for "plib" without which we cannot go on
351 AC_CHECK_HEADER(plib/ul.h)
352 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
354 echo "You *must* have the plib library installed on your system to build"
355 echo "the FGFS simulator!"
357 echo "Please see README.plib for more details."
359 echo "configure aborted."
363 AC_MSG_CHECKING([for plib 1.8.0 or newer])
367 #define MIN_PLIB_VERSION 170
370 int major, minor, micro;
372 if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
381 [AC_MSG_RESULT(wrong version);
382 AC_MSG_ERROR([Install plib 1.8.0 or later first...])],
386 dnl If we get here then plib is available, so force use of plib
388 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
391 dnl Check for the presence of SimGear
392 AC_CHECK_HEADER(simgear/version.h)
393 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
395 echo "You *must* have the SimGear support library installed on your system"
396 echo "to build the FGFS simulator!"
398 echo "Please see README.SimGear for more details."
400 echo "configure aborted."
404 AC_MSG_CHECKING([for simgear 0.3.8 or newer])
408 #include <simgear/version.h>
410 #define STRINGIFY(X) XSTRINGIFY(X)
411 #define XSTRINGIFY(X) #X
418 int major, minor, micro;
420 /* printf("%d.%d.%d or greater, ", MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
421 printf("[found %s] ... ", STRINGIFY(SIMGEAR_VERSION));
423 sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, µ );
425 if ( (major < MIN_MAJOR) ||
426 (major == MIN_MAJOR && minor < MIN_MINOR) ||
427 (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
436 [AC_MSG_RESULT(wrong version);
437 AC_MSG_ERROR([Install latest simgear first...])],
443 dnl Check if SimGear was built with Norman's JPEG factory support
444 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
445 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
446 AC_CHECK_LIB(jpeg, jpeg_start_compress)
447 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
449 echo "The JPEG factory code was built and installed with SimGear."
450 echo "However it appears the libjpeg is no longer installed."
451 echo "You need to install libjpeg or remove jpgfactory support from"
454 echo "libjpeg is available at :"
455 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
458 AC_DEFINE([FG_JPEG_SERVER], 1,
459 [Define to build with jpeg screen shot server])
461 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
465 dnl Check for system installed zlib
466 AC_CHECK_HEADER(zlib.h)
467 if test "x$ac_cv_header_zlib_h" != "xyes"; then
469 echo "zlib library not found."
471 echo "If your OS does not provide an installable package for zlib"
472 echo "you will have to compile and install it first yourself. A copy"
473 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
474 echo "have to untar this source code, and follow it's included instructions"
475 echo "to compile and install on your system."
477 echo "configure aborted."
481 dnl Checks for header files.
484 fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
485 sys/time.h sys/timeb.h unistd.h windows.h values.h )
487 dnl Checks for typedefs, structures, and compiler characteristics.
493 dnl Checks for library functions.
495 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
499 ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
500 random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
504 AM_CONFIG_HEADER(src/Include/config.h)
516 scripts/debug/Makefile \
517 scripts/perl/Makefile \
518 scripts/perl/examples/Makefile \
519 scripts/python/Makefile \
521 src/Include/Makefile \
522 src/Include/version.h \
523 src/Include/config.h-msvc6 \
524 src/Aircraft/Makefile \
525 src/Airports/Makefile \
527 src/Autopilot/Makefile \
528 src/Cockpit/Makefile \
529 src/Cockpit/built_in/Makefile \
530 src/Controls/Makefile \
531 src/Environment/Makefile \
532 src/FDM/Balloon/Makefile \
533 src/FDM/ExternalNet/Makefile \
534 src/FDM/ExternalPipe/Makefile \
535 src/FDM/JSBSim/Makefile \
536 src/FDM/JSBSim/filtersjb/Makefile \
537 src/FDM/LaRCsim/Makefile \
538 src/FDM/SP/Makefile \
539 src/FDM/UIUCModel/Makefile \
540 src/FDM/YASim/Makefile \
544 src/Instrumentation/Makefile \
547 src/Main/runfgfs.bat \
549 src/AIModel/Makefile \
550 src/MultiPlayer/Makefile \
551 src/Navaids/Makefile \
552 src/Network/Makefile \
553 src/Objects/Makefile \
554 src/Replay/Makefile \
555 src/Scenery/Makefile \
556 src/Scripting/Makefile \
558 src/Systems/Makefile \
560 src/Traffic/Makefile \
563 utils/TerraSync/Makefile \
564 utils/Modeller/Makefile \
565 utils/js_server/Makefile \
569 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
572 echo "Configure Summary"
573 echo "================="
575 echo "Prefix: $prefix"
577 if test "x$with_logging" != "x"; then
578 echo "Debug messages: $with_logging"
580 echo "Debug messages: yes"
583 echo -n "Automake version: "
584 automake --version | head -1
586 if test "x$with_multiplayer" != "xno"; then
587 echo "Building with multiplayer support"
590 if test "x$with_threads" = "xyes"; then
596 if test "x$enable_sp_fdms" != "xno"; then
597 echo "Include special purpose flight models: yes"
599 echo "Include special purpose flight models: no"