]> git.mxchange.org Git - simgear.git/blob - configure.in
Removed metakit and zlib from the configure/build process. The
[simgear.git] / configure.in
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(simgear/bucket/newbucket.cxx)
7
8 dnl Initialize the automake stuff
9 AM_INIT_AUTOMAKE(SimGear, 0.0.17)
10
11 dnl Specify KAI C++ compiler and flags.
12 dnl Borrowed with slight modification from blitz distribution.
13 AC_ARG_WITH(cxx,
14   [  --with-cxx=COMPILER[:name-flags] set options for COMPILER (KCC)],
15   [case "$withval" in
16     KCC*)    # KAI C++ http://www.kai.com/
17       echo "Configuring for KAI C++"
18       AC_SG_SET_COMPILER($withval,"KCC","--restrict --strict_warnings")
19       CXX_OPTIMIZE_FLAGS=="+K3 -O3"
20       CXX_DEBUG_FLAGS="-g +K0"
21     ;;
22   esac
23 ])
24
25 echo CXX = $CXX
26 echo CC = $CC
27
28 dnl Checks for programs.
29 AC_PROG_MAKE_SET
30 AC_PROG_CC
31 AC_PROG_CPP
32 AC_PROG_CXX
33 AC_PROG_RANLIB
34 AC_PROG_INSTALL
35 AC_PROG_LN_S
36
37 AR="ar"
38 OS=`uname -s`
39 if test "$OS" = "IRIX" -o "$OS" = "IRIX64"; then
40     if test "$CXX" = "CC"; then
41         AR="CC -ar"
42         AC_SUBST(AR)
43     fi
44 fi
45
46 if echo $includedir | egrep "simgear$" > /dev/null; then
47     echo "includedir is" $includedir "libdir is" $libdir
48 else
49     includedir="${includedir}/simgear"
50     echo "includedir changed to" $includedir "libdir is" $libdir
51 fi
52          
53 # Determine version of automake ... important becuase of
54 # incompatibilities between versions
55 AUTO_MAKE_VERSION=`automake --version | head -1 | awk '{print $4}' | sed -e 's/\-p[[0-9]]$//' | sed -e 's/\.//'`
56 AM_CONDITIONAL(ANCIENT_AUTOMAKE, test $AUTO_MAKE_VERSION -lt 14)
57 AM_CONDITIONAL(OLD_AUTOMAKE, test $AUTO_MAKE_VERSION -lt 15)
58
59 # set logging default value
60 # with_logging=yes
61 AC_ARG_WITH(logging, [  --with-logging          Include logging output (default)])
62 if test "x$with_logging" = "xno" ; then
63     AC_DEFINE(FG_NDEBUG)
64 fi
65
66 dnl specify if we are building with "electric fence"
67 AC_ARG_WITH(efence, [  --with-efence           Specify if we are building with "electric-fence"])
68
69 if test "x$with_efence" = "xyes" ; then
70     echo "Building with efence"
71     LIBS="$LIBS -lefence"
72 fi
73
74 dnl Check for MS Windows environment
75 AC_CHECK_HEADER(windows.h)
76
77 if test "x$HOSTTYPE" != "xmacintosh" ; then
78     dnl extra library and include directories
79     EXTRA_DIRS="/usr/local /usr/local/plib /usr/X11R6"
80
81     if test -d /opt/X11R6 ; then
82         EXTRA_DIRS="$EXTRA_DIRS /opt/X11R6"
83     fi
84
85     if test "x$ac_cv_header_windows_h" = "xyes" ; then
86         if test -d /usr/mingw/usr ; then
87             EXTRA_DIRS="$EXTRA_DIRS /usr/mingw/usr"
88         fi
89         EXTRA_DIRS="${EXTRA_DIRS} `pwd`/Win32"
90     fi
91 fi
92
93 wi_EXTRA_DIRS(no, ${EXTRA_DIRS})
94
95 dnl Using AM_CONDITIONAL is a step out of the protected little 
96 dnl automake fold so it is potentially dangerous.  But, we are
97 dnl beginning to run into cases where the standard checks are not
98 dnl enough.  AM_CONDITIONALS are then referenced to conditionally
99 dnl build a Makefile.in from a Makefile.am which lets us define custom
100 dnl includes, compile alternative source files, etc.
101
102 dnl Enable serial support on Unix type systems
103 AM_CONDITIONAL(ENABLE_UNIX_SERIAL, true)
104
105 dnl X11 might be installed on Mac OS X, don't want to use it if it is.
106 if test "x$HOSTTYPE" != "xmacintosh" ; then
107     dnl Check for X11 (fancy)
108     AC_PATH_XTRA
109 fi
110
111 dnl Checks for libraries.
112
113 null_LIBS="$LIBS"
114
115 AC_CHECK_LIB(m, cos)
116
117 base_LIBS="$LIBS"
118
119 dnl Thread related checks
120 AC_CHECK_LIB(pthread, pthread_exit)
121 AC_CHECK_HEADER(pthread.h)
122 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
123     CXXFLAGS="$CXXFLAGS -D_REENTRANT"
124     CFLAGS="$CFLAGS -D_REENTRANT"
125 fi
126 AM_CONDITIONAL(HAVE_THREADS, test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes")
127
128 AC_CHECK_LIB(socket, socket)
129
130 dnl X11 might be installed, but we don't want to use it for OSX -dw-
131 if test "x$HOSTTYPE" != "xmacintosh" ; then
132     AC_CHECK_LIB(X11, XCreateWindow)
133     AC_CHECK_LIB(Xext, XShmCreateImage)
134     AC_CHECK_LIB(Xi, XGetExtensionVersion)
135     AC_CHECK_LIB(ICE, IceOpenConnection)
136     AC_CHECK_LIB(SM, SmcOpenConnection)
137     AC_CHECK_LIB(Xt, XtMalloc)
138     AC_CHECK_LIB(Xmu, XmuLookupStandardColormap)
139 fi
140
141 dnl check for OpenGL related libraries
142
143 if test "x$HOSTTYPE" = "xmacintosh" ; then
144     dnl Macintosh OSX
145     LIBS="$LIBS -framework OpenGL -framework GLUT"
146 elif test "x$ac_cv_header_windows_h" != "xyes" ; then
147     dnl Reasonable stuff for X-Windows based machines
148
149     AC_CHECK_LIB(GLcore, glNewList)
150     if test "x$ac_cv_lib_GLcore_glNewList" = "xno" ; then
151         dnl if no GLcore, check for GL
152         AC_CHECK_LIB(GL, glNewList)
153         if test "x$ac_cv_lib_GL_glNewList" = "xno" ; then
154             dnl if no GL, check for MesaGL
155             AC_CHECK_LIB(MesaGL, glNewList)
156         fi
157     else
158         dnl if GLcore found, then also check for GL
159         AC_CHECK_LIB(GL, glXCreateContext)
160     fi
161
162     dnl if using mesa, check for xmesa.h
163     if test "x$ac_cv_lib_MesaGL_glNewList" = "xyes" ; then
164         AC_CHECK_HEADER(GL/xmesa.h)
165         if test "x$ac_cv_header_GL_xmesa_h" = "xyes"; then
166             AC_DEFINE( XMESA )
167             AC_DEFINE( FX )
168         fi
169     fi
170
171     AC_CHECK_LIB(GLU, gluLookAt)
172     if test "x$ac_cv_lib_GLU_gluLookAt" = "xno" ; then
173         dnl if no GLU, check for MesaGLU
174         AC_CHECK_LIB(MesaGLU, gluLookAt)
175     fi
176
177     dnl check for glut
178     AC_CHECK_LIB(glut, glutGetModifiers)
179
180     dnl test for glutGameModeString, but avoid adding glut a second time into
181     dnl the list of libraries
182     save_LIBS="$LIBS"
183     AC_CHECK_LIB(glut, glutGameModeString)
184     LIBS="$save_LIBS"
185 else
186     dnl Win32 libs
187
188     echo Win32 specific hacks...
189     AC_DEFINE(WIN32)
190
191     dnl force a failed check since we will be building under windoze
192     AM_CONDITIONAL(ENABLE_XMESA_FX, test "no" = "yes")
193
194     dnl just define these to true and hope for the best
195     ac_cv_lib_glut_glutGetModifiers="yes"
196     ac_cv_lib_glut_glutGameModeString="yes"
197
198     if test "x$with_sgi_opengl" = "xyes" ; then
199         echo "Building with glut.dll, glu.dll, and opengl.dll"
200         WIN32_GLUT=glut
201         WIN32_GLU=glu
202         WIN32_OPENGL=opengl
203     else 
204         echo "Building with glut32.dll, glu32.dll, and opengl32.dll"
205         WIN32_GLUT=glut32
206         WIN32_GLU=glu32
207         WIN32_OPENGL=opengl32
208     fi
209
210     LIBS="$LIBS -l${WIN32_GLUT} -l${WIN32_GLU} -l${WIN32_OPENGL}"
211     LIBS="$LIBS -luser32 -lgdi32"
212     echo "Will link apps with $LIBS"
213 fi
214
215 if test "x$ac_cv_lib_glut_glutGetModifiers" = "xno"; then
216     echo 
217     echo "Unable to find the necessary OpenGL or GLUT libraries."
218     echo "See config.log for automated test details and results ..."
219     exit 1
220 fi
221
222 if test "x$ac_cv_lib_glut_glutGameModeString" = "xno"; then
223     echo
224     echo "Your version of glut doesn't support game mode."
225     echo "You need to fetch and install the latest version of glut from:"
226     echo
227     echo "    http://reality.sgi.com/opengl/glut3/glut3.html"
228     exit 1
229 fi
230
231 opengl_LIBS="$LIBS"
232 LIBS="$base_LIBS"
233
234 AC_SUBST(base_LIBS)
235 AC_SUBST(opengl_LIBS)
236
237 AM_CONDITIONAL(HAVE_XWINDOWS, test "x$ac_cv_lib_X11_XCreateWindow" = "xyes" )
238
239 dnl Check for "plib" without which we cannot go on
240 AC_CHECK_HEADER(plib/pu.h)
241 if test "x$ac_cv_header_plib_pu_h" != "xyes"; then
242     echo
243     echo "You *must* have the plib library installed on your system to build"
244     echo "the FGFS simulator!"
245     echo
246     echo "Please see README.plib for more details."
247     echo
248     echo "configure aborted."
249     exit
250 fi
251
252 dnl Check for system installed metakit
253 AC_CHECK_HEADER(mk4.h)
254 if test "x$ac_cv_header_mk4_h" != "xyes"; then
255     echo "Metakit not found, you will need to install this first."
256     echo "Please read the README.metakit for more information."
257     exit
258 fi
259
260
261 dnl Specify if we want logging (testing build) or not (release build)
262
263 dnl Check for system installed zlib
264 AC_CHECK_HEADER(zlib.h)
265 if test "x$ac_cv_header_zlib_h" != "xyes"; then
266     echo "zlib not found, you will need to install this first."
267     echo "Please read the README.zlib for more information."
268     exit
269 fi
270
271 dnl Checks for header files.
272 AC_HEADER_STDC
273 AC_CHECK_HEADERS( \
274         fcntl.h getopt.h malloc.h memory.h stdint.h stdlib.h sys/param.h \
275         sys/stat.h sys/time.h sys/timeb.h unistd.h windows.h winbase.h values.h )
276
277 if test "x$ac_cv_header_stdint_h" = "xyes"; then
278     AC_DEFINE( HAVE_STDINT_H )
279 fi
280
281 dnl Checks for typedefs, structures, and compiler characteristics.
282 AC_C_CONST
283 AC_TYPE_SIZE_T
284 AC_HEADER_TIME
285 AC_STRUCT_TM
286
287 dnl Checks for library functions.
288 AC_TYPE_SIGNAL
289 AC_FUNC_VPRINTF
290 AC_CHECK_FUNCS( ftime gettimeofday timegm memcpy bcopy mktime strstr rand \
291         random setitimer getitimer signal GetLocalTime rint getrusage )
292
293 AM_CONFIG_HEADER(simgear/simgear_config.h)
294
295 AC_OUTPUT( \
296         Makefile \
297         SimGear.spec \
298         simgear/Makefile \
299         simgear/version.h \
300         simgear/bucket/Makefile \
301         simgear/debug/Makefile \
302         simgear/ephemeris/Makefile \
303         simgear/io/Makefile \
304         simgear/magvar/Makefile \
305         simgear/math/Makefile \
306         simgear/metar/Makefile \
307         simgear/misc/Makefile \
308         simgear/route/Makefile \
309         simgear/screen/Makefile \
310         simgear/serial/Makefile \
311         simgear/sky/Makefile \
312         simgear/threads/Makefile \
313         simgear/timing/Makefile \
314         simgear/xgl/Makefile \
315         simgear/xml/Makefile \
316 )
317
318 # AC_OUTPUT_COMMANDS([])
319
320 echo ""
321 echo "Configure Summary"
322 echo "================="
323
324 echo "Prefix: $prefix"
325
326 if test "x$with_logging" != "x"; then
327     echo "Debug messages: $with_logging"
328 else
329     echo "Debug messages: yes"
330 fi
331
332 if test "x$with_efence" != "x"; then
333     echo "Electric fence: $with_efence"
334 else
335     echo "Electric fence: no"
336 fi
337
338 echo -n "Automake version: ($AUTO_MAKE_VERSION) "
339 automake --version | head -1
340
341 if test "x$ac_cv_lib_pthread_pthread_exit" = "xyes" -a "x$ac_cv_header_pthread_h" = "xyes"; then
342    echo "Threads: pthread lib found."
343 else
344    echo "Threads: no threads (pthread lib not found.)"
345 fi
346
347 if test "$OS" = "IRIX" -o "$OS" = "IRIX64"; then
348     if test "$CXX" = "CC"; then
349         echo "\nRemember to run: sh ../FlightGear/irix-hack.sh!\07\n"
350     fi
351 fi