1 dnl Process this file with autoget.sh to produce a working configure
7 AC_CONFIG_SRCDIR([src/Aircraft/aircraft.cxx])
9 dnl Require at least automake 2.52
12 dnl Initialize the automake stuff
13 dnl set the $host variable based on local machine/os
15 AM_INIT_AUTOMAKE(FlightGear, 0.9.6)
17 dnl Checks for programs.
26 # specify the simgear location
27 AC_ARG_WITH(simgear, [ --with-simgear=PREFIX Specify the prefix path to simgear])
29 if test "x$with_simgear" != "x" ; then
30 echo "SimGear prefix path is $with_simgear"
31 EXTRA_DIRS="${EXTRA_DIRS} $with_simgear"
36 if test "$CXX" = "CC"; then
39 CXXFLAGS="$CXXFLAGS -I$with_simgear/include/simgear/compatibility"
53 dnl set logging; default value of with_logging=yes
54 AC_ARG_WITH(logging, [ --with-logging Include logging output (default)])
55 if test "x$with_logging" = "xno" ; then
56 AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
59 # Specify if we want to build with Multiplayer support
60 # default to with_network=yes
61 AC_ARG_WITH(multiplayer, [ --with-multiplayer Include multiplayer support [default=yes]])
63 if test "x$with_multiplayer" = "xno"; then
64 echo "Building without any kind of multiplayer support"
66 echo "Building with multiplayer support"
67 AC_DEFINE([FG_MPLAYER_AS], 1, [Define to build with multiplayer support])
69 AM_CONDITIONAL(ENABLE_MPLAYER_AS, test "x$with_multiplayer" != "xno")
71 AC_ARG_ENABLE(sp_fdms, [ --enable-sp-fdms Include special purpose Flight Models], [enable_sp_fdms="$enableval"] )
72 AC_DEFINE([ENABLE_SP_FMDS], test "x$enable_sp_fdms" = "xyes", [Define to include special purpose FDMs])
73 AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
76 dnl Thread related checks
79 AC_ARG_WITH(threads, [ --with-threads Include tile loading threads [default=yes]])
80 if test "x$with_threads" != "xyes"; then
81 AC_DEFINE([ENABLE_THREADS], 0, [Define to enable threaded tile paging])
83 AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
84 CXXFLAGS="$CXXFLAGS -D_REENTRANT"
85 CFLAGS="$CFLAGS -D_REENTRANT"
87 AC_CHECK_HEADER(pthread.h)
88 AM_CONDITIONAL(WITH_THREADS, test "x$with_threads" = "xyes")
90 # specify the plib location
91 AC_ARG_WITH(plib, [ --with-plib=PREFIX Specify the prefix path to plib])
93 if test "x$with_plib" != "x" ; then
94 echo "plib prefix is $with_plib"
95 EXTRA_DIRS="${EXTRA_DIRS} $with_plib"
98 dnl Used by JSBSim to conditionally compile in fgfs interface code
99 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
101 dnl Used to control whether clouds3d should be compiled in or not
102 AC_DEFINE([FG_USE_CLOUDS_3D], 1, [Define to use 3D cloud support])
103 AM_CONDITIONAL(FG_USE_CLOUDS_3D, test "x" = "x")
105 # Check for MS Windows environment
106 AC_CHECK_HEADER(windows.h)
108 dnl Determine an extra directories to add to include/lib search paths
110 *-apple-darwin* | *-*-mingw32*)
111 echo no EXTRA_DIRS for $host
115 if test -d /usr/local ; then
116 EXTRA_DIRS="${EXTRA_DIRS} /usr/local"
121 if test -d /usr/X11R6 ; then
122 EXTRA_DIR1="/usr/X11R6"
124 if test -d /opt/X11R6 ; then
125 EXTRA_DIR2="/opt/X11R6"
127 EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2 /usr/local/"
131 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
134 dnl Using AM_CONDITIONAL is a step out of the protected little
135 dnl automake fold so it is potentially dangerous. But, we are
136 dnl beginning to run into cases where the standard checks are not
137 dnl enough. AM_CONDITIONALS are then referenced to conditionally
138 dnl build a Makefile.in from a Makefile.am which lets us define custom
139 dnl includes, compile alternative source files, etc.
141 dnl Check for external variables daylight and timezone.
143 if test "$have_daylight" = yes; then
144 AC_DEFINE([HAVE_DAYLIGHT], 1, [Define if system has daylight variable])
148 if test "$have_timezone" = yes; then
149 AC_DEFINE([HAVE_TIMEZONE], 1, [Define if system has timezone variable])
152 dnl add correct audio libs and configure for audio support
153 LIBS="-lplibsl -lplibsm"
155 dnl search for FreeBSD library
156 AC_SEARCH_LIBS(hid_init, usbhid)
159 *-*-cygwin* | *-*-mingw32*)
163 LIBS="$LIBS -framework IOKit -framework CoreFoundation"
174 dnl ENABLE_AUDIO_SUPPORT could be depricated at any time in favor of
175 dnl just assuming we have audio support on all platform. We can
176 dnl depend on plib to hide the details.
177 AC_DEFINE([ENABLE_AUDIO_SUPPORT], 1, [Define for audio support])
179 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
180 dnl to use it if it is.
182 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
183 echo no fancy X11 check
192 dnl Checks for libraries.
194 dnl Thread related checks
195 AC_SEARCH_LIBS(pthread_cancel, [pthread c_r])
196 if test "x$ac_cv_header_pthread_h" = "xyes"; then
197 if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
198 CXXFLAGS="-pthread $CXXFLAGS"
199 CFLAGS="-pthread $FLAGS"
206 dnl search for network related libraries
207 AC_SEARCH_LIBS(inet_addr, xnet)
208 AC_SEARCH_LIBS(socket, socket)
209 AC_SEARCH_LIBS(main, nsl)
214 dnl check for some default libraries
215 AC_SEARCH_LIBS(cos, m)
216 AC_SEARCH_LIBS(dlclose, dl)
220 dnl Check for SDL if enabled.
221 AC_ARG_ENABLE(sdl, [ --enable-sdl Configure to use SDL instead of GLUT], [enable_sdl="$enableval"])
222 AM_CONDITIONAL(USE_SDL, test "x$enable_sdl" = "xyes")
223 if test "x$enable_sdl" = "xyes"; then
224 AC_DEFINE([PU_USE_SDL], 1, [Define to use SDL])
226 AC_DEFINE([PU_USE_GLUT], 1, [Define to use glut])
229 dnl check for OpenGL related libraries
231 *-*-cygwin* | *-*-mingw32*)
232 dnl CygWin under Windoze.
234 echo Win32 specific hacks...
235 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
236 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
238 if test "x$enable_sdl" = "xyes"; then
239 AC_SEARCH_LIBS(SDL_Init, SDL)
241 LIBS="$LIBS -lglut32"
244 LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
246 dnl add -lwsock32 for mingwin
249 echo "********** BUILDING FOR MINGW32 *************"
250 base_LIBS="$base_LIBS -lws2_32"
254 echo "Will link apps with $LIBS"
261 LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework Carbon -lobjc"
265 dnl X-Windows based machines
267 dnl Skip X11 library tests if requested.
268 if test "x$no_x" != "xyes"; then
269 AC_SEARCH_LIBS(XCreateWindow, X11)
270 AC_SEARCH_LIBS(XShmCreateImage, Xext)
271 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
272 AC_SEARCH_LIBS(IceOpenConnection, ICE)
273 AC_SEARCH_LIBS(SmcOpenConnection, SM)
274 AC_SEARCH_LIBS(XtMalloc, Xt)
275 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
278 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
279 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
280 dnl if GLcore found, then also check for GL
281 AC_SEARCH_LIBS(glXCreateContext, GL)
284 dnl if using mesa, check for xmesa.h
285 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
286 AC_CHECK_HEADER(GL/fxmesa.h)
287 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
288 AC_DEFINE([XMESA], 1, [Define for fxmesa])
289 AC_DEFINE([FX], 1, [Define for fxmesa])
293 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
294 AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
295 if test "x$enable_sdl" = "xyes"; then
296 AC_SEARCH_LIBS(SDL_Init, SDL)
305 dnl search for FreeBSD library
306 AC_SEARCH_LIBS(hid_init, usbhid)
308 dnl check for OpenAL libraries
310 *-*-cygwin* | *-*-mingw32*)
311 dnl CygWin under Windoze.
313 AC_SEARCH_LIBS(alGenBuffers, openal32)
314 AC_SEARCH_LIBS(alutInit, [ openal32 ALut ] )
315 LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
322 LIBS="$LIBS -framework IOKit -framework OpenAL"
327 dnl default unix style machines
330 LIBS="$LIBS $thread_LIBS"
331 AC_SEARCH_LIBS(alGenBuffers, openal)
332 OPENAL_OK="$ac_cv_search_alGenBuffers"
342 AC_SUBST(openal_LIBS)
343 AC_SUBST(opengl_LIBS)
344 AC_SUBST(thread_LIBS)
345 AC_SUBST(network_LIBS)
347 # The following are C++ items that need to be tested for with the c++
352 # Check for "plib" without which we cannot go on
353 AC_CHECK_HEADER(plib/ul.h)
354 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
356 echo "You *must* have the plib library installed on your system to build"
357 echo "the FGFS simulator!"
359 echo "Please see README.plib for more details."
361 echo "configure aborted."
365 AC_MSG_CHECKING([for plib 1.8.0 or newer])
369 #define MIN_PLIB_VERSION 170
372 int major, minor, micro;
374 if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
383 [AC_MSG_RESULT(wrong version);
384 AC_MSG_ERROR([Install plib 1.8.0 or later first...])],
388 dnl If we get here then plib is available, so force use of plib
390 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
393 dnl Check for the presence of SimGear
394 AC_CHECK_HEADER(simgear/version.h)
395 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
397 echo "You *must* have the SimGear support library installed on your system"
398 echo "to build the FGFS simulator!"
400 echo "Please see README.SimGear for more details."
402 echo "configure aborted."
406 AC_MSG_CHECKING([for simgear 0.3.7 or newer])
410 #include <simgear/version.h>
412 #define STRINGIFY(X) XSTRINGIFY(X)
413 #define XSTRINGIFY(X) #X
420 int major, minor, micro;
422 /* printf("%d.%d.%d or greater, ", MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
423 printf("[found %s] ... ", STRINGIFY(SIMGEAR_VERSION));
425 sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, µ );
427 if ( (major < MIN_MAJOR) ||
428 (major == MIN_MAJOR && minor < MIN_MINOR) ||
429 (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
438 [AC_MSG_RESULT(wrong version);
439 AC_MSG_ERROR([Install latest simgear first...])],
445 dnl Check if SimGear was built with Norman's JPEG factory support
446 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
447 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
448 AC_CHECK_LIB(jpeg, jpeg_start_compress)
449 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
451 echo "The JPEG factory code was built and installed with SimGear."
452 echo "However it appears the libjpeg is no longer installed."
453 echo "You need to install libjpeg or remove jpgfactory support from"
456 echo "libjpeg is available at :"
457 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
460 AC_DEFINE([FG_JPEG_SERVER], 1,
461 [Define to build with jpeg screen shot server])
463 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
467 dnl Check for system installed zlib
468 AC_CHECK_HEADER(zlib.h)
469 if test "x$ac_cv_header_zlib_h" != "xyes"; then
471 echo "zlib library not found."
473 echo "If your OS does not provide an installable package for zlib"
474 echo "you will have to compile and install it first yourself. A copy"
475 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
476 echo "have to untar this source code, and follow it's included instructions"
477 echo "to compile and install on your system."
479 echo "configure aborted."
483 dnl Checks for header files.
486 fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
487 sys/time.h sys/timeb.h unistd.h windows.h values.h )
489 dnl Checks for typedefs, structures, and compiler characteristics.
495 dnl Checks for library functions.
497 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
501 ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
502 random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
506 AM_CONFIG_HEADER(src/Include/config.h)
518 scripts/debug/Makefile \
519 scripts/perl/Makefile \
520 scripts/perl/examples/Makefile \
521 scripts/python/Makefile \
523 src/Include/Makefile \
524 src/Include/version.h \
525 src/Include/config.h-msvc6 \
526 src/Aircraft/Makefile \
527 src/Airports/Makefile \
529 src/Autopilot/Makefile \
530 src/Cockpit/Makefile \
531 src/Cockpit/built_in/Makefile \
532 src/Controls/Makefile \
533 src/Environment/Makefile \
534 src/FDM/Balloon/Makefile \
535 src/FDM/ExternalNet/Makefile \
536 src/FDM/ExternalPipe/Makefile \
537 src/FDM/JSBSim/Makefile \
538 src/FDM/JSBSim/filtersjb/Makefile \
539 src/FDM/LaRCsim/Makefile \
540 src/FDM/SP/Makefile \
541 src/FDM/UIUCModel/Makefile \
542 src/FDM/YASim/Makefile \
546 src/Instrumentation/Makefile \
549 src/Main/runfgfs.bat \
551 src/AIModel/Makefile \
552 src/MultiPlayer/Makefile \
553 src/Navaids/Makefile \
554 src/Network/Makefile \
555 src/Objects/Makefile \
556 src/Replay/Makefile \
557 src/Scenery/Makefile \
558 src/Scripting/Makefile \
560 src/Systems/Makefile \
562 src/Traffic/Makefile \
565 utils/TerraSync/Makefile \
566 utils/Modeller/Makefile \
567 utils/js_server/Makefile \
571 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
574 echo "Configure Summary"
575 echo "================="
577 echo "Prefix: $prefix"
579 if test "x$with_logging" != "x"; then
580 echo "Debug messages: $with_logging"
582 echo "Debug messages: yes"
585 echo -n "Automake version: "
586 automake --version | head -1
588 if test "x$with_multiplayer" != "xno"; then
589 echo "Building with multiplayer support"
592 if test "x$with_threads" = "xyes"; then
598 if test "x$enable_sp_fdms" != "xno"; then
599 echo "Include special purpose flight models: yes"
601 echo "Include special purpose flight models: no"