]> git.mxchange.org Git - simgear.git/blob - configure.ac
Upgrade the version number.
[simgear.git] / configure.ac
1 dnl Process this file with aclocal ; automake -a ; autoconf to produce a 
2 dnl working configure script.
3 dnl
4 dnl $Id$
5
6 AC_INIT
7 AC_CONFIG_SRCDIR([simgear/bucket/newbucket.cxx])
8
9 # 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.0)
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
42 # Used on the Irix platform
43 AR="ar"
44 ARFLAGS="cru"
45 OS=`uname -s`
46 if test "$OS" = "IRIX" -o "$OS" = "IRIX64"; then
47     if test "$CXX" = "CC"; then
48         AR="CC -ar"
49         ARFLAGS="-o"
50     fi
51 fi
52 AC_SUBST(AR)
53 AC_SUBST(ARFLAGS)
54
55
56 if echo $includedir | egrep "simgear$" > /dev/null; then
57     echo "includedir is" $includedir "libdir is" $libdir
58 else
59     includedir="${includedir}/simgear"
60     echo "includedir changed to" $includedir "libdir is" $libdir
61 fi
62          
63 # set logging default value
64 # with_logging=yes
65 AC_ARG_WITH(logging, [  --with-logging          Include logging output (default)])
66 if test "x$with_logging" = "xno" ; then
67     AC_DEFINE([FG_NDEBUG], 1, [Define for no logging output])
68 fi
69
70 # Specify if we want to build with Norman's jpeg image server support.
71 # This requires libjpeg to be installed and available.
72 # Default to with_jpeg_server=no
73 JPEGLIB=''
74 AC_ARG_WITH(jpeg_factory, [  --with-jpeg-factory     Include Norman's jpeg image factory support code])
75 if test "x$with_jpeg_factory" = "xyes" ; then
76     echo "Building with Norman's jpeg image factory support"
77     AC_CHECK_LIB(jpeg, jpeg_start_compress)
78     if test "x$ac_cv_lib_jpeg_jpeg_start_compress" != "xyes" ; then
79         echo
80         echo "In order to build the jpeg factory code you need libjpeg installed."
81         echo "otherwise please configure with the --with-jpeg-sever=no option"
82         echo
83         echo "libjpeg is available at :"
84         echo "  ftp://ftp.uu.net in the directory graphics/jpeg"
85         exit 1
86     fi
87 else
88     echo "Building without Norman's jpeg image server support"
89 fi
90 AM_CONDITIONAL(ENABLE_JPEG_SERVER, test "x$with_jpeg_factory" = "xyes")
91
92
93 dnl Check for MS Windows environment
94 AC_CHECK_HEADER(windows.h)
95
96 AC_EGREP_CPP(yes,
97 [#ifdef __MINGW32__
98  yes
99  #endif
100 ],is_mingw=yes, is_mingw=no)
101
102 echo "IS_MINGW = $is_mingw"
103 AM_CONDITIONAL(IS_MINGW, test "x$is_mingw" = "xyes")
104
105 AC_EGREP_CPP(yes,
106 [#ifdef __CYGWIN__
107  yes
108  #endif
109 ],is_cygwin=yes, is_cygwin=no)
110
111 echo "IS_CYGWIN = $is_cygwin"
112 AM_CONDITIONAL(IS_CYGWIN, test "x$is_cygwin" = "xyes")
113
114 if test "x$HOSTTYPE" != "xmacintosh" -a "x$is_mingw" != "xyes"; then
115     dnl extra library and include directories
116     EXTRA_DIRS="/usr/local /usr/X11R6"
117
118     if test -d /opt/X11R6 ; then
119         EXTRA_DIRS="$EXTRA_DIRS /opt/X11R6"
120     fi
121 fi
122
123 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
124
125 dnl Using AM_CONDITIONAL is a step out of the protected little 
126 dnl automake fold so it is potentially dangerous.  But, we are
127 dnl beginning to run into cases where the standard checks are not
128 dnl enough.  AM_CONDITIONALS are then referenced to conditionally
129 dnl build a Makefile.in from a Makefile.am which lets us define custom
130 dnl includes, compile alternative source files, etc.
131
132 dnl X11 might be installed on Mac OS X, don't want to use it if it is.
133 if test "x$HOSTTYPE" != "xmacintosh" ; then
134     dnl Check for X11 (fancy)
135     AC_PATH_XTRA
136 fi
137
138 dnl Checks for libraries.
139
140 null_LIBS="$LIBS"
141
142 AC_CHECK_LIB(m, cos)
143
144 base_LIBS="$LIBS"
145
146 dnl Thread related checks
147 AC_CHECK_LIB(pthread, pthread_exit)
148 AC_CHECK_HEADER(pthread.h)
149 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
150     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
151     CFLAGS="$CFLAGS -D_REENTRANT"
152 fi
153 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes")
154
155 AC_CHECK_LIB(socket, socket)
156
157 dnl X11 might be installed, but we don't want to use it for OSX -dw-
158 if test "x$HOSTTYPE" != "xmacintosh" ; then
159     AC_CHECK_LIB(X11, XCreateWindow)
160     AC_CHECK_LIB(Xext, XShmCreateImage)
161     AC_CHECK_LIB(Xi, XGetExtensionVersion)
162     AC_CHECK_LIB(ICE, IceOpenConnection)
163     AC_CHECK_LIB(SM, SmcOpenConnection)
164     AC_CHECK_LIB(Xt, XtMalloc)
165     AC_CHECK_LIB(Xmu, XmuLookupStandardColormap)
166 fi
167
168 dnl check for OpenGL related libraries
169
170 if test "x$HOSTTYPE" = "xmacintosh" ; then
171     dnl Macintosh OSX
172     LIBS="$LIBS -framework OpenGL -framework GLUT"
173 elif test "x$ac_cv_header_windows_h" != "xyes" ; then
174     dnl Reasonable stuff for X-Windows based machines
175
176     AC_CHECK_LIB(GLcore, glNewList)
177     if test "x$ac_cv_lib_GLcore_glNewList" = "xno" ; then
178         dnl if no GLcore, check for GL
179         AC_CHECK_LIB(GL, glNewList)
180         if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then
181             dnl if no GL, check for MesaGL
182             AC_CHECK_LIB(MesaGL, glNewList)
183         fi
184     else
185         dnl if GLcore found, then also check for GL
186         AC_CHECK_LIB(GL, glXCreateContext)
187     fi
188
189     dnl if using mesa, check for xmesa.h
190     if test "x$ac_cv_lib_MesaGL_glNewList" = "xyes" ; then
191         AC_CHECK_HEADER(GL/fxmesa.h)
192         if test "x$ac_cv_header_GL_fxmesa_h" = "xyes"; then
193             AC_DEFINE([XMESA], 1, [Define for fxmesa])
194             AC_DEFINE([FX], 1, [Define for fxmesa])
195         fi
196     fi
197
198     AC_CHECK_LIB(GLU, gluLookAt)
199     if test "x$ac_cv_lib_GLU_gluLookAt" = "xno" ; then
200         dnl if no GLU, check for MesaGLU
201         AC_CHECK_LIB(MesaGLU, gluLookAt)
202     fi
203
204     dnl check for glut
205     AC_CHECK_LIB(glut, glutGetModifiers)
206
207     dnl test for glutGameModeString, but avoid adding glut a second time into
208     dnl the list of libraries
209     save_LIBS="$LIBS"
210     AC_CHECK_LIB(glut, glutGameModeString)
211     LIBS="$save_LIBS"
212 else
213     dnl Win32 libs
214
215     echo Win32 specific hacks...
216     AC_DEFINE([WIN32], 1, [Define for Win32 platforms])
217
218     dnl just define these to true and hope for the best
219     ac_cv_lib_glut_glutGetModifiers="yes"
220     ac_cv_lib_glut_glutGameModeString="yes"
221
222     if test "x$with_sgi_opengl" = "xyes" ; then
223         echo "Building with glut.dll, glu.dll, and opengl.dll"
224         WIN32_GLUT=glut
225         WIN32_GLU=glu
226         WIN32_OPENGL=opengl
227     else 
228         echo "Building with glut32.dll, glu32.dll, and opengl32.dll"
229         WIN32_GLUT=glut32
230         WIN32_GLU=glu32
231         WIN32_OPENGL=opengl32
232     fi
233
234     LIBS="$LIBS -l${WIN32_GLUT} -l${WIN32_GLU} -l${WIN32_OPENGL}"
235     LIBS="$LIBS -luser32 -lgdi32"
236     if test "x$is_mingw" = "xyes" ; then
237         EXTRA_DIRS="${EXTRA_DIRS}"
238     fi
239     echo "Will link apps with $LIBS"
240 fi
241
242 if test "x$ac_cv_lib_glut_glutGetModifiers" = "xno"; then
243     echo 
244     echo "Unable to find the necessary OpenGL or GLUT libraries."
245     echo "See config.log for automated test details and results ..."
246     exit 1
247 fi
248
249 if test "x$ac_cv_lib_glut_glutGameModeString" = "xno"; then
250     echo
251     echo "Your version of glut doesn't support game mode."
252     echo "You need to install the latest version of glut.  If your"
253     echo "distribution doesn't provide a newer version, you can get the source"
254     echo "code from:"
255     echo
256     echo "    http://reality.sgi.com/opengl/glut3/glut3.html"
257     exit 1
258 fi
259
260 opengl_LIBS="$LIBS"
261 LIBS="$base_LIBS"
262
263 AC_SUBST(base_LIBS)
264 AC_SUBST(opengl_LIBS)
265
266 AM_CONDITIONAL(HAVE_XWINDOWS, test "x$ac_cv_lib_X11_XCreateWindow" = "xyes" )
267
268 # The following are C++ items that need to be tested for with the c++
269 # compiler
270
271 AC_LANG_PUSH(C++)
272
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
276     echo
277     echo "You *must* have the plib library installed on your system to build"
278     echo "SimGear!"
279     echo
280     echo "Please see README.plib for more details."
281     echo
282     echo "configure aborted."
283     exit
284 fi
285
286 AC_MSG_CHECKING([for plib 1.6.0 or newer])
287 AC_TRY_RUN([
288 #include <plib/ul.h>
289
290 #define MIN_PLIB_VERSION 160
291
292 int main() {
293     int major, minor, micro;
294
295     if ( PLIB_VERSION < MIN_PLIB_VERSION ) {
296          return -1;
297     }
298
299     return 0;
300 }
301
302 ],
303   AC_MSG_RESULT(yes),
304   [AC_MSG_RESULT(wrong version);
305    AC_MSG_ERROR([Install plib 1.6.0 or later first...])],
306   AC_MSG_RESULT(yes)
307 )
308
309 dnl Check for system installed metakit
310 AC_CHECK_HEADER(mk4.h)
311 if test "x$ac_cv_header_mk4_h" != "xyes"; then
312     echo 
313     echo "Metakit not found, you will need to install this first."
314     echo "Please read the README.metakit for more information."
315     exit
316 fi
317
318 AC_LANG_POP
319
320 dnl Specify if we want logging (testing build) or not (release build)
321
322 dnl Check for system installed zlib
323 AC_CHECK_HEADER(zlib.h)
324 if test "x$ac_cv_header_zlib_h" != "xyes"; then
325     echo 
326     echo "zlib not found, you will need to install this first."
327     echo "Please read the README.zlib for more information."
328     exit
329 fi
330
331 dnl Checks for header files.
332 AC_HEADER_STDC
333 AC_CHECK_HEADERS( \
334         fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
335         sys/stat.h sys/time.h sys/timeb.h unistd.h windows.h winbase.h values.h )
336
337 if test "x$ac_cv_header_stdint_h" = "xyes"; then
338     AC_DEFINE([HAVE_STDINT_H], 1, [Define if stdint.h exists])
339 fi
340
341 dnl Checks for typedefs, structures, and compiler characteristics.
342 AC_C_CONST
343 AC_TYPE_SIZE_T
344 AC_HEADER_TIME
345 AC_STRUCT_TM
346
347 dnl Checks for library functions.
348 AC_TYPE_SIGNAL
349 AC_FUNC_VPRINTF
350 AC_CHECK_FUNCS( ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
351         random drand48 setitimer getitimer signal GetLocalTime rint getrusage )
352
353 AM_CONFIG_HEADER(simgear/simgear_config.h)
354
355 AC_CONFIG_FILES([ \
356         Makefile \
357         SimGear.spec \
358         src-libs/Makefile \
359         simgear/Makefile \
360         simgear/version.h \
361         simgear/bucket/Makefile \
362         simgear/debug/Makefile \
363         simgear/ephemeris/Makefile \
364         simgear/interpreter/Makefile \
365         simgear/io/Makefile \
366         simgear/magvar/Makefile \
367         simgear/math/Makefile \
368         simgear/metar/Makefile \
369         simgear/misc/Makefile \
370         simgear/route/Makefile \
371         simgear/screen/Makefile \
372         simgear/serial/Makefile \
373         simgear/sky/Makefile \
374         simgear/sky/clouds3d/Makefile \
375         simgear/threads/Makefile \
376         simgear/timing/Makefile \
377         simgear/xgl/Makefile \
378         simgear/xml/Makefile \
379 ])
380 AC_OUTPUT
381
382
383 echo ""
384 echo "Configure Summary"
385 echo "================="
386
387 echo "Prefix: $prefix"
388
389 if test "x$with_logging" != "x"; then
390     echo "Debug messages: $with_logging"
391 else
392     echo "Debug messages: yes"
393 fi
394
395 echo -n "Automake version: ($AUTO_MAKE_VERSION) "
396 automake --version | head -1
397
398 if test "x$with_jpeg_factory" = "xyes"; then
399    echo "With JPEG Factory support"
400 else
401    echo "Without JPEG Factory support"
402 fi
403
404 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
405    echo "Threads: pthread lib found."
406 else
407    echo "Threads: no threads (pthread lib not found.)"
408 fi