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.4)
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
47 if test "x$CXX" = "xCC" -o "x$CXX" = "xccache CC"; then
50 CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility/MIPSpro740"
51 compatibility_DIR="compatibility"
52 MIPSpro_DIRS="MIPSpro740"
53 AC_MSG_CHECKING([for MIPSpro compiler version 7.4 or newer])
56 if ( _COMPILER_VERSION < 740 ) {
62 ], AC_MSG_RESULT(yes),
64 CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility/MIPSpro721"
65 MIPSpro_DIRS="$(MIPSpro_DIRS) MIPSpro721"
66 AC_MSG_WARN([Using our own subset of the STL headers])
67 ], AC_MSG_RESULT(yes))
68 AC_SUBST(MIPSpro_DIRS)
79 AC_SUBST(compatibility_DIR)
81 if echo $includedir | egrep "simgear$" > /dev/null; then
82 echo "includedir is" $includedir "libdir is" $libdir
84 includedir="${includedir}/simgear"
85 echo "includedir changed to" $includedir "libdir is" $libdir
88 dnl set logging; default value of with_logging=yes
89 AC_ARG_WITH(logging, [ --with-logging Include logging output (default)])
90 if test "x$with_logging" = "xno" ; then
91 AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
94 # Specify if we want to build with Norman's jpeg image server support.
95 # This requires libjpeg to be installed and available.
96 # Default to with_jpeg_server=no
98 AC_ARG_WITH(jpeg_factory, [ --with-jpeg-factory Include Norman's jpeg image factory support code])
99 if test "x$with_jpeg_factory" = "xyes" ; then
100 echo "Building with Norman's jpeg image factory support"
101 AC_CHECK_LIB(jpeg, jpeg_start_compress)
102 if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
104 echo "In order to build the jpeg factory code you need libjpeg installed."
105 echo "otherwise please configure with the --with-jpeg-sever=no option"
107 echo "libjpeg is available at :"
108 echo " ftp://ftp.uu.net in the directory graphics/jpeg"
112 echo "Building without Norman's jpeg image server support"
114 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes")
117 dnl Determine an extra directories to add to include/lib search paths
119 *-apple-darwin* | *-*-mingw32*)
120 echo no EXTRA_DIRS for $host
124 if test -d /usr/X11R6 ; then
125 EXTRA_DIR1="/usr/X11R6"
127 if test -d /opt/X11R6 ; then
128 EXTRA_DIR2="/opt/X11R6"
130 EXTRA_DIRS="$EXTRA_DIR1 $EXTRA_DIR2"
134 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
137 dnl Using AM_CONDITIONAL is a step out of the protected little
138 dnl automake fold so it is potentially dangerous. But, we are
139 dnl beginning to run into cases where the standard checks are not
140 dnl enough. AM_CONDITIONALS are then referenced to conditionally
141 dnl build a Makefile.in from a Makefile.am which lets us define custom
142 dnl includes, compile alternative source files, etc.
144 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
145 dnl to use it if it is.
147 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
148 echo no fancy X11 check
157 dnl Checks for libraries.
159 dnl Thread related checks
160 AC_CHECK_HEADER(pthread.h)
161 AC_CHECK_LIB(pthread, pthread_exit)
162 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
163 CXXFLAGS="$CXXFLAGS -D_REENTRANT"
164 CFLAGS="$CFLAGS -D_REENTRANT"
166 if test "x$ac_cv_lib_pthread_pthread_exit" != "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
167 dnl FreeBSD: System has pthread.h, but -lpthread library check
168 dnl fails. See if we need -pthread instead of -lpthread and look
169 dnl for the functions in libc_r.
170 save_CXXFLAGS="$CXXFLAGS"
171 save_CFLAGS="$CFLAGS"
172 CXXFLAGS="-pthread $CXXFLAGS"
173 CFLAGS="-pthread $FLAGS"
175 AC_CHECK_LIB(c_r, pthread_exit)
176 if test "x$ac_cv_lib_c_r_pthread_exit" != "xyes"; then
177 CXXFLAGS=$save_CXXFLAGS
180 dnl This is cheating a bit. pthread_exit comes with using -pthread, not
182 ac_cv_lib_pthread_pthread_exit="yes"
187 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes")
192 dnl search for network related libraries
193 AC_SEARCH_LIBS(inet_addr, xnet)
194 AC_SEARCH_LIBS(socket, socket)
199 dnl check for some default libraries
200 AC_SEARCH_LIBS(cos, m)
204 dnl check for OpenGL related libraries
206 *-*-cygwin* | *-*-mingw32*)
207 dnl CygWin under Windoze.
209 echo Win32 specific hacks...
210 AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
211 AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
213 LIBS="$LIBS -lglu32 -lopengl32"
214 LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
216 dnl add -lwsock32 for mingwin
219 base_LIBS="$base_LIBS -lws2_32"
223 echo "Will link apps with $LIBS"
229 LIBS="$LIBS -framework OpenGL -framework Carbon -lobjc"
233 dnl X-Windows based machines
235 AC_SEARCH_LIBS(XCreateWindow, X11)
236 AC_SEARCH_LIBS(XShmCreateImage, Xext)
237 AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
238 AC_SEARCH_LIBS(IceOpenConnection, ICE)
239 AC_SEARCH_LIBS(SmcOpenConnection, SM)
240 AC_SEARCH_LIBS(XtMalloc, Xt)
241 AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
243 AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
244 if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
245 dnl if GLcore found, then also check for GL
246 AC_SEARCH_LIBS(glXCreateContext, GL)
249 dnl if using mesa, check for xmesa.h
250 if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
251 AC_CHECK_HEADER(GL/fxmesa.h)
252 if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
253 AC_DEFINE([XMESA], 1, [Define for fxmesa])
254 AC_DEFINE([FX], 1, [Define for fxmesa])
258 AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
267 AC_SUBST(opengl_LIBS)
268 AC_SUBST(thread_LIBS)
269 AC_SUBST(network_LIBS)
271 dnl Check for MS Windows environment
272 AC_CHECK_HEADER(windows.h)
273 AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
275 # The following are C++ items that need to be tested for with the c++
280 dnl Check for "plib" without which we cannot go on
281 AC_CHECK_HEADER(plib/ul.h)
282 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
284 echo "You *must* have the plib library installed on your system to build"
287 echo "Please see README.plib for more details."
289 echo "configure aborted."
293 AC_MSG_CHECKING([for plib 1.6.0 or newer])
297 #define MIN_PLIB_VERSION 160
300 int major, minor, micro;
302 if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
311 [AC_MSG_RESULT(wrong version);
312 AC_MSG_ERROR([Install plib 1.6.0 or later first...])],
320 dnl Check for system installed zlib
321 AC_CHECK_HEADER(zlib.h)
322 if test "x$ac_cv_header_zlib_h" != "xyes"; then
324 echo "zlib library not found."
326 echo "If your OS does not provide an installable package for zlib"
327 echo "you will have to compile and install it first yourself. A copy"
328 echo "of zlib-1.1.4.tar.gz is included with SimGear. You will"
329 echo "have to untar this source code, and follow its included instructions"
330 echo "to compile and install on your system."
332 echo "configure aborted."
336 dnl Checks for header files.
339 fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
340 sys/stat.h sys/time.h sys/timeb.h unistd.h values.h )
342 if test "x$ac_cv_header_stdint_h" = "xyes"; then
343 AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
346 dnl Checks for typedefs, structures, and compiler characteristics.
352 dnl Checks for library functions.
354 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
358 ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
359 random drand48 setitimer getitimer signal GetLocalTime rint getrusage ] )
362 AM_CONFIG_HEADER(simgear/simgear_config.h)
370 simgear/compatibility/Makefile \
371 simgear/compatibility/MIPSpro721/Makefile \
372 simgear/compatibility/MIPSpro740/Makefile \
373 simgear/bucket/Makefile \
374 simgear/debug/Makefile \
375 simgear/ephemeris/Makefile \
376 simgear/io/Makefile \
377 simgear/magvar/Makefile \
378 simgear/math/Makefile \
379 simgear/metar/Makefile \
380 simgear/misc/Makefile \
381 simgear/nasal/Makefile \
382 simgear/props/Makefile \
383 simgear/route/Makefile \
384 simgear/scene/Makefile \
385 simgear/scene/material/Makefile \
386 simgear/scene/model/Makefile \
387 simgear/scene/sky/Makefile \
388 simgear/scene/sky/clouds3d/Makefile \
389 simgear/scene/tgdb/Makefile \
390 simgear/screen/Makefile \
391 simgear/serial/Makefile \
392 simgear/sound/Makefile \
393 simgear/structure/Makefile \
394 simgear/threads/Makefile \
395 simgear/timing/Makefile \
396 simgear/xgl/Makefile \
397 simgear/xml/Makefile \
403 echo "Configure Summary"
404 echo "================="
406 echo "Prefix: $prefix"
408 if test "x$with_logging" != "x"; then
409 echo "Debug messages: $with_logging"
411 echo "Debug messages: yes"
414 echo -n "Automake version: "
415 automake --version | head -1
417 if test "x$with_jpeg_factory" = "xyes"; then
418 echo "With JPEG Factory support"
420 echo "Without JPEG Factory support"
423 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
424 echo "Threads: pthread lib found."
426 echo "Threads: no threads (pthread lib not found.)"