]> git.mxchange.org Git - simgear.git/blob - configure.ac
Remove the refference to fgsg
[simgear.git] / configure.ac
1 dnl Process this file with autoget.sh to produce a working configure
2 dnl script.
3 dnl
4 dnl $Id$
5
6 AC_INIT
7 AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx])
8
9 dnl Require at least automake 2.52
10 AC_PREREQ(2.52)
11
12 dnl Initialize the automake stuff
13 AM_INIT_AUTOMAKE(SimGear, 0.3.7)
14
15 dnl Specify KAI C++ compiler and flags.
16 dnl Borrowed with slight modification from blitz distribution.
17 AC_ARG_WITH(cxx,
18   [  --with-cxx=COMPILER[:name-flags] set options for COMPILER (KCC)],
19   [case "$withval" in
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"
25     ;;
26   esac
27 ])
28
29 echo CXX = $CXX
30 echo CC = $CC
31
32 dnl Checks for programs.
33 AC_PROG_MAKE_SET
34 AC_PROG_CC
35 AC_PROG_CPP
36 AC_PROG_CXX
37 AC_PROG_RANLIB
38 AC_PROG_INSTALL
39 AC_PROG_LN_S
40
41 dnl set the $host variable based on local machine/os
42 AC_CANONICAL_HOST
43
44 dnl Used on the Irix platform
45 case "${host}" in
46 *-*-irix*)
47     if test "x$CXX" = "xCC" -o "x$CXX" = "xccache CC"; then
48         AR="$CXX -ar"
49         ARFLAGS="-o"
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])
54         AC_TRY_RUN([
55            int main() {
56               if ( _COMPILER_VERSION < 740 ) {
57                  return -1;
58               }
59               return 0;
60            }
61
62         ], AC_MSG_RESULT(yes),
63         [  AC_MSG_RESULT(no)
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)
69     fi
70     ;;
71 *)
72     AR="ar"
73     ARFLAGS="cru"
74     compatibility_DIR=
75     ;;
76 esac
77 AC_SUBST(AR)
78 AC_SUBST(ARFLAGS)
79 AC_SUBST(compatibility_DIR)
80
81 if echo $includedir | egrep "simgear$" > /dev/null; then
82     echo "includedir is" $includedir "libdir is" $libdir
83 else
84     includedir="${includedir}/simgear"
85     echo "includedir changed to" $includedir "libdir is" $libdir
86 fi
87          
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])
92 fi
93
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
97 JPEGLIB=''
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
103         echo
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"
106         echo
107         echo "libjpeg is available at :"
108         echo "  ftp://ftp.uu.net in the directory graphics/jpeg"
109         exit 1
110     fi
111 else
112     echo "Building without Norman's jpeg image server support"
113 fi
114 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes")
115
116 # specify the plib location
117 AC_ARG_WITH(plib, [  --with-plib=PREFIX      Specify the prefix path to plib])
118
119 if test "x$with_plib" != "x" ; then
120     echo "plib prefix is $with_plib"
121     EXTRA_DIRS="${EXTRA_DIRS} $with_plib"
122 fi
123
124 dnl Determine an extra directories to add to include/lib search paths
125 case "${host}" in
126 *-apple-darwin* | *-*-mingw32*)
127     echo no EXTRA_DIRS for $host
128     ;;
129
130 *)
131     if test -d /usr/X11R6 ; then
132         EXTRA_DIR1="/usr/X11R6"
133     fi
134     if test -d /opt/X11R6 ; then
135         EXTRA_DIR2="/opt/X11R6"
136     fi
137     EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2"
138     ;;
139
140 esac
141 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
142
143
144 dnl Using AM_CONDITIONAL is a step out of the protected little 
145 dnl automake fold so it is potentially dangerous.  But, we are
146 dnl beginning to run into cases where the standard checks are not
147 dnl enough.  AM_CONDITIONALS are then referenced to conditionally
148 dnl build a Makefile.in from a Makefile.am which lets us define custom
149 dnl includes, compile alternative source files, etc.
150
151 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
152 dnl to use it if it is.
153 case "${host}" in
154 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
155     echo no fancy X11 check
156     ;;
157
158 *)
159     AC_PATH_XTRA
160     ;;
161
162 esac
163
164 dnl Checks for libraries.
165
166 dnl Thread related checks
167 AC_CHECK_HEADER(pthread.h)
168 AC_CHECK_LIB(pthread, pthread_exit)
169 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
170     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
171     CFLAGS="$CFLAGS -D_REENTRANT"
172 fi
173 if test "x$ac_cv_lib_pthread_pthread_exit" != "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
174     dnl FreeBSD: System has pthread.h, but -lpthread library check
175     dnl fails.  See if we need -pthread instead of -lpthread and look
176     dnl for the functions in libc_r.
177     save_CXXFLAGS="$CXXFLAGS"
178     save_CFLAGS="$CFLAGS"
179     CXXFLAGS="-pthread $CXXFLAGS"
180     CFLAGS="-pthread $FLAGS"
181     save_LIBS=$LIBS
182     AC_CHECK_LIB(c_r, pthread_exit)
183     if test "x$ac_cv_lib_c_r_pthread_exit" != "xyes"; then
184         CXXFLAGS=$save_CXXFLAGS
185         CFLAGS=$save_CFLAGS
186     else
187         dnl This is cheating a bit. pthread_exit comes with using -pthread, not
188 -lpthread
189         ac_cv_lib_pthread_pthread_exit="yes"
190     fi
191     LIBS=$save_LIBS
192 fi
193
194 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes")
195
196 thread_LIBS="$LIBS"
197 LIBS=""
198
199 dnl search for network related libraries
200 AC_SEARCH_LIBS(inet_addr, xnet)
201 AC_SEARCH_LIBS(socket, socket)
202
203 network_LIBS="$LIBS"
204 LIBS=""
205
206 dnl check for some default libraries
207 AC_SEARCH_LIBS(cos, m)
208
209 base_LIBS="$LIBS"
210
211 dnl check for OpenGL related libraries
212 case "${host}" in
213 *-*-cygwin* | *-*-mingw32*)
214     dnl CygWin under Windoze.
215
216     echo Win32 specific hacks...
217     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
218     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
219
220     LIBS="$LIBS -lglu32 -lopengl32"
221     LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
222
223     dnl add -lwsock32 for mingwin
224     case "${host}" in
225     *-*-mingw32*)
226         base_LIBS="$base_LIBS -lws2_32"
227         ;;
228     esac
229
230     echo "Will link apps with $LIBS"
231     ;;
232
233 *-apple-darwin*)
234     dnl Mac OS X
235
236     LIBS="$LIBS -framework OpenGL -framework Carbon -lobjc"
237     ;;
238
239 *)
240     dnl X-Windows based machines
241
242     AC_SEARCH_LIBS(XCreateWindow, X11)
243     AC_SEARCH_LIBS(XShmCreateImage, Xext)
244     AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
245     AC_SEARCH_LIBS(IceOpenConnection, ICE)
246     AC_SEARCH_LIBS(SmcOpenConnection, SM)
247     AC_SEARCH_LIBS(XtMalloc, Xt)
248     AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
249     
250     AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
251     if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
252         dnl if GLcore found, then also check for GL
253         AC_SEARCH_LIBS(glXCreateContext, GL)
254     fi
255
256     dnl if using mesa, check for xmesa.h
257     if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
258         AC_CHECK_HEADER(GL/fxmesa.h)
259         if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
260             AC_DEFINE([XMESA], 1, [Define for fxmesa])
261             AC_DEFINE([FX], 1, [Define for fxmesa])
262         fi
263     fi
264
265     AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
266     ;;
267
268 esac
269
270 opengl_LIBS="$LIBS"
271 LIBS="$base_LIBS"
272
273 dnl check for OpenAL libraries
274 OPENAL_OK="no"
275 case "${host}" in
276 *-*-cygwin* | *-*-mingw32*)
277     dnl CygWin under Windoze.
278
279     AC_SEARCH_LIBS(alGenBuffers, openal32)
280     AC_SEARCH_LIBS(alutInit, [ openal32 ALut ] )
281     LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
282     OPENAL_OK="$ac_cv_search_alGenBuffers"
283     ;;
284
285 *-apple-darwin*)
286     dnl Mac OS X
287
288     LIBS="$LIBS -framework IOKit -framework OpenAL"
289     # not sure how to test if OpenAL exists on MacOS (does it come by default?)
290     OPENAL_OK="yes"
291     ;;
292
293 *)
294     dnl default unix style machines
295
296     AC_SEARCH_LIBS(alGenBuffers, openal)
297     OPENAL_OK="$ac_cv_search_alGenBuffers"
298     ;;
299
300 esac
301
302 if test "$OPENAL_OK" == "no"; then
303     echo
304     echo "You *must* have the openal library installed on your system to build"
305     echo "SimGear!"
306     echo
307     echo "Please see README.OpenAL for more details."
308     echo
309     echo "configure aborted."
310     exit
311 fi
312
313 openal_LIBS="$LIBS"
314 LIBS="$base_LIBS"
315
316 AC_SUBST(base_LIBS)
317 AC_SUBST(openal_LIBS)
318 AC_SUBST(opengl_LIBS)
319 AC_SUBST(thread_LIBS)
320 AC_SUBST(network_LIBS)
321
322 dnl Check for MS Windows environment
323 AC_CHECK_HEADER(windows.h)
324 AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
325
326 # The following are C++ items that need to be tested for with the c++
327 # compiler
328
329 AC_LANG_PUSH(C++)
330
331 dnl Check for "plib" without which we cannot go on
332 AC_CHECK_HEADER(plib/ul.h)
333 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
334     echo
335     echo "You *must* have the plib library installed on your system to build"
336     echo "SimGear!"
337     echo
338     echo "Please see README.plib for more details."
339     echo
340     echo "configure aborted."
341     exit
342 fi
343
344 AC_MSG_CHECKING([for plib 1.6.0 or newer])
345 AC_TRY_RUN([
346 #include <plib/ul.h>
347
348 #define MIN_PLIB_VERSION 160
349
350 int main() {
351     int major, minor, micro;
352
353     if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
354          return -1;
355     }
356
357     return 0;
358 }
359
360 ],
361   AC_MSG_RESULT(yes),
362   [AC_MSG_RESULT(wrong version);
363    AC_MSG_ERROR([Install plib 1.6.0 or later first...])],
364   AC_MSG_RESULT(yes)
365 )
366
367 LIBS="$saved_LIBS"
368
369 AC_LANG_POP
370
371 dnl Check for system installed zlib
372 AC_CHECK_HEADER(zlib.h)
373 if test "x$ac_cv_header_zlib_h" != "xyes"; then
374     echo
375     echo "zlib library not found."
376     echo
377     echo "If your OS does not provide an installable package for zlib"
378     echo "you will have to compile and install it first yourself.  A copy"
379     echo "of zlib-1.1.4.tar.gz is included with SimGear.  You will"
380     echo "have to untar this source code, and follow its included instructions"
381     echo "to compile and install on your system."
382     echo
383     echo "configure aborted."
384     echo
385 fi
386
387 dnl Checks for header files.
388 AC_HEADER_STDC
389 AC_CHECK_HEADERS( \
390         fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
391         sys/stat.h sys/time.h sys/timeb.h unistd.h values.h )
392
393 if test "x$ac_cv_header_stdint_h" = "xyes"; then
394     AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
395 fi
396
397 dnl Checks for typedefs, structures, and compiler characteristics.
398 AC_C_CONST
399 AC_TYPE_SIZE_T
400 AC_HEADER_TIME
401 AC_STRUCT_TM
402
403 dnl Checks for library functions.
404 old_LIBS=$LIBS
405 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
406 AC_TYPE_SIGNAL
407 AC_FUNC_VPRINTF
408 AC_CHECK_FUNCS( [ \
409         ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
410         random drand48 setitimer getitimer signal GetLocalTime rint getrusage ] )
411 LIBS=$old_LIBS
412
413 AM_CONFIG_HEADER(simgear/simgear_config.h)
414
415 AC_CONFIG_FILES([ \
416         Makefile \
417         SimGear.spec \
418         src-libs/Makefile \
419         simgear/Makefile \
420         simgear/version.h \
421         simgear/compatibility/Makefile \
422         simgear/compatibility/MIPSpro721/Makefile \
423         simgear/compatibility/MIPSpro740/Makefile \
424         simgear/bucket/Makefile \
425         simgear/debug/Makefile \
426         simgear/ephemeris/Makefile \
427         simgear/io/Makefile \
428         simgear/magvar/Makefile \
429         simgear/math/Makefile \
430         simgear/environment/Makefile \
431         simgear/misc/Makefile \
432         simgear/nasal/Makefile \
433         simgear/props/Makefile \
434         simgear/route/Makefile \
435         simgear/scene/Makefile \
436         simgear/scene/material/Makefile \
437         simgear/scene/model/Makefile \
438         simgear/scene/sky/Makefile \
439         simgear/scene/sky/clouds3d/Makefile \
440         simgear/scene/tgdb/Makefile \
441         simgear/screen/Makefile \
442         simgear/serial/Makefile \
443         simgear/sound/Makefile \
444         simgear/structure/Makefile \
445         simgear/threads/Makefile \
446         simgear/timing/Makefile \
447         simgear/xgl/Makefile \
448         simgear/xml/Makefile \
449 ])
450 AC_OUTPUT
451
452
453 echo ""
454 echo "Configure Summary"
455 echo "================="
456
457 echo "Prefix: $prefix"
458
459 if test "x$with_logging" != "x"; then
460     echo "Debug messages: $with_logging"
461 else
462     echo "Debug messages: yes"
463 fi
464
465 echo -n "Automake version: "
466 automake --version | head -1
467
468 if test "x$with_jpeg_factory" = "xyes"; then
469    echo "With JPEG Factory support"
470 else
471    echo "Without JPEG Factory support"
472 fi
473
474 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
475    echo "Threads: pthread lib found."
476 else
477    echo "Threads: no threads (pthread lib not found.)"
478 fi
479