]> git.mxchange.org Git - flightgear.git/blob - configure.ac
Update Mac configure script for new ALUT scheme; support --with-alut-framework.
[flightgear.git] / configure.ac
1 dnl Process this file with autogen.sh to produce a working configure
2 dnl script.
3
4 AC_INIT
5 AC_CONFIG_SRCDIR([src/Aircraft/aircraft.cxx])
6
7 dnl Require at least automake 2.52
8 AC_PREREQ(2.52)
9
10 dnl Initialize the automake stuff
11 dnl set the $host variable based on local machine/os
12 AC_CANONICAL_TARGET
13 AM_INIT_AUTOMAKE(FlightGear, 2.0.0)
14
15 dnl Checks for programs.
16 AC_PROG_MAKE_SET
17 AC_PROG_CC
18 AC_PROG_CPP
19 AC_PROG_CXX
20 AC_PROG_CXXCPP
21 AC_PROG_RANLIB
22 AC_PROG_INSTALL
23 AC_PROG_LN_S
24 AX_BOOST_BASE([1.37.0])
25
26 if test "x$BOOST_CPPFLAGS" != "x-I/usr/include" ; then
27    CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
28 fi
29
30 # specify the simgear location
31 AC_ARG_WITH(simgear, [  --with-simgear=PREFIX   Specify the prefix path to SimGear])
32
33 if test "x$with_simgear" != "x" ; then
34     echo "SimGear prefix path is $with_simgear"
35     EXTRA_DIRS="${EXTRA_DIRS} $with_simgear"
36     CXXFLAGS="$CXXFLAGS -I$with_simgear"
37 fi
38
39 # specify the plib location
40 AC_ARG_WITH(plib, [  --with-plib=PREFIX      Specify the prefix path to plib])
41
42 if test "x$with_plib" != "x" ; then
43     echo "plib prefix is $with_plib"
44     EXTRA_DIRS="${EXTRA_DIRS} $with_plib"
45 fi
46
47 # specify the osg location
48 AC_ARG_WITH(osg, [  --with-osg=PREFIX       Specify the prefix path to osg])
49
50 if test "x$with_osg" != "x" ; then
51     echo "osg prefix is $with_osg"
52     EXTRA_DIRS="${EXTRA_DIRS} $with_osg"
53 fi
54
55 # specify framework related locations for Mac OS X
56 case "${host}" in
57 *-apple-darwin*)
58
59     dnl Thank you Christian Bauer from SheepSaver
60     dnl Modified by Tatsuhiro Nishioka for accepting a given framework path
61     dnl AC_CHECK_FRAMEWORK($1=NAME, $2=INCLUDES, $3=FRAMEWORK_PATH, $4=ACTION_IF_FOUND) ; 
62     AC_DEFUN([AC_CHECK_FRAMEWORK], [
63     AS_VAR_PUSHDEF([ac_Framework], [ac_cv_framework_$1])dnl
64     AC_CACHE_CHECK([whether compiler supports framework $1],
65         ac_Framework, [
66         saved_LIBS="$LIBS"
67         FRAMEWORKS="$FRAMEWORKS -framework $1"
68         if test "$3" = ""; then
69             FRAMEWORKS="$FRAMEWORKS $ADD2LD"
70         elif test "`echo $FRAMEWORKS | grep -- -F$3`" = ""; then
71             FRAMEWORKS="$FRAMEWORKS -F$3"
72             CXXFLAGS="$CXXFLAGS -F$3"
73             CCFLAGS="$CCFLAGS -F$3"
74             CPPFLAGS="$CPPFLAGS -F$3"
75             dnl This is needed for AC_TRY_LINK when a framework path is specified
76             export DYLD_FRAMEWORK_PATH="${DYLD_FRAMEWORK_PATH}:$3"
77         fi
78         AC_TRY_LINK(
79         [$2], [],
80         [AS_VAR_SET(ac_Framework, yes)], [AS_VAR_SET(ac_Framework, no); LIBS="$saved_LIBS"]
81         )
82     ])
83     AS_IF([test AS_VAR_GET(ac_Framework) = yes],
84         [AC_DEFINE(AS_TR_CPP(HAVE_FRAMEWORK_$1), 1, [Define if framework $1 is available.])]
85     )
86     AS_IF([test AS_VAR_GET(ac_Framework) = yes], $4)
87     AS_VAR_POPDEF([ac_Framework])dnl
88     ])
89
90     # Mac OS X specific configure options
91     AC_ARG_WITH(cocoa_framework, [  --with-cocoa-framework       Use the Cocoa rather than Carbon]])
92     if test "x$with_cocoa_framework" != "x" ; then
93         macAPI=Cocoa
94         AC_MSG_NOTICE([Using Cocoa framework])
95     else
96         macAPI=Carbon
97         AC_MSG_NOTICE([Using Carbon framework])
98     fi
99
100     AC_ARG_WITH(osg_framework, [  --with-osg-framework=PREFIX       Specify the prefix path to osg frameworks [default=standard framework paths]])
101     if test "x$with_osg_framework" != "x" ; then
102         echo "osg prefix is $with_osg_framework"
103         export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:$with_osg_framework"
104     fi
105
106     AC_ARG_WITH(plib_framework, [  --with-plib-framework=PREFIX       Specify the prefix path to PLIB framework [default=standard framework paths]])
107     if test "x$with_plib_framework" != "x" ; then
108         echo "plib prefix is $with_plib_framework"
109         export DYLD_FRAMEWORK_PATH="$DYLD_FRAMEWORK_PATH:$with_plib_framework"
110     fi
111
112     AC_ARG_WITH(alut_framework, [ --with-alut-framework=PREFIX    Specify the prefix path to ALUT.framework ])
113     if test "x$with_alut_framework" != "x"; then
114         echo "ALUT framework prefix is $with_alut_framework"
115     fi
116
117     ;;
118 esac
119
120 dnl Determine an extra directories to add to include/lib search paths
121 case "${host}" in
122 *-apple-darwin* | *-*-mingw32*)
123     echo no EXTRA_DIRS for $host
124     ;;
125
126 *-*-cygwin*)
127     if test -d /usr/local ; then
128         EXTRA_DIRS="${EXTRA_DIRS} /usr/local"
129     fi
130     ;;
131
132 *)
133     if test -d /usr/X11R6 ; then
134         EXTRA_DIR1="/usr/X11R6"
135     fi
136     if test -d /opt/X11R6 ; then
137         EXTRA_DIR2="/opt/X11R6"
138     fi
139     EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2 /usr/local"
140     ;;
141
142 esac
143 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
144
145
146 case "${host}" in
147 *-*-irix*)
148     if test "$CXX" = "CC"; then
149         AR="CC -ar"
150         ARFLAGS="-o"
151         CXXFLAGS="$CXXFLAGS -c99 -I$with_simgear/include/simgear/compatibility"
152         CFLAGS="$CFLAGS -c99"
153     else
154         AR="ar"
155         ARFLAGS="cru"
156     fi
157     ;;
158 *)
159     AR="ar"
160     ARFLAGS="cru"
161     ;;
162 esac
163 AC_SUBST(AR)
164 AC_SUBST(ARFLAGS)
165
166 dnl set logging; default value of with_logging=yes
167 AC_ARG_WITH(logging, [  --with-logging          Include logging output (default)])
168 if test "x$with_logging" = "xno" ; then
169     AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
170 fi
171
172 AC_ARG_ENABLE(sp_fdms, [  --enable-sp-fdms               Include special purpose Flight Models], [enable_sp_fdms="$enableval"] )
173 if test "x$enable_sp_fdms" != "xno"; then
174     AC_DEFINE([ENABLE_SP_FDM], 1, [Define to include special purpose FDMs])
175 else
176     AC_DEFINE([ENABLE_SP_FDM], 0, [Define to include special purpose FDMs])
177 fi
178 AM_CONDITIONAL(ENABLE_SP_FDM, test "x$enable_sp_fdms" != "xno")
179
180 # Specify whether we want to compile ATCDCL.
181 # default to with_atcdcl=yes
182 AC_ARG_ENABLE(atcdcl, [  --enable-atcdcl                Compile and link the depricated atc/ai module], [enable_atcdcl="$enableval"] )
183 if test "x$enable_atcdcl" != "xno"; then
184     AC_DEFINE([ENABLE_ATCDCL], 1, [Define to include old ATC/AI module])
185 else
186     AC_DEFINE([ENABLE_ATCDCL], 0, [Define to include old ATC/AI module])
187 fi
188 AM_CONDITIONAL(ENABLE_ATCDCL, test "x$enable_atcdcl" != "xno")
189
190
191
192 dnl EXPERIMENTAL generic event driven input device
193 # defaults to no
194 AC_ARG_WITH(eventinput, [  --with-eventinput       Include event driven input (EXPERIMENTAL) [default=no]], [], [with_eventinput=no])
195 if test "x$with_eventinput" = "xyes"; then
196     AC_DEFINE([WITH_EVENTINPUT], 1, [Define to enable generic event driven input device])
197     case "${host}" in
198     dnl OS specific sources for event driven input
199     dnl Linux and Mac OS X are supported at this moment
200     *-apple-darwin*)
201         eventinput_EXTRA_OBJS="FGMacOSXEventInput.o"
202         eventinput_INCUDES=""
203         eventinput_LIBS=""
204         ;;
205     *linux*)
206         dnl
207         dnl FIXME: include paths for dbus are hard-coded at this moment.
208         dnl FIXME: these must be found in configure
209         dnl
210         eventinput_EXTRA_OBJS="FGLinuxEventInput.o"
211         eventinput_INCLUDES="-I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/lib/dbus-1.0/include"
212         eventinput_LIBS="-ldbus-1 -lhal"
213         ;;
214     *)
215         echo "Event driven input is not supported on ${host}."
216         ;;
217     esac
218     AC_SUBST(eventinput_EXTRA_OBJS)
219     AC_SUBST(eventinput_INCLUDES)
220     AC_SUBST(eventinput_LIBS)
221 fi
222 AM_CONDITIONAL(WITH_EVENTINPUT, test "x$with_eventinput" = "xyes")
223
224 dnl Thread related checks
225 # defaults to yes
226 AC_ARG_WITH(threads, [  --with-threads          Include tile loading threads [default=yes]], [], [with_threads=yes])
227 if test "x$with_threads" = "xyes"; then
228     AC_DEFINE([ENABLE_THREADS], 1, [Define to enable threaded tile paging])
229     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
230     CFLAGS="$CFLAGS -D_REENTRANT"
231 fi
232 AC_CHECK_HEADER(pthread.h)
233
234
235 dnl Used by JSBSim to conditionally compile in fgfs interface code
236 AC_DEFINE([FGFS], 1, [Define so that JSBSim compiles in 'library' mode])
237
238 # Check for MS Windows environment
239 AC_CHECK_HEADER(windows.h)
240
241 dnl Using AM_CONDITIONAL is a step out of the protected little 
242 dnl automake fold so it is potentially dangerous.  But, we are
243 dnl beginning to run into cases where the standard checks are not
244 dnl enough.  AM_CONDITIONALS are then referenced to conditionally
245 dnl build a Makefile.in from a Makefile.am which lets us define custom
246 dnl includes, compile alternative source files, etc.
247
248 dnl Check for external variables daylight and timezone.
249 AC_EXT_DAYLIGHT
250 if test "$have_daylight" = yes; then
251     AC_DEFINE([HAVE_DAYLIGHT], 1, [Define if system has daylight variable])
252 fi
253
254 AC_EXT_TIMEZONE
255 if test "$have_timezone" = yes; then
256     AC_DEFINE([HAVE_TIMEZONE], 1, [Define if system has timezone variable])
257 fi
258
259
260 dnl add joystick support libraries
261 dnl search for FreeBSD library
262 AC_SEARCH_LIBS(hid_init, usbhid)
263 joystick_LIBS="$LIBS"
264 LIBS=""
265
266
267 dnl ENABLE_AUDIO_SUPPORT could be depricated at any time in favor of
268 dnl just assuming we have audio support on all platform.  We can
269 dnl depend on plib to hide the details.
270 AC_DEFINE([ENABLE_AUDIO_SUPPORT], 1, [Define for audio support])
271
272 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
273 dnl to use it if it is.
274 case "${host}" in
275 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
276     echo no fancy X11 check
277     ;;
278
279 *)
280     AC_PATH_XTRA
281     ;;
282
283 esac
284
285 dnl Checks for libraries.
286
287 dnl Thread related checks
288 AC_SEARCH_LIBS(pthread_create, [pthread c_r])
289 if test "x$ac_cv_header_pthread_h" = "xyes"; then
290   if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
291     CXXFLAGS="-pthread $CXXFLAGS"
292     CFLAGS="-pthread $CFLAGS"
293     LIBS="-lsgthreads $LIBS"
294   fi
295 fi
296
297 thread_LIBS="$LIBS"
298 LIBS=""
299
300 dnl search for network related libraries
301 AC_SEARCH_LIBS(inet_addr, xnet)
302 AC_SEARCH_LIBS(socket, socket)
303 AC_SEARCH_LIBS(main, nsl)
304
305 network_LIBS="$LIBS"
306 LIBS=""
307
308 dnl check for some default libraries
309 AC_SEARCH_LIBS(sqrt, [am ffm fm fastm m])
310 AC_SEARCH_LIBS(ceil, m)
311 AC_SEARCH_LIBS(dlclose, dl)
312 AC_SEARCH_LIBS(clock_gettime, rt)
313
314 base_LIBS="$LIBS"
315
316 dnl Check for SDL or glut if enabled.
317 AC_ARG_ENABLE(osgviewer, [  --enable-osgviewer             Configure to use osgViewer(default)], [enable_osgviewer="$enableval"])
318 AC_ARG_ENABLE(sdl,  [  --enable-sdl                   Configure to use SDL], [enable_sdl="$enableval"])
319 AC_ARG_ENABLE(glut, [  --enable-glut                  Configure to use GLUT], [enable_glut="$enableval"])
320 AM_CONDITIONAL(USE_SDL, test "x$enable_sdl" = "xyes")
321 AM_CONDITIONAL(USE_GLUT, test "x$enable_glut" = "xyes")
322 if test "x$enable_sdl" != "xyes" -a "x$enable_glut" != "xyes" -a "x$enable_osgviewer" != "xno"; then
323    enable_osgviewer="yes"
324 fi
325 if test \( "x$enable_osgviewer" = "xyes" \
326    -a \( "x$enable_sdl" = "xyes" -o "x$enable_glut" = "xyes" \) \) \
327    -o \( "x$enable_sdl" = "xyes" -a "x$enable_glut" = "xyes" \); then
328    echo " Only one of --enable-osgviewer, --enable-sdl, or --enable -glut may"
329    echo " be supplied."
330    exit
331 fi
332 AC_DEFINE([PU_USE_NONE], 1, [Define to use application's pu callbacks])
333
334 AC_ARG_ENABLE(osgdebug, [  --enable-osgdebug              Use OSG debug libraries], [enable_osgdebug="$enableval"])
335
336 dnl check for OpenGL related libraries
337 case "${host}" in
338 *-*-cygwin* | *-*-mingw32*)
339     dnl CygWin under Windoze.
340
341     echo Win32 specific hacks...
342     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
343     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
344
345     if test "x$enable_sdl" = "xyes"; then
346         AC_SEARCH_LIBS(SDL_Init, SDL)
347     else
348         LIBS="$LIBS -lglut32"
349     fi
350
351     LIBS="$LIBS -lglu32 -lopengl32 -luser32 -lgdi32"
352     joystick_LIBS="$joystick_LIBS -lwinmm"
353
354     dnl add -lwsock32 for mingwin
355     case "${host}" in
356     *-*-mingw32*)
357         echo "********** BUILDING FOR MINGW32 *************"
358         network_LIBS="$network_LIBS -lws2_32"
359         ;;
360     esac
361
362     echo "Will link apps with $LIBS"
363     ;;
364
365
366 *-apple-darwin*)
367     dnl Mac OS X
368
369     LIBS="$LIBS -framework GLUT -framework OpenGL -framework AGL -framework $macAPI -lobjc"
370     joystick_LIBS="$joystick_LIBS -framework IOKit -framework CoreFoundation"
371     ;;
372
373 *)
374     dnl X-Windows based machines
375
376     dnl Skip X11 library tests if requested.
377     if test "x$no_x" != "xyes"; then
378         AC_SEARCH_LIBS(XCreateWindow, X11)
379         AC_SEARCH_LIBS(XShmCreateImage, Xext)
380         AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
381         AC_SEARCH_LIBS(IceOpenConnection, ICE)
382         AC_SEARCH_LIBS(SmcOpenConnection, SM)
383         AC_SEARCH_LIBS(XtMalloc, Xt)
384         AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
385     fi
386
387     AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
388     if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
389         dnl if GLcore found, then also check for GL
390         AC_SEARCH_LIBS(glXCreateContext, GL)
391     fi
392
393     dnl if using mesa, check for xmesa.h
394     if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
395         AC_CHECK_HEADER(GL/fxmesa.h)
396         if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
397             AC_DEFINE([XMESA], 1, [Define for fxmesa])
398             AC_DEFINE([FX], 1, [Define for fxmesa])
399         fi
400     fi
401
402     AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
403     AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
404     if test "x$enable_sdl" = "xyes"; then
405         AC_SEARCH_LIBS(SDL_Init, SDL)
406     fi
407     ;;
408
409 esac
410
411 opengl_LIBS="$LIBS"
412 LIBS="$base_LIBS $joystick_LIBS"
413
414 dnl check for OpenAL libraries
415 OPENAL_OK="no"
416 ALUT_OK="no"
417 case "${host}" in
418 *-*-cygwin* | *-*-mingw32*)
419     dnl CygWin under Windoze.
420     INCLUDES="$INCLUDES -I/usr/local/include/"
421     LIBS="$LIBS -L/usr/local/lib"
422     AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal 'openal -ldsound -lwinmm' ] )
423     AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
424     LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
425     openal_LIBS="$LIBS"
426     OPENAL_OK="$ac_cv_search_alGenBuffers"
427     ALUT_OK="$ac_cv_search_alutInit"
428     ;;
429
430 *-apple-darwin*)
431     dnl Mac OS X
432
433     # Mac OS X has OpenAL.framework, but no ALUT, by default, so we
434     # require use of a non-Apple ALUT.framework which we provide
435     LIBS="$LIBS -framework IOKit -framework OpenAL"
436     openal_LIBS="$LIBS"
437     
438     AC_CHECK_FRAMEWORK(OpenAL, [#include <OpenAL/al.h>], "", [OPENAL_OK="yes"])
439     AC_CHECK_FRAMEWORK(ALUT, [#include <ALUT/alut.h>], $with_alut_framework, [
440         ALUT_OK="yes"
441         LIBS = "$LIBS -framework ALUT"
442     ])
443     ;;
444
445 *)
446     dnl default unix style machines
447
448     save_LIBS=$LIBS
449     LIBS="$LIBS $thread_LIBS"
450     AC_SEARCH_LIBS(alGenBuffers, openal)
451     AC_SEARCH_LIBS(alutInit, [ alut openal ] )
452     OPENAL_OK="$ac_cv_search_alGenBuffers"
453     ALUT_OK="$ac_cv_search_alutInit"
454     openal_LIBS="$LIBS"
455     LIBS=$save_LIBS
456     ;;
457
458 esac
459
460 if test "$OPENAL_OK" == "no"; then
461     echo
462     echo "You *must* have the openal library installed on your system to build"
463     echo "SimGear!"
464     echo
465     echo "Please see README.OpenAL for more details."
466     echo
467     echo "configure aborted."
468     exit
469 fi
470
471 if test "$ALUT_OK" == "no"; then
472     echo
473     echo "You *must* have the alut library installed on your system to build"
474     echo "SimGear!"
475     echo
476     echo "Please see README.OpenAL for more details."
477     echo
478     echo "configure aborted."
479     exit
480 fi
481
482
483 LIBS="$base_LIBS"
484
485 AC_SUBST(base_LIBS)
486 AC_SUBST(openal_LIBS)
487 AC_SUBST(opengl_LIBS)
488 AC_SUBST(thread_LIBS)
489 AC_SUBST(network_LIBS)
490 AC_SUBST(joystick_LIBS)
491
492 # The following are C++ items that need to be tested for with the c++
493 # compiler
494
495 AC_LANG_PUSH(C++)
496
497 dnl Check for the presence of SimGear
498 if test "x$with_simgear" != "x"; then
499 AC_CHECK_HEADER($with_simgear/include/simgear/version.h, [ac_cv_header_simgear_version_h=yes], [ac_cv_header_simgear_version_h=no])
500 else
501 AC_CHECK_HEADER(simgear/version.h)
502 fi
503 if test "x$ac_cv_header_simgear_version_h" != "xyes"; then
504     echo
505     echo "You *must* have the SimGear support library installed on your system"
506     echo "to build the FGFS simulator!"
507     echo
508     echo "Please see README.SimGear for more details."
509     echo
510     echo "configure aborted."
511     exit
512 fi
513
514 AC_MSG_CHECKING([for SimGear 2.0.0 or newer])
515 AC_TRY_RUN([
516 #include <stdio.h>
517
518 #include <simgear/version.h>
519
520 #define STRINGIFY(X) XSTRINGIFY(X)
521 #define XSTRINGIFY(X) #X
522
523 #define MIN_MAJOR 2
524 #define MIN_MINOR 0
525 #define MIN_MICRO 0
526
527 int main() {
528     int major, minor, micro;
529
530     /* printf("%d.%d.%d or greater, ", MIN_MAJOR, MIN_MINOR, MIN_MICRO); */
531     printf("[found %s] ... ", STRINGIFY(SIMGEAR_VERSION));
532
533     sscanf( STRINGIFY(SIMGEAR_VERSION), "%d.%d.%d", &major, &minor, &micro );
534
535     if ( (major < MIN_MAJOR) ||
536          (major == MIN_MAJOR && minor < MIN_MINOR) ||
537          (major == MIN_MAJOR && minor == MIN_MINOR && micro < MIN_MICRO) ) {
538          return -1;
539     }
540
541     return 0;
542 }
543
544 ],
545   AC_MSG_RESULT(yes),
546   [AC_MSG_RESULT(wrong version);
547    AC_MSG_ERROR([Install latest SimGear first...])],
548   AC_MSG_RESULT(yes)
549 )
550
551 LIBS="$saved_LIBS"
552
553 dnl Check if SimGear was built with Norman's JPEG factory support
554 if test "x$with_simgear" != "x"; then
555 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])
556 else
557 AC_CHECK_HEADER(simgear/screen/jpgfactory.hxx)
558 fi
559 if test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes"; then
560     AC_CHECK_LIB(jpeg, jpeg_start_compress)
561     if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
562         echo
563         echo "The JPEG factory code was built and installed with SimGear."
564         echo "However it appears the libjpeg is no longer installed."
565         echo "You need to install libjpeg or remove jpgfactory support from"
566         echo "SimGear"
567         echo
568         echo "libjpeg is available at :"
569         echo "  ftp://ftp.uu.net in the directory graphics/jpeg"
570         exit 1
571     fi
572     AC_DEFINE([FG_JPEG_SERVER], 1,
573               [Define to build with jpeg screen shot server])
574 fi
575 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$ac_cv_header_simgear_screen_jpgfactory_hxx" = "xyes")
576
577 # Check for "plib" without which we cannot go on
578 case "${host}" in
579 *-apple-darwin*)
580     if test "x$with_plib_framework" != "x"; then
581         AC_CHECK_FRAMEWORK(PLIB, [#include <plib/ul.h>], $with_plib_framework, no)
582         plib_FRAMEWORK="$FRAMEWORKS"
583         AC_SUBST(plib_FRAMEWORK)
584         FRAMEWORKS=""
585     fi
586     ;;
587 esac
588 AM_CONDITIONAL(HAVE_FRAMEWORK_PLIB, test "x$ac_cv_framework_PLIB" != "x")
589
590 AC_CHECK_HEADER(plib/ul.h)
591 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
592     echo
593     echo "You *must* have the plib library installed on your system to build"
594     echo "the FGFS simulator!"
595     echo
596     echo "Please see README.plib for more details."
597     echo
598     echo "configure aborted."
599     exit
600 fi
601
602 echo "$DYLD_FRAMEWORK_PATH"
603 AC_MSG_CHECKING([for plib 1.8.5 or newer])
604 AC_TRY_RUN([
605 #include <plib/ul.h>
606
607 #define MIN_PLIB_VERSION 185
608
609 int main() {
610     if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
611          return -1;
612     }
613
614     return 0;
615 }
616
617 ],
618   AC_MSG_RESULT(yes),
619   [AC_MSG_RESULT(wrong version);
620    AC_MSG_ERROR([Install plib 1.8.5 or later first...])],
621   AC_MSG_RESULT(yes)
622 )
623
624 dnl If we get here then plib is available, so force use of plib
625 dnl joystick lib
626 AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
627
628 # Find the OSG libraries.  Note special handling for OS X frameworks
629 if test "x$with_osg_framework" = "x"; then
630     if test "x$enable_osgdebug" = "xyes"; then
631         AC_CHECK_LIB(OpenThreadsd,OpenThreadsGetVersion, , [AC_MSG_ERROR(OpenThreads library not found.)],)
632         AC_CHECK_LIB(osgd,osgGetVersion, , [AC_MSG_ERROR(OpenSceneGraph library not found.)],)
633         AC_CHECK_LIB(osgUtild,osgUtilGetVersion, , [AC_MSG_ERROR(OpenSceneGraph utility library not found.)],)
634         AC_CHECK_LIB(osgDBd,osgDBGetVersion, , [AC_MSG_ERROR(OpenSceneGraph database library not found.)],)
635         AC_CHECK_LIB(osgTextd,osgTextGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Text library not found.)],)
636         AC_CHECK_LIB(osgGAd,osgGAGetVersion, , [AC_MSG_ERROR(OpenSceneGraph GUI Abstraction library not found.)],)
637         AC_CHECK_LIB(osgViewerd,osgViewerGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Viewer library not found.)],)
638         AC_CHECK_LIB(osgSimd,osgSimGetVersion, , [AC_MSG_ERROR(OpenSceneGraph simulation library not found.)],)
639         AC_CHECK_LIB(osgParticled,osgParticleGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Particle library not found.)],)
640         AC_CHECK_LIB(osgFXd, osgFXGetVersion, , [AC_MSG_ERROR(OpenSceneGraph FX library not found.)],)
641     else
642         AC_CHECK_LIB(OpenThreads,OpenThreadsGetVersion, , [AC_MSG_ERROR(OpenThreads library not found.)],)
643         AC_CHECK_LIB(osg,osgGetVersion, , [AC_MSG_ERROR(OpenSceneGraph library not found.)],)
644         AC_CHECK_LIB(osgUtil,osgUtilGetVersion, , [AC_MSG_ERROR(OpenSceneGraph utility library not found.)],)
645         AC_CHECK_LIB(osgDB,osgDBGetVersion, , [AC_MSG_ERROR(OpenSceneGraph database library not found.)],)
646         AC_CHECK_LIB(osgText,osgTextGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Text library not found.)],)
647         AC_CHECK_LIB(osgGA,osgGAGetVersion, , [AC_MSG_ERROR(OpenSceneGraph GUI Abstraction library not found.)],)
648         AC_CHECK_LIB(osgViewer,osgViewerGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Viewer library not found.)],)
649         AC_CHECK_LIB(osgSim,osgSimGetVersion, , [AC_MSG_ERROR(OpenSceneGraph simulation library not found.)],)
650         AC_CHECK_LIB(osgParticle,osgParticleGetVersion, , [AC_MSG_ERROR(OpenSceneGraph Particle library not found.)],)
651         AC_CHECK_LIB(osgFX, osgFXGetVersion, , [AC_MSG_ERROR(OpenSceneGraph FX library not found.)],)
652     fi
653 else
654     # Checking osg frameworks.
655     AC_CHECK_FRAMEWORK(osgViewer, [#include <osgViewer/Version>], $with_osg_framework)
656     AC_CHECK_FRAMEWORK(osgGA, [#include <osgGA/Version>], $with_osg_framework)
657     AC_CHECK_FRAMEWORK(osgText, [#include <osgText/Version>], $with_osg_framework)
658     AC_CHECK_FRAMEWORK(osgFX, [#include <osgFX/AnisotropicLighting>], $with_osg_framework)
659     AC_CHECK_FRAMEWORK(osgUtil, [#include <osgUtil/Version>], $with_osg_framework)
660     AC_CHECK_FRAMEWORK(osgDB, [#include <osgDB/Version>], $with_osg_framework)
661     AC_CHECK_FRAMEWORK(osgSim, [#include <osgSim/Version>], $with_osg_framework)
662     AC_CHECK_FRAMEWORK(osgParticle, [#include <osgParticle/Version>], $with_osg_framework)
663     AC_CHECK_FRAMEWORK(osg, [#include <osg/Version>], $with_osg_framework)
664     osg_FRAMEWORKS="$FRAMEWORKS"
665     FRAMEWORKS=""
666     AC_CHECK_FRAMEWORK(OpenThreads, [#include <OpenThreads/Version>], $with_osg_framework)
667     openthreads_FRAMEWORK="$FRAMEWORKS"
668     AC_SUBST(osg_FRAMEWORKS)
669     AC_SUBST(openthreads_FRAMEWORK)
670 fi
671 AM_CONDITIONAL(HAVE_FRAMEWORK_OSG, test "x$ac_cv_framework_osg" != "x")
672
673 AC_CHECK_HEADER(osg/Version)
674 if test "x$ac_cv_header_osg_Version" != "xyes"; then
675     echo
676     echo "You *must* have the OpenSceneGraph support library installed on your system"
677     echo "to build the FGFS simulator!"
678     echo
679     echo "Please see README.OSG for more details."
680     echo
681     echo "configure aborted."
682     exit
683 fi
684
685
686 AC_MSG_CHECKING([checking for osg::CullSettings::CLEAR_MASK])
687 AC_COMPILE_IFELSE(
688   [AC_LANG_PROGRAM([[#include <osg/CullSettings>]],
689     [[osg::CullSettings::VariablesMask mask = osg::CullSettings::CLEAR_MASK;]])],
690   [AC_DEFINE([HAVE_CULLSETTINGS_CLEAR_MASK],1,[define if OSG has CullSettings::CLEAR_MASK])
691    AC_MSG_RESULT([yes])],
692   [AC_MSG_RESULT([no])])
693
694 # Special handling for static version of OSG
695 if test -n "`echo "$CPPFLAGS" "$CXXFLAGS" "$CFLAGS" | grep "\-DOSG_LIBRARY_STATIC" 2>/dev/null`" ; then
696     saved_LIBS="$LIBS"
697     LIBS=""
698     #***** Check image support (needed for static build) *****
699     AC_SEARCH_LIBS([jpeg_read_header], [jpeg], [CPPFLAGS="$CPPFLAGS -DOSG_JPEG_ENABLED"])
700     AC_SEARCH_LIBS([png_read_image], [png 'png -lz'], [CPPFLAGS="$CPPFLAGS -DOSG_PNG_ENABLED"])
701     AC_SEARCH_LIBS([TIFFOpen], [tiff], [CPPFLAGS="$CPPFLAGS -DOSG_TIFF_ENABLED"])
702     img_LIBS="$LIBS"
703     LIBS="$saved_LIBS"
704
705     if test "x$with_osg" != "x" ; then
706         osg_prefix="$with_osg"
707     else
708         osg_prefix="/usr"
709     fi
710     PKG_CHECK_EXISTS([openscenegraph], [osg_version="`$PKG_CONFIG --modversion openscenegraph 2>/dev/null`"])
711     LIBS="-L$osg_prefix/lib/osgPlugins-$osg_version -losgdb_bmp -losgdb_dds -losgdb_hdr -losgdb_pic -losgdb_pnm -losgdb_rgb -losgdb_tga \
712                                                           -losgdb_3ds -losgdb_ac -losgdb_ive -losgdb_osg -losgdb_txf \
713                                                           -losgVolume -losgTerrain $LIBS -losgUtil"
714
715     if test -n "`echo "$CPPFLAGS" "$CXXFLAGS" "$CFLAGS" | grep "\-DOSG_JPEG_ENABLED" 2>/dev/null`" ; then
716       LIBS="$LIBS -losgdb_jpeg"
717     fi
718     if test -n "`echo "$CPPFLAGS" "$CXXFLAGS" "$CFLAGS" | grep "\-DOSG_PNG_ENABLED" 2>/dev/null`" ; then
719       LIBS="$LIBS -losgdb_png"
720     fi
721     if test -n "`echo "$CPPFLAGS" "$CXXFLAGS" "$CFLAGS" | grep "\-DOSG_TIFF_ENABLED" 2>/dev/null`" ; then
722       LIBS="$LIBS -losgdb_tiff"
723     fi
724
725     LIBS="$LIBS $img_LIBS"
726 fi
727
728 AC_LANG_POP
729
730 dnl Check for system installed zlib
731 AC_CHECK_HEADER(zlib.h)
732 if test "x$ac_cv_header_zlib_h" != "xyes"; then
733     echo
734     echo "zlib library not found."
735     echo
736     echo "If your OS does not provide an installable package for zlib"
737     echo "you will have to compile and install it first yourself.  A copy"
738     echo "of zlib-1.1.4.tar.gz is included with SimGear.  You will"
739     echo "have to untar this source code, and follow it's included instructions"
740     echo "to compile and install on your system."
741     echo
742     echo "configure aborted."
743     echo
744 fi
745
746 dnl Check for Subversion library support
747 save_LIBS=$LIBS
748 save_CPPFLAGS=$CPPFLAGS
749 LIBS=""
750 CPPFLAGS="-I/usr/include/subversion-1 `apr-1-config --includes`"
751 AC_CHECK_LIB(svn_client-1, svn_client_checkout3)
752 AC_CHECK_HEADERS([svn_client.h glut.h])
753 if test "x$ac_cv_header_svn_client_h" != "xyes"; then
754   echo "TerraSync will shell out for command line subversion"
755   svn_LIBS=""
756   svn_CPPFLAGS=""
757 else
758   echo "TerraSync will use integrated subversion library"
759   AC_SEARCH_LIBS(svn_client_checkout, svn_client-1)
760   svn_LIBS=$LIBS
761   svn_CPPFLAGS=$CPPFLAGS
762   AC_SUBST(svn_LIBS)
763   AC_SUBST(svn_CPPFLAGS)
764 fi
765 LIBS=$save_LIBS
766 CPPFLAGS=$save_CPPFLAGS
767
768 AC_MSG_CHECKING([for feenableexcept])
769 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#define _GNU_SOURCE
770 #include <fenv.h>]], [[feenableexcept(FE_DIVBYZERO)]])],
771 [AC_DEFINE([HAVE_FEENABLEEXCEPT], 1, [define if system has fenableexcept])],
772 AC_MSG_RESULT([yes]),
773 AC_MSG_RESULT([no]))
774
775 dnl Checks for header files.
776 AC_HEADER_STDC
777 AC_CHECK_HEADERS( \
778         fcntl.h getopt.h malloc.h memory.h stdlib.h sys/param.h sys/stat.h \
779         sys/time.h sys/timeb.h unistd.h windows.h values.h )
780
781 dnl Checks for typedefs, structures, and compiler characteristics.
782 AC_C_CONST
783 AC_TYPE_SIZE_T
784 AC_HEADER_TIME
785 AC_STRUCT_TM
786
787 dnl Checks for library functions.
788 old_LIBS=$LIBS
789 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
790 AC_TYPE_SIGNAL
791 AC_FUNC_VPRINTF
792 AC_CHECK_FUNCS( [ \
793         ftime gettimeofday timegm memcpy bcopy mktime strstr rand mkfifo \
794         random drand48 setitimer getitimer signal GetLocalTime rint getrusage \
795         truncf ] )
796 LIBS=$old_LIBS
797
798 AM_CONFIG_HEADER(src/Include/config.h)
799
800 AC_CONFIG_FILES([ \
801         Makefile \
802         man/Makefile \
803         man/est-epsilon.1 \
804         man/fgfs.1 \
805         man/fgjs.1 \
806         man/gl-info.1 \
807         man/js_demo.1 \
808         man/pstest.1 \
809         scripts/Makefile \
810         scripts/debug/Makefile \
811         scripts/perl/Makefile \
812         scripts/perl/examples/Makefile \
813         scripts/python/Makefile \
814         src/Makefile \
815         src/Include/Makefile \
816         src/Include/version.h \
817         src/Include/config.h-msvc6 \
818         src/Include/config.h-msvc71 \
819         src/Include/config.h-msvc8 \
820         src/Include/config.h-msvc90 \
821         src/Aircraft/Makefile \
822         src/Airports/Makefile \
823         src/ATC/Makefile \
824         src/ATCDCL/Makefile \
825         src/Autopilot/Makefile \
826         src/Cockpit/Makefile \
827         src/Cockpit/built_in/Makefile \
828         src/Environment/Makefile \
829         src/FDM/ExternalNet/Makefile \
830         src/FDM/ExternalPipe/Makefile \
831         src/FDM/JSBSim/Makefile \
832         src/FDM/JSBSim/initialization/Makefile \
833         src/FDM/JSBSim/input_output/Makefile \
834         src/FDM/JSBSim/math/Makefile \
835         src/FDM/JSBSim/models/Makefile \
836         src/FDM/JSBSim/models/flight_control/Makefile \
837         src/FDM/JSBSim/models/atmosphere/Makefile \
838         src/FDM/JSBSim/models/propulsion/Makefile \
839         src/FDM/LaRCsim/Makefile \
840         src/FDM/SP/Makefile \
841         src/FDM/UIUCModel/Makefile \
842         src/FDM/YASim/Makefile \
843         src/FDM/Makefile \
844         src/GUI/Makefile \
845         src/Input/Makefile \
846         src/Instrumentation/Makefile \
847         src/Instrumentation/KLN89/Makefile \
848         src/Instrumentation/HUD/Makefile \
849         src/Main/Makefile \
850         src/Main/runfgfs \
851         src/Main/runfgfs.bat \
852         src/Model/Makefile \
853         src/AIModel/Makefile \
854         src/MultiPlayer/Makefile \
855         src/Navaids/Makefile \
856         src/Network/Makefile \
857         src/Scenery/Makefile \
858         src/Scripting/Makefile \
859         src/Sound/Makefile \
860         src/Systems/Makefile \
861         src/Time/Makefile \
862         src/Traffic/Makefile \
863         tests/Makefile \
864         utils/Makefile \
865         utils/GPSsmooth/Makefile \
866         utils/fgadmin/Makefile
867         utils/fgadmin/src/Makefile \
868         utils/js_server/Makefile \
869         utils/Modeller/Makefile \
870         utils/propmerge/Makefile \
871         utils/TerraSync/Makefile \
872         utils/xmlgrep/Makefile \
873         utils/fgviewer/Makefile
874 ])
875 AC_OUTPUT
876
877 AC_OUTPUT_COMMANDS([chmod 755 src/Main/runfgfs])
878
879 echo ""
880 echo "Configure Summary"
881 echo "================="
882
883 echo "Prefix: $prefix"
884
885 if test "x$with_logging" != "x"; then
886     echo "Debug messages: $with_logging"
887 else
888     echo "Debug messages: yes"
889 fi
890
891 echo -n "Automake version: "
892 automake --version | head -n 1
893
894 if test "x$with_multiplayer" != "xno"; then
895     echo "Building with multiplayer support"
896 fi
897
898 if test "x$with_threads" = "xyes"; then
899     echo "threads: yes"
900 else
901     echo "threads: no"
902 fi
903
904 if test "x$with_eventinput" = "xyes"; then
905     echo "event input: yes"
906 else
907     echo "event input: no"
908 fi
909
910 if test "x$enable_sp_fdms" != "xno"; then
911     echo "Include special purpose flight models: yes"
912 else
913     echo "Include special purpose flight models: no"
914 fi
915
916 if test "x$enable_atcdcl" != "xno"; then
917     echo "Build depricated ATC/AI module: yes"
918 else
919     echo "Build depricated ATC/AI module: no"
920 fi