]> git.mxchange.org Git - simgear.git/blob - configure.ac
Update MSVC 7.1 projects
[simgear.git] / configure.ac
1 dnl Process this file with autoget.sh to produce a working configure
2 dnl script.
3
4 AC_INIT
5 AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx])
6
7 dnl Require at least automake 2.52
8 AC_PREREQ(2.52)
9
10 dnl Initialize the automake stuff
11 AM_INIT_AUTOMAKE(SimGear, 0.3.10)
12
13 dnl Specify KAI C++ compiler and flags.
14 dnl Borrowed with slight modification from blitz distribution.
15 AC_ARG_WITH(cxx,
16   [  --with-cxx=COMPILER[:name-flags] set options for COMPILER (KCC)],
17   [case "$withval" in
18     KCC*)    # KAI C++ http://www.kai.com/
19       echo "Configuring for KAI C++"
20       AC_SG_SET_COMPILER($withval,"KCC","--restrict --strict_warnings")
21       CXX_OPTIMIZE_FLAGS=="+K3 -O3"
22       CXX_DEBUG_FLAGS="-g +K0"
23     ;;
24   esac
25 ])
26
27 AC_MSG_CHECKING([CXX])
28 AC_MSG_RESULT([$CXX])
29 AC_MSG_CHECKING([CC])
30 AC_MSG_RESULT([$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 # specify the osg location
125 AC_ARG_WITH(osg, [  --with-osg=PREFIX       Specify the prefix path to osg])
126
127 if test "x$with_osg" != "x" ; then
128     echo "osg prefix is $with_osg"
129     EXTRA_DIRS="${EXTRA_DIRS} $with_osg"
130 fi
131
132 dnl Determine an extra directories to add to include/lib search paths
133 case "${host}" in
134 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
135     echo no EXTRA_DIRS for $host
136     ;;
137
138 *)
139     if test -d /usr/X11R6 ; then
140         EXTRA_DIR1="/usr/X11R6"
141     fi
142     if test -d /opt/X11R6 ; then
143         EXTRA_DIR2="/opt/X11R6"
144     fi
145     EXTRA_DIRS="${EXTRA_DIRS} $EXTRA_DIR1 $EXTRA_DIR2"
146     ;;
147
148 esac
149 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
150
151
152 dnl Using AM_CONDITIONAL is a step out of the protected little 
153 dnl automake fold so it is potentially dangerous.  But, we are
154 dnl beginning to run into cases where the standard checks are not
155 dnl enough.  AM_CONDITIONALS are then referenced to conditionally
156 dnl build a Makefile.in from a Makefile.am which lets us define custom
157 dnl includes, compile alternative source files, etc.
158
159 dnl X11 might be installed on Mac OS X or cygwin/mingwin, we don't want
160 dnl to use it if it is.
161 case "${host}" in
162 *-apple-darwin* | *-*-cygwin* | *-*-mingw32*)
163     echo no fancy X11 check
164     ;;
165
166 *)
167     AC_PATH_XTRA
168     ;;
169
170 esac
171
172 dnl Checks for libraries.
173
174 dnl Thread related checks
175 AC_CHECK_HEADER(pthread.h)
176 AC_SEARCH_LIBS(pthread_exit, [pthread c_r])
177 if test "x$ac_cv_header_pthread_h" = "xyes"; then
178     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
179     CFLAGS="$CFLAGS -D_REENTRANT"
180
181   if test "x$ac_cv_search_pthread_exit" = "x-lc_r"; then
182     CXXFLAGS="-pthread $CXXFLAGS"
183     CFLAGS="-pthread $CFLAGS"
184   fi
185 fi
186
187 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_header_pthread_h" = "xyes")
188
189 thread_LIBS="$LIBS"
190 LIBS=""
191
192 dnl search for network related libraries
193 AC_SEARCH_LIBS(inet_addr, xnet)
194 AC_SEARCH_LIBS(socket, socket)
195
196 network_LIBS="$LIBS"
197 LIBS=""
198
199 dnl check for some default libraries
200 AC_SEARCH_LIBS(cos, m)
201
202 base_LIBS="$LIBS"
203
204 dnl check for OpenGL related libraries
205 case "${host}" in
206 *-*-cygwin* | *-*-mingw32*)
207     dnl CygWin under Windoze.
208
209     echo Win32 specific hacks...
210     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
211     AC_DEFINE([NOMINMAX], 1, [Define for Win32 platforms])
212
213     LIBS="$LIBS -lglu32 -lopengl32"
214     LIBS="$LIBS -luser32 -lgdi32 -lwinmm"
215
216     dnl add -lwsock32 for mingwin
217     case "${host}" in
218     *-*-mingw32*)
219         base_LIBS="$base_LIBS -lws2_32"
220         ;;
221     esac
222
223     echo "Will link apps with $LIBS"
224     ;;
225
226 *-apple-darwin*)
227     dnl Mac OS X
228
229     LIBS="$LIBS -framework OpenGL -framework Carbon -lobjc"
230     ;;
231
232 *)
233     dnl X-Windows based machines
234
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)
242     
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)
247     fi
248
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])
255         fi
256     fi
257
258     AC_SEARCH_LIBS(gluLookAt, [ GLU MesaGLU ])
259     ;;
260
261 esac
262
263 AC_SEARCH_LIBS(glutGetModifiers, [ glut glut32 freeglut ], have_glut=yes, have_glut=no)
264 AM_CONDITIONAL(HAVE_GLUT, test "x$have_glut" = "xyes")
265
266 opengl_LIBS="$LIBS"
267 LIBS="$base_LIBS"
268
269 dnl check for OpenAL libraries
270 OPENAL_OK="no"
271 case "${host}" in
272 *-*-cygwin* | *-*-mingw32*)
273     dnl CygWin under Windoze.
274     INCLUDES="$INCLUDES -I/usr/local/include/"
275     LIBS="$LIBS -L/usr/local/lib"
276     AC_SEARCH_LIBS(alGenBuffers, [ openal32 openal ] )
277     AC_SEARCH_LIBS(alutInit, [ openal32 ALut alut ] )
278     LIBS="$LIBS -lwinmm -ldsound -ldxguid -lole32"
279     openal_LIBS="$LIBS"
280     OPENAL_OK="$ac_cv_search_alGenBuffers"
281     ;;
282
283 *-apple-darwin*)
284     dnl Mac OS X
285
286     LIBS="$LIBS -framework IOKit -framework OpenAL"
287     openal_LIBS="$LIBS"
288     # not sure how to test if OpenAL exists on MacOS (does it come by default?)
289     OPENAL_OK="yes"
290     ;;
291
292 *)
293     dnl default unix style machines
294
295     save_LIBS=$LIBS
296     LIBS="$LIBS $thread_LIBS"
297     AC_SEARCH_LIBS(alGenBuffers, openal)
298     AC_SEARCH_LIBS(alutInit, [ alut openal ] )
299     OPENAL_OK="$ac_cv_search_alGenBuffers"
300     openal_LIBS="$LIBS"
301     LIBS=$save_LIBS
302     ;;
303
304 esac
305
306 if test "$OPENAL_OK" == "no"; then
307     echo
308     echo "You *must* have the openal library installed on your system to build"
309     echo "SimGear!"
310     echo
311     echo "Please see README.OpenAL for more details."
312     echo
313     echo "configure aborted."
314     exit
315 fi
316
317 LIBS="$base_LIBS"
318
319 AC_SUBST(base_LIBS)
320 AC_SUBST(openal_LIBS)
321 AC_SUBST(opengl_LIBS)
322 AC_SUBST(thread_LIBS)
323 AC_SUBST(network_LIBS)
324
325 dnl Check for MS Windows environment
326 AC_CHECK_HEADER(windows.h)
327 AM_CONDITIONAL(EXTGL_NEEDED, test "x$ac_cv_header_windows_h" = "xyes")
328
329 # The following are C++ items that need to be tested for with the c++
330 # compiler
331
332 AC_LANG_PUSH(C++)
333
334 dnl Check for "plib" without which we cannot go on
335 AC_CHECK_HEADER(plib/ul.h)
336 if test "x$ac_cv_header_plib_ul_h" != "xyes"; then
337     echo
338     echo "You *must* have the plib library installed on your system to build"
339     echo "SimGear!"
340     echo
341     echo "Please see README.plib for more details."
342     echo
343     echo "configure aborted."
344     exit
345 fi
346
347 AC_MSG_CHECKING([for plib 1.8.4 or newer])
348 AC_TRY_RUN([
349 #include <plib/ul.h>
350
351 #define MIN_PLIB_VERSION 184
352
353 int main() {
354     int major, minor, micro;
355
356     if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
357          return -1;
358     }
359
360     return 0;
361 }
362
363 ],
364   AC_MSG_RESULT(yes),
365   [AC_MSG_RESULT(wrong version);
366    AC_MSG_ERROR([Install plib 1.8.4 or later first...])],
367   AC_MSG_RESULT(yes)
368 )
369
370 LIBS="$saved_LIBS"
371
372 AC_LANG_POP
373
374 dnl Check for system installed zlib
375 AC_CHECK_HEADER(zlib.h)
376 if test "x$ac_cv_header_zlib_h" != "xyes"; then
377     echo
378     echo "zlib library not found."
379     echo
380     echo "If your OS does not provide an installable package for zlib"
381     echo "you will have to compile and install it first yourself.  A copy"
382     echo "of zlib-1.1.4.tar.gz is included with SimGear.  You will"
383     echo "have to untar this source code, and follow its included instructions"
384     echo "to compile and install on your system."
385     echo
386     echo "configure aborted."
387     echo
388 fi
389
390 dnl Checks for header files.
391 AC_HEADER_STDC
392 AC_CHECK_HEADERS( \
393         fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
394         sys/stat.h sys/time.h sys/timeb.h unistd.h values.h )
395
396 if test "x$ac_cv_header_stdint_h" = "xyes"; then
397     AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
398 fi
399
400 dnl Checks for typedefs, structures, and compiler characteristics.
401 AC_C_CONST
402 AC_TYPE_SIZE_T
403 AC_TYPE_MODE_T
404 AC_HEADER_TIME
405 AC_STRUCT_TM
406
407 dnl Checks for library functions.
408 old_LIBS=$LIBS
409 LIBS="$base_LIBS $network_LIBS $opengl_LIBS"
410 AC_TYPE_SIGNAL
411 AC_FUNC_VPRINTF
412 AC_CHECK_FUNCS( [ \
413         ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
414         random drand48 setitimer getitimer signal GetLocalTime rint getrusage ] )
415 LIBS=$old_LIBS
416
417 AM_CONFIG_HEADER(simgear/simgear_config.h)
418
419 AC_CONFIG_FILES([ \
420         Makefile \
421         SimGear.spec \
422         simgear/Makefile \
423         simgear/version.h \
424         simgear/compatibility/Makefile \
425         simgear/compatibility/MIPSpro721/Makefile \
426         simgear/compatibility/MIPSpro740/Makefile \
427         simgear/bucket/Makefile \
428         simgear/debug/Makefile \
429         simgear/ephemeris/Makefile \
430         simgear/io/Makefile \
431         simgear/magvar/Makefile \
432         simgear/math/Makefile \
433         simgear/environment/Makefile \
434         simgear/misc/Makefile \
435         simgear/nasal/Makefile \
436         simgear/props/Makefile \
437         simgear/route/Makefile \
438         simgear/scene/Makefile \
439         simgear/scene/material/Makefile \
440         simgear/scene/model/Makefile \
441         simgear/scene/sky/Makefile \
442         simgear/scene/tgdb/Makefile \
443         simgear/scene/util/Makefile \
444         simgear/screen/Makefile \
445         simgear/serial/Makefile \
446         simgear/sound/Makefile \
447         simgear/structure/Makefile \
448         simgear/threads/Makefile \
449         simgear/timing/Makefile \
450         simgear/xml/Makefile \
451 ])
452 AC_OUTPUT
453
454
455 echo ""
456 echo "Configure Summary"
457 echo "================="
458
459 echo "Prefix: $prefix"
460
461 if test "x$with_logging" != "x"; then
462     echo "Debug messages: $with_logging"
463 else
464     echo "Debug messages: yes"
465 fi
466
467 echo -n "Automake version: "
468 automake --version | head -1
469
470 if test "x$with_jpeg_factory" = "xyes"; then
471    echo "With JPEG Factory support"
472 else
473    echo "Without JPEG Factory support"
474 fi
475
476 if test "x$ac_cv_header_pthread_h" = "xyes"; then
477    echo "Threads: pthread lib found."
478 else
479    echo "Threads: no threads (pthread lib not found.)"
480 fi
481