]> git.mxchange.org Git - simgear.git/blob - configure.ac
Attempt to get these files back to a compilable state.
[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.3)
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 AR="ar"
46 ARFLAGS="cru"
47 case "${host}" in
48 *-*-irix*)
49     if test "$CXX" = "CC"; then
50         AR="CC -ar"
51         ARFLAGS="-o"
52         CXXFLAGS="$CXXFLAGS -I$(top_srcdir)/simgear/compatibility"
53     fi
54     ;;
55 esac
56 AC_SUBST(AR)
57 AC_SUBST(ARFLAGS)
58
59 if echo $includedir | egrep "simgear$" > /dev/null; then
60     echo "includedir is" $includedir "libdir is" $libdir
61 else
62     includedir="${includedir}/simgear"
63     echo "includedir changed to" $includedir "libdir is" $libdir
64 fi
65          
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])
70 fi
71
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
75 JPEGLIB=''
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
81         echo
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"
84         echo
85         echo "libjpeg is available at :"
86         echo "  ftp://ftp.uu.net in the directory graphics/jpeg"
87         exit 1
88     fi
89 else
90     echo "Building without Norman's jpeg image server support"
91 fi
92 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes")
93
94
95 dnl Determine an extra directories to add to include/lib search paths
96 case "${host}" in
97 *-apple-darwin* | *-*-mingw32*)
98     echo no EXTRA_DIRS for $host
99     ;;
100
101 *)
102     if test -d /usr/X11R6 ; then
103         EXTRA_DIR1="/usr/X11R6"
104     fi
105     if test -d /opt/X11R6 ; then
106         EXTRA_DIR2="/opt/X11R6"
107     fi
108     EXTRA_DIRS="$EXTRA_DIR1 $EXTRA_DIR2"
109     ;;
110
111 esac
112 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
113
114
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.
121
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.
124 case "${host}" in
125 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
126     echo no fancy X11 check
127     ;;
128
129 *)
130     AC_PATH_XTRA
131     ;;
132
133 esac
134
135 dnl Checks for libraries.
136
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"
143 fi
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"
152     save_LIBS=$LIBS
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
156         CFLAGS=$save_CFLAGS
157     else
158         dnl This is cheating a bit. pthread_exit comes with using -pthread, not
159 -lpthread
160         ac_cv_lib_pthread_pthread_exit="yes"
161     fi
162     LIBS=$save_LIBS
163 fi
164
165 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes")
166
167 thread_LIBS="$LIBS"
168 LIBS=""
169
170 dnl search for network related libraries
171 AC_SEARCH_LIBS(inet_addr, xnet)
172 AC_SEARCH_LIBS(socket, socket)
173
174 network_LIBS="$LIBS"
175 LIBS=""
176
177 dnl check for some default libraries
178 AC_SEARCH_LIBS(cos, m)
179
180 base_LIBS="$LIBS"
181 LIBS=""
182
183 dnl check for glut location
184 AC_CHECK_HEADER(GL/glut.h)
185 if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
186     AC_DEFINE([GLUT_H], "GL/glut.h", [Define as glut.h include location])
187 else
188     AC_CHECK_HEADER(GLUT/glut.h)
189     if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then
190         AC_DEFINE([GLUT_H], "GLUT/glut.h", [Define as glut.h include location])
191     else
192         echo "Neither GL/glut.h nor GLUT/glut.h found.  Cannot continue"
193         exit
194     fi
195 fi
196
197 dnl check for OpenGL related libraries
198 case "${host}" in
199 *-*-cygwin* | *-*-mingw32*)
200     dnl CygWin under Windoze.
201
202     echo Win32 specific hacks...
203     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
204     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
205
206     LIBS="$LIBS -lglut32 -lglu32 -lopengl32"
207     LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
208
209     dnl add -lwsock32 for mingwin
210     case "${host}" in
211     *-*-mingw32*)
212         base_LIBS="$base_LIBS -lws2_32"
213         ;;
214     esac
215
216     echo "Will link apps with $LIBS"
217     ;;
218
219 *-apple-darwin*)
220     dnl Mac OS X
221
222     LIBS="$LIBS -framework GLUT -framework OpenGL -framework Carbon -lobjc"
223     ;;
224
225 *)
226     dnl X-Windows based machines
227
228     AC_SEARCH_LIBS(XCreateWindow, X11)
229     AC_SEARCH_LIBS(XShmCreateImage, Xext)
230     AC_SEARCH_LIBS(XGetExtensionVersion, Xi)
231     AC_SEARCH_LIBS(IceOpenConnection, ICE)
232     AC_SEARCH_LIBS(SmcOpenConnection, SM)
233     AC_SEARCH_LIBS(XtMalloc, Xt)
234     AC_SEARCH_LIBS(XmuLookupStandardColormap, Xmu)
235     
236     AC_SEARCH_LIBS(glNewList, [ GL GLcore MesaGL ])
237     if test "x$ac_cv_search_glNewList" = "x-lGLcore"; then
238         dnl if GLcore found, then also check for GL
239         AC_SEARCH_LIBS(glXCreateContext, GL)
240     fi
241
242     dnl if using mesa, check for xmesa.h
243     if test "x$ac_cv_search_glNewList" = "x-lMesaGL"; then
244         AC_CHECK_HEADER(GL/fxmesa.h)
245         if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
246             AC_DEFINE([XMESA], 1, [Define for fxmesa])
247             AC_DEFINE([FX], 1, [Define for fxmesa])
248         fi
249     fi
250
251     AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
252     AC_SEARCH_LIBS(glutGetModifiers, [ glut freeglut ])
253     ;;
254
255 esac
256
257 opengl_LIBS="$LIBS"
258 LIBS="$base_LIBS"
259
260 AC_SUBST(base_LIBS)
261 AC_SUBST(opengl_LIBS)
262 AC_SUBST(thread_LIBS)
263 AC_SUBST(network_LIBS)
264
265 dnl Check for MS Windows environment
266 AC_CHECK_HEADER(windows.h)
267 AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
268
269 # The following are C++ items that need to be tested for with the c++
270 # compiler
271
272 AC_LANG_PUSH(C++)
273
274 dnl Check for "plib" without which we cannot go on
275 AC_CHECK_HEADER(plib/ul.h)
276 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
277     echo
278     echo "You *must* have the plib library installed on your system to build"
279     echo "SimGear!"
280     echo
281     echo "Please see README.plib for more details."
282     echo
283     echo "configure aborted."
284     exit
285 fi
286
287 AC_MSG_CHECKING([for plib 1.6.0 or newer])
288 AC_TRY_RUN([
289 #include <plib/ul.h>
290
291 #define MIN_PLIB_VERSION 160
292
293 int main() {
294     int major, minor, micro;
295
296     if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
297          return -1;
298     }
299
300     return 0;
301 }
302
303 ],
304   AC_MSG_RESULT(yes),
305   [AC_MSG_RESULT(wrong version);
306    AC_MSG_ERROR([Install plib 1.6.0 or later first...])],
307   AC_MSG_RESULT(yes)
308 )
309
310 dnl Check for MetaKit
311 AC_CHECK_HEADER(mk4.h)
312 if test "x$ac_cv_header_mk4_h" != "xyes"; then
313     echo
314     echo "MetaKit library not found."
315     echo
316     echo "If your OS does not provide an installable package for MetaKit"
317     echo "you will have to compile and install it first yourself.  A copy"
318     echo "of metakit-$(VERSION).tar.gz is included with SimGear.  You will"
319     echo "have to untar this source code, and follow its included instructions"
320     echo "to compile and install on your system."
321     echo
322     echo "configure aborted."
323     exit
324 fi
325
326 AC_MSG_CHECKING([for metakit 2.4.3 or newer])
327 saved_LIBS="$LIBS"
328 LIBS="$saved_LIBS -lmk4"
329 AC_TRY_RUN([
330 #include <mk4.h>
331
332 #define MIN_MK4_VERSION 243
333
334 int main() {
335     int major, minor, micro;
336
337     if ( d4_MetaKitLibraryVersion < MIN_MK4_VERSION ) {
338          return -1;
339     }
340
341     return 0;
342 }
343
344 ],
345   AC_MSG_RESULT(yes),
346   [AC_MSG_RESULT(wrong version);
347    AC_MSG_ERROR([
348
349 Install metakit 2.4.3 or later first.
350
351 Or, the compiler may not be finding your libmk4.so library.
352 Please check the config.log file for specific details of the
353 failure if you believe you have the correct metakit version.
354 Also, look up this issue in the FlightGear FAQ.])],
355   AC_MSG_RESULT(yes)
356 )
357
358 LIBS="$saved_LIBS"
359
360 AC_LANG_POP
361
362 dnl Check for system installed zlib
363 AC_CHECK_HEADER(zlib.h)
364 if test "x$ac_cv_header_zlib_h" != "xyes"; then
365     echo
366     echo "zlib library not found."
367     echo
368     echo "If your OS does not provide an installable package for zlib"
369     echo "you will have to compile and install it first yourself.  A copy"
370     echo "of zlib-1.1.4.tar.gz is included with SimGear.  You will"
371     echo "have to untar this source code, and follow its included instructions"
372     echo "to compile and install on your system."
373     echo
374     echo "configure aborted."
375     echo
376 fi
377
378 dnl Checks for header files.
379 AC_HEADER_STDC
380 AC_CHECK_HEADERS( \
381         fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
382         sys/stat.h sys/time.h sys/timeb.h unistd.h values.h )
383
384 if test "x$ac_cv_header_stdint_h" = "xyes"; then
385     AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
386 fi
387
388 dnl Checks for typedefs, structures, and compiler characteristics.
389 AC_C_CONST
390 AC_TYPE_SIZE_T
391 AC_HEADER_TIME
392 AC_STRUCT_TM
393
394 dnl Checks for library functions.
395 AC_TYPE_SIGNAL
396 AC_FUNC_VPRINTF
397 AC_CHECK_FUNCS( \
398         ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
399         random drand48 setitimer getitimer signal GetLocalTime rint getrusage )
400
401 AM_CONFIG_HEADER(simgear/simgear_config.h)
402
403 AC_CONFIG_FILES([ \
404         Makefile \
405         SimGear.spec \
406         src-libs/Makefile \
407         simgear/Makefile \
408         simgear/version.h \
409         simgear/compatibility/Makefile \
410         simgear/bucket/Makefile \
411         simgear/debug/Makefile \
412         simgear/ephemeris/Makefile \
413         simgear/io/Makefile \
414         simgear/magvar/Makefile \
415         simgear/math/Makefile \
416         simgear/metar/Makefile \
417         simgear/misc/Makefile \
418         simgear/props/Makefile \
419         simgear/route/Makefile \
420         simgear/scene/Makefile \
421         simgear/scene/material/Makefile \
422         simgear/scene/model/Makefile \
423         simgear/scene/sky/Makefile \
424         simgear/scene/tgdb/Makefile \
425         simgear/screen/Makefile \
426         simgear/serial/Makefile \
427         simgear/sound/Makefile \
428         simgear/threads/Makefile \
429         simgear/timing/Makefile \
430         simgear/xgl/Makefile \
431         simgear/xml/Makefile \
432 ])
433 AC_OUTPUT
434
435
436 echo ""
437 echo "Configure Summary"
438 echo "================="
439
440 echo "Prefix: $prefix"
441
442 if test "x$with_logging" != "x"; then
443     echo "Debug messages: $with_logging"
444 else
445     echo "Debug messages: yes"
446 fi
447
448 echo -n "Automake version: "
449 automake --version | head -1
450
451 if test "x$ac_cv_header_GL_glut_h" = "xyes"; then
452    echo "With GL/glut.h"
453 fi
454 if test "x$ac_cv_header_GLUT_glut_h" = "xyes"; then
455    echo "With GLUT/glut.h"
456 fi
457
458 if test "x$with_jpeg_factory" = "xyes"; then
459    echo "With JPEG Factory support"
460 else
461    echo "Without JPEG Factory support"
462 fi
463
464 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
465    echo "Threads: pthread lib found."
466 else
467    echo "Threads: no threads (pthread lib not found.)"
468 fi
469