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