1 dnl Process this file with autoget.sh to produce a working configure
7 AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx])
9 dnl Require at least automake 2.52
12 dnl Initialize the automake stuff
13 AM_INIT_AUTOMAKE(SimGear, 0.3.3)
15 dnl Specify KAI C++ compiler and flags.
16 dnl Borrowed with slight modification from blitz distribution.
18 [ --with-cxx=COMPILER[:name-flags] set options for COMPILER (KCC)],
20 KCC*) # KAI C++ http://www.kai.com/
21 echo "Configuring for KAI C++"
22 AC_SG_SET_COMPILER($withval,"KCC","--restrict --strict_warnings")
23 CXX_OPTIMIZE_FLAGS=="+K3 -O3"
24 CXX_DEBUG_FLAGS="-g +K0"
32 dnl Checks for programs.
41 dnl set the $host variable based on local machine/os
44 dnl Used on the Irix platform
49 if test "x$CXX" = "xCC" -o "x$CXX" = "xccache CC"; then
52 CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility"
59 if echo $includedir | egrep "simgear$" > /dev/null; then
60 echo "includedir is" $includedir "libdir is" $libdir
62 includedir="${includedir}/simgear"
63 echo "includedir changed to" $includedir "libdir is" $libdir
66 dnl set logging; default value of with_logging=yes
67 AC_ARG_WITH(logging, [ --with-logging Include logging output (default)])
68 if test "x$with_logging" = "xno" ; then
69 AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
72 # Specify if we want to build with Norman's jpeg image server support.
73 # This requires libjpeg to be installed and available.
74 # Default to with_jpeg_server=no
76 AC_ARG_WITH(jpeg_factory, [ --with-jpeg-factory Include Norman's jpeg image factory support code])
77 if test "x$with_jpeg_factory" = "xyes" ; then
78 echo "Building with Norman's jpeg image factory support"
79 AC_CHECK_LIB(jpeg, jpeg_start_compress)
80 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
82 echo "In order to build the jpeg factory code you need libjpeg installed."
83 echo "otherwise please configure with the --with-jpeg-sever=no option"
85 echo "libjpeg is available at :"
86 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
90 echo "Building without Norman's jpeg image server support"
92 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes")
95 dnl Determine an extra directories to add to include/lib search paths
97 *-apple-darwin* | *-*-mingw32*)
98 echo no EXTRA_DIRS for $host
102 if test -d /usr/X11R6 ; then
103 EXTRA_DIR1="/usr/X11R6"
105 if test -d /opt/X11R6 ; then
106 EXTRA_DIR2="/opt/X11R6"
108 EXTRA_DIRS="$EXTRA_DIR1 $EXTRA_DIR2"
112 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
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 X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
123 dnl to use it if it is.
125 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
126 echo no fancy X11 check
135 dnl Checks for libraries.
137 dnl Thread related checks
138 AC_CHECK_HEADER(pthread.h)
139 AC_CHECK_LIB(pthread, pthread_exit)
140 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
141 CXXFLAGS="$CXXFLAGS -D_REENTRANT"
142 CFLAGS="$CFLAGS -D_REENTRANT"
144 if test "x$ac_cv_lib_pthread_pthread_exit" != "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
145 dnl FreeBSD: System has pthread.h, but -lpthread library check
146 dnl fails. See if we need -pthread instead of -lpthread and look
147 dnl for the functions in libc_r.
148 save_CXXFLAGS="$CXXFLAGS"
149 save_CFLAGS="$CFLAGS"
150 CXXFLAGS="-pthread $CXXFLAGS"
151 CFLAGS="-pthread $FLAGS"
153 AC_CHECK_LIB(c_r, pthread_exit)
154 if test "x$ac_cv_lib_c_r_pthread_exit" != "xyes"; then
155 CXXFLAGS=$save_CXXFLAGS
158 dnl This is cheating a bit. pthread_exit comes with using -pthread, not
160 ac_cv_lib_pthread_pthread_exit="yes"
165 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes")
170 dnl search for network related libraries
171 AC_SEARCH_LIBS(inet_addr, xnet)
172 AC_SEARCH_LIBS(socket, socket)
177 dnl check for some default libraries
178 AC_SEARCH_LIBS(cos, m)
182 dnl check for glut location
183 AC_CHECK_HEADER(GL/glut.h)
184 if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
185 AC_DEFINE([GLUT_H], "GL/glut.h", [Define as glut.h include location])
187 AC_CHECK_HEADER(GLUT/glut.h)
188 if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then
189 AC_DEFINE([GLUT_H], "GLUT/glut.h", [Define as glut.h include location])
191 echo "Neither GL/glut.h nor GLUT/glut.h found. Cannot continue"
196 dnl check for OpenGL related libraries
198 *-*-cygwin* | *-*-mingw32*)
199 dnl CygWin under Windoze.
201 echo Win32 specific hacks...
202 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
203 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
205 LIBS="$LIBS -lglut32 -lglu32 -lopengl32"
206 LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
208 dnl add -lwsock32 for mingwin
211 base_LIBS="$base_LIBS -lws2_32"
215 echo "Will link apps with $LIBS"
221 LIBS="$LIBS -framework GLUT -framework OpenGL -framework Carbon -lobjc"
225 dnl X-Windows based machines
227 AC_SEARCH_LIBS(XCreateWindow, X11)
228 AC_SEARCH_LIBS(XShmCreateImage, Xext)
229 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
230 AC_SEARCH_LIBS(IceOpenConnection, ICE)
231 AC_SEARCH_LIBS(SmcOpenConnection, SM)
232 AC_SEARCH_LIBS(XtMalloc, Xt)
233 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
235 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
236 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
237 dnl if GLcore found, then also check for GL
238 AC_SEARCH_LIBS(glXCreateContext, GL)
241 dnl if using mesa, check for xmesa.h
242 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
243 AC_CHECK_HEADER(GL/fxmesa.h)
244 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
245 AC_DEFINE([XMESA], 1, [Define for fxmesa])
246 AC_DEFINE([FX], 1, [Define for fxmesa])
250 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
251 AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
260 AC_SUBST(opengl_LIBS)
261 AC_SUBST(thread_LIBS)
262 AC_SUBST(network_LIBS)
264 dnl Check for MS Windows environment
265 AC_CHECK_HEADER(windows.h)
266 AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
268 # The following are C++ items that need to be tested for with the c++
273 dnl Check for "plib" without which we cannot go on
274 AC_CHECK_HEADER(plib/ul.h)
275 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
277 echo "You *must* have the plib library installed on your system to build"
280 echo "Please see README.plib for more details."
282 echo "configure aborted."
286 AC_MSG_CHECKING([for plib 1.6.0 or newer])
290 #define MIN_PLIB_VERSION 160
293 int major, minor, micro;
295 if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
304 [AC_MSG_RESULT(wrong version);
305 AC_MSG_ERROR([Install plib 1.6.0 or later first...])],
309 dnl Check for MetaKit
310 AC_CHECK_HEADER(mk4.h)
311 if test "x$ac_cv_header_mk4_h" != "xyes"; then
313 echo "MetaKit library not found."
315 echo "If your OS does not provide an installable package for MetaKit"
316 echo "you will have to compile and install it first yourself. A copy"
317 echo "of metakit-$(VERSION).tar.gz is included with SimGear. You will"
318 echo "have to untar this source code, and follow its included instructions"
319 echo "to compile and install on your system."
321 echo "configure aborted."
325 AC_MSG_CHECKING([for metakit 2.4.3 or newer])
327 LIBS="$saved_LIBS -lmk4"
331 #define MIN_MK4_VERSION 243
334 int major, minor, micro;
336 if ( d4_MetaKitLibraryVersion < MIN_MK4_VERSION ) {
345 [AC_MSG_RESULT(wrong version);
348 Install metakit 2.4.3 or later first.
350 Or, the compiler may not be finding your libmk4.so library.
351 Please check the config.log file for specific details of the
352 failure if you believe you have the correct metakit version.
353 Also, look up this issue in the FlightGear FAQ.])],
361 dnl Check for system installed zlib
362 AC_CHECK_HEADER(zlib.h)
363 if test "x$ac_cv_header_zlib_h" != "xyes"; then
365 echo "zlib library not found."
367 echo "If your OS does not provide an installable package for zlib"
368 echo "you will have to compile and install it first yourself. A copy"
369 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
370 echo "have to untar this source code, and follow its included instructions"
371 echo "to compile and install on your system."
373 echo "configure aborted."
377 dnl Checks for header files.
380 fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
381 sys/stat.h sys/time.h sys/timeb.h unistd.h values.h )
383 if test "x$ac_cv_header_stdint_h" = "xyes"; then
384 AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
387 dnl Checks for typedefs, structures, and compiler characteristics.
393 dnl Checks for library functions.
397 ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
398 random drand48 setitimer getitimer signal GetLocalTime rint getrusage )
400 AM_CONFIG_HEADER(simgear/simgear_config.h)
408 simgear/compatibility/Makefile \
409 simgear/bucket/Makefile \
410 simgear/debug/Makefile \
411 simgear/ephemeris/Makefile \
412 simgear/io/Makefile \
413 simgear/magvar/Makefile \
414 simgear/math/Makefile \
415 simgear/metar/Makefile \
416 simgear/misc/Makefile \
417 simgear/props/Makefile \
418 simgear/route/Makefile \
419 simgear/scene/Makefile \
420 simgear/scene/material/Makefile \
421 simgear/scene/model/Makefile \
422 simgear/scene/sky/Makefile \
423 simgear/scene/tgdb/Makefile \
424 simgear/screen/Makefile \
425 simgear/serial/Makefile \
426 simgear/sound/Makefile \
427 simgear/threads/Makefile \
428 simgear/timing/Makefile \
429 simgear/xgl/Makefile \
430 simgear/xml/Makefile \
436 echo "Configure Summary"
437 echo "================="
439 echo "Prefix: $prefix"
441 if test "x$with_logging" != "x"; then
442 echo "Debug messages: $with_logging"
444 echo "Debug messages: yes"
447 echo -n "Automake version: "
448 automake --version | head -1
450 if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
451 echo "With GL/glut.h"
453 if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then
454 echo "With GLUT/glut.h"
457 if test "x$with_jpeg_factory" = "xyes"; then
458 echo "With JPEG Factory support"
460 echo "Without JPEG Factory support"
463 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
464 echo "Threads: pthread lib found."
466 echo "Threads: no threads (pthread lib not found.)"