Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/configure.ac @ 6271

Last change on this file since 6271 was 6271, checked in by bensch, 18 years ago

orxonox/trunk: MUCH better configure-checks

File size: 18.1 KB
Line 
1##########################################################################
2#   orxonox - the future of 3D-vertical-scrollers                        #
3#                                                                        #
4#   Copyright (C) 2004 orx                                               #
5#                                                                        #
6#   This program is free software; you can redistribute it and/or modify #
7#   it under the terms of the GNU General Public License as published by #
8#   the Free Software Foundation; either version 2, or (at your option)  #
9#   any later version.                                                   #
10#                                                                        #
11#   ### File Specific:                                                   #
12#   main-programmer: Benjamin Grauer                                     #
13#   co-programmer: ...                                                   #
14#                                                                        #
15#   This is the main configuration File of autoconf.                     #
16#   Please edit this file only, if you exactly know what you are doing.  #
17#   It is quite fragile, and compiling orxonox on different Platforms    #
18#   is only guarantied, if build with the right config.                  #
19#                                                                        #
20#   be sure to visit us at http://www.orxonox.net                        #
21##########################################################################
22
23#########################
24## AUTOCONF INIT PHASE ##
25#########################
26AC_PREREQ(2.59)
27AC_INIT([orxonox], [0.3.2_alpha], [orxonox-dev at mail.datacore.ch])
28
29## Detect the canonical host and target build environment.
30AC_CANONICAL_BUILD
31AC_CANONICAL_HOST
32AC_CANONICAL_TARGET
33
34AM_INIT_AUTOMAKE
35
36AC_CONFIG_SRCDIR([./src])
37AC_CONFIG_HEADER([config.h])
38AC_CONFIG_MACRO_DIR([m4])
39
40#########################
41## Checks for programs ##
42#########################
43AC_PROG_CXX
44AC_PROG_RANLIB
45AC_HEADER_STDC
46
47## THIS IS OUR DEFAULT-DATA-DIRECTORY
48
49##################################
50## CHECKING  OPTIONAL ARGUMENTS ##
51##################################
52#----------------#
53# Data-Directory #
54#----------------#
55DATA_DIR=$datadir
56echo \$\{prefix\}
57if test $DATA_DIR = \$\{prefix\}/share ; then
58        echo "not given"
59        DATA_DIR=/usr/share
60else
61        echo "given: $DATA_DIR"
62fi
63AC_DEFINE_UNQUOTED([DATADIR], ["$DATA_DIR"],
64                   [Define to the read-only architecture-independent
65                    data directory.])
66
67#-----------------#
68# shared-lib-path #
69#-----------------#
70SHARED_LIB_PATH=no
71AC_MSG_CHECKING([shared lib path])
72AC_ARG_WITH([shared-lib-path],
73        AS_HELP_STRING(--with-shared-lib-path,Tells the executable, where to look for the shared libraries.),
74         SHARED_LIB_PATH=$withval)
75if test x$SHARED_LIB_PATH != xno; then
76        echo "set to $SHARED_LIB_PATH"
77else
78        echo "no"
79fi
80
81
82#-----------------#
83# DEBUG-statement #
84#-----------------#
85DEBUG=no
86AC_MSG_CHECKING([if DEBUG-mode should be enabled])
87AC_ARG_ENABLE([debug],
88        AS_HELP_STRING(--enable-debug,compiles in debug mode. Lots of debug info about the game.),
89         DEBUG=$enableval)
90
91if test x$DEBUG = xno; then
92        echo "no"
93        echo " -> Setting debuglevel to 4. (orxonox is still in Development. It really is needed."
94        DEBUG=4
95elif test x$DEBUG = xyes; then
96        echo "yes"
97        echo " -> Setting debuglevel to 4. HARD DEBUG MODE!!."
98        DEBUG=4
99else
100        echo "yes: setting debuglevel to to $DEBUG"
101fi
102AC_DEFINE_UNQUOTED(DEBUG, $DEBUG, [in which debug mode we are])
103AC_SUBST(DEBUG)
104
105#---------------#
106# Modular Debug #
107#---------------#
108MODULAR_DEBUG=yes
109AC_MSG_CHECKING([if Modular-DEBUG-mode should be ebabled])
110AC_ARG_ENABLE([modular-debug],
111        AS_HELP_STRING(--disable-modular-debug,compiles in modular-debug mode, that logs differently on the many modules of orxonox.),
112         MODULAR_DEBUG=$enableval)
113
114if test x$MODULAR_DEBUG = xno; then
115        echo "no"
116elif test x$MODULAR_DEBUG = xyes; then
117        echo "yes"
118        AC_DEFINE_UNQUOTED(MODULAR_DEBUG, 1, [if Modular-DUBUG mode is enabled])
119fi
120
121#--------------#
122# GTK-disabled #
123#--------------#
124AC_MSG_CHECKING([if gtk should be enabled])
125AC_ARG_ENABLE([gtk],
126        AS_HELP_STRING(--disable-gtk,Prevents GTK from being loaded), [def_gtk=no], [def_gtk=yes])
127if test x$def_gtk = xyes; then
128  echo "yes"
129fi
130if test x$def_gtk = xno; then
131  echo "no"
132fi
133
134#------------------#
135# libCurl-disabled #
136#------------------#
137AC_MSG_CHECKING([if libcURL should be enabled])
138AC_ARG_ENABLE([curl],
139        AS_HELP_STRING(--disable-curl,Prevents libcURL from being loaded), [def_curl=no], [def_curl=yes])
140if test x$def_curl = xyes; then
141  echo "yes"
142fi
143if test x$def_curl = xno; then
144  echo "no"
145fi
146
147#-------------------#
148# SubProject-enable #
149#-------------------#
150def_sub_projects=no
151AC_MSG_CHECKING([if the SubProjects should be built])
152AC_ARG_WITH([sub-projects],
153        AS_HELP_STRING(--with-sub-projects,also builds the subProjects while make from srcdir), [def_sub_projects=yes])
154if test x$def_sub_projects = xyes; then
155  echo "yes"
156fi
157if test x$def_sub_projects = xno; then
158  echo "no"
159fi
160AM_CONDITIONAL(SUB_PROJECTS, test x$def_sub_projects = xyes)
161
162#-------------------#
163# Profiling Enabled #
164#-------------------#
165def_profiling=no
166AC_MSG_CHECKING([if Profiling should be enabled])
167AC_ARG_ENABLE([profile],
168        AS_HELP_STRING(--enable-profile,builds orxonox with profiling support), [def_profiling=yes])
169if test x$def_profiling = xyes; then
170  echo "yes"
171  CXXFLAGS="$CXXFLAGS -pg"
172fi
173if test x$def_profiling = xno; then
174  echo "no"
175fi
176
177#----------------#
178# efence Enabled #
179#----------------#
180def_efence=no
181AC_MSG_CHECKING([if efence should be enabled])
182AC_ARG_ENABLE([efence],
183        AS_HELP_STRING(--enable-efence,builds orxonox with efence support), [def_efence=yes])
184if test x$def_efence = xyes; then
185  echo "yes"
186fi
187if test x$def_efence = xno; then
188  echo "no"
189fi
190
191#----------------------#
192# Documentation-enable #
193#----------------------#
194def_documentation=no
195AC_MSG_CHECKING([if the Documentation should be build by default])
196AC_ARG_ENABLE([documentation],
197        AS_HELP_STRING(--enable-documentation,also builds the sDocumentation while make from srcdir), [def_documentation=yes])
198if test x$def_documentation = xyes; then
199  echo "yes"
200fi
201if test x$def_documentation = xno; then
202  echo "no"
203fi
204AM_CONDITIONAL(DOCUMENTATION, test x$def_documentation = xyes)
205
206
207
208#---------------------------#
209# WITH TARDIS (convenience) #
210#---------------------------#
211def_tardis=no
212GTKPATH=""
213AC_MSG_CHECKING([convenience flag for working at the taris in the ETH zurich])
214AC_ARG_WITH([tardis],
215        AS_HELP_STRING(--with-tardis,sets all the necesary environment flags for linux-TARDIS boxes at the ETH Zurich), [def_tardis=yes])
216if test x$def_tardis = xyes; then
217  ARCH=i686-debian-linux3.1
218   ## GAMELIBS
219  PREFIX=/usr/pack/gamelibs-1.0-to
220  CPPFLAGS="${CPPFLAGS} -I${PREFIX}/include"
221  LDFLAGS="${LDFLAGS} -L$PREFIX/${ARCH}/lib -Wl,-rpath -Wl,${PREFIX}/${ARCH}/lib"
222  ## GTK
223  GTKPREFIX=/usr/pack/gtk-2.8.3-mo
224  GTKPATH=${GTKPREFIX}/${ARCH}/bin
225  CPPFLAGS="${CPPFLAGS} -I${GTKPREFIX}/include"
226  LDFLAGS="${LDFLAGS} -L${GTKPREFIX}/${ARCH}/lib -Wl,-rpath -Wl,${GTKPREFIX}/${ARCH}/lib"
227  echo "yes"
228fi
229if test x$def_tardis = xno; then
230  echo "no"
231fi
232
233#######################
234## PROGRAMM CHECKING ##
235## 3. party Programs ##
236#######################
237
238#----------------------#
239# checking for Doxygen #
240#----------------------#
241AC_PATH_PROG(DOXYGEN, doxygen)
242AM_CONDITIONAL(DOXYGEN, test $DOXYGEN)
243
244#--------------------#
245# checking for gprof #
246#--------------------#
247AC_PATH_PROG(GPROF, gprof)
248
249#-------------------------#
250# checking for pkg-config #
251#-------------------------#
252if test x$def_gtk = xyes; then
253 if test x${GTKPATH} != x; then
254   AC_PATH_PROG([PKG_CONFIG], [pkg-config],[], $GTKPATH )
255 else
256   AC_PATH_PROG(PKG_CONFIG, pkg-config )
257 fi
258fi
259
260
261#########################
262## CHECKING FOR SYSTEM ##
263#########################
264## here the system is checked, and openGL is included
265## also checking for SDL on differen Systems
266
267AC_MSG_CHECKING([for System])
268## checking for openGL-environment and other sys-specific parameters
269case "$target" in
270
271###########
272#---------#
273# WINDOWS #
274#---------#
275###########
276  *-*-mingw32*)
277echo "mingw-WINDOWS detected"
278
279CPPFLAGS="-I/usr/include -I/mingw/include $CPPFLAGS"
280
281    mingw="yes"
282    MSBITFIELDS="-mms-bitfields"
283    MWINDOWS="-mwindows"
284
285#--------#
286# MIN-GW #
287#--------#
288# checking for mingw32
289    AC_CHECK_LIB([mingw32], [main], FOUND_mingw32=yes)
290    if test x$FOUND_mingw32 = xyes; then
291        LIBS="$LIBS -lmingw32"
292    fi
293
294#---------------#
295# open-GL (win) #
296#---------------#
297# checking gl header
298   AC_CHECK_HEADERS(GL/gl.h ,,
299      [AC_MSG_ERROR([cannot find opengl headers])])
300#   checking for Windows openGl library
301    AC_CHECK_LIB([opengl32], [main], [FOUND_GL=yes; LIBS="$LIBS -lopengl32"])
302    if test x$FOUND_GL != xyes ; then
303         echo "------------------"
304         echo "opengl not found."
305         echo "please install the opengl package which can be found at http://www.opengl.org"
306         echo "------------------"
307         exit -1
308    fi
309
310# cheking for GLU-header
311    AC_CHECK_HEADERS([GL/glu.h] ,,
312      [AC_MSG_ERROR([cannot find opengl headers]) ])
313
314# checking for libGLU
315    AC_CHECK_LIB([glu32], [main], [FOUND_GLU=yes; LIBS="$LIBS -lGLU32"])
316    if test x$FOUND_GLU != xyes ; then
317         echo "------------------"
318         echo "GLU library not found."
319         echo "please install the GLU library, that should come with openGL, which can be found at http://www.opengl.org"
320         echo "------------------"
321         exit -1
322    fi
323
324# checking glew header
325   AC_CHECK_HEADERS(GL/glew.h ,,
326      [AC_MSG_ERROR([cannot find opengl extension wrangler headers]) ])
327#   checking for Windows glew library
328    AC_CHECK_LIB([glew32], [main], [FOUND_GLEW=yes; LIBS="$LIBS -lglew32"])
329    if test x$FOUND_GLEW != xyes ; then
330         echo "------------------"
331         echo "opengl extension wrangler not found."
332         echo "please install the glew package which can be found at http://glew.sourceforge.net"
333         echo "------------------"
334         exit -1
335    fi
336
337#--------#
338# openAL #
339#--------#
340# checking for openAL-headers
341  AC_CHECK_HEADERS([AL/al.h] ,,
342      [AC_MSG_ERROR([cannot find openAL header.])])
343# checking for openAL-lib
344  AC_CHECK_LIB([OpenAL32], [main], [FOUND_OPENAL=yes; LIBS="$LIBS -lOpenAL32"])
345  AC_CHECK_LIB([ALut], [main], [FOUND_ALUT=yes; LIBS="-lALut $LIBS"])
346     if test x$FOUND_OPENAL != xyes ; then
347        echo "------------------"
348        echo "openal library not found."
349        echo "please install the openal library, which can be found at http://www.openal.org"
350        echo "------------------"
351        exit -1
352     fi
353
354
355#-----------#
356# SDL(win) #
357#-----------#
358# checking for SDL-headers
359    AC_CHECK_HEADERS([SDL/SDL.h] ,,
360      [AC_MSG_ERROR([cannot find SDL headers]) ])
361
362#checking for libSDL
363    AC_CHECK_LIB([sdlmain], [main], [FOUND_sdlmain=yes; LIBS="$LIBS -lsdlmain"])
364    if test x$FOUND_sdlmain != xyes ; then
365        echo "------------------"
366        echo "SDL library not found."
367        echo "please install the SDL library, which can be found at http://www.libsdl.org"
368        echo "------------------"
369        exit 1
370    fi
371    AC_CHECK_LIB([sdl], [main], [FOUND_SDL=yes; LIBS="$LIBS -lsdl"])
372    if test x$FOUND_SDL != xyes ; then
373        echo "------------------"
374        echo "SDL library not found."
375        echo "please install the SDL library, which can be found at http://www.libsdl.org"
376        echo "------------------"
377        exit -1
378    fi
379
380  ;;
381
382#########
383#-------#
384# LINUX #
385#-------#
386#########
387 *-*-linux*)
388echo "Linux detected"
389
390 Linux="yes"
391
392##CPPFLAGS="-I/usr/include $CPPFLAGS"
393##LDFLAGS="-L/usr/lib $LDFLAGS"
394if test x$SHARED_LIB_PATH != xno; then
395        echo "setting new LDFLAGS with $SHARED_LIB_PATH"
396        LDFLAGS="-Wl,-rpath,$SHARED_LIB_PATH -L$SHARED_LIB_PATH $LDFLAGS"
397fi
398
399#--------#
400# openGL #
401#--------#
402AX_CHECK_REQUIRED_HEADER_LIB([GL/gl.h], [GL], [main],,, [http://www.opengl.org])
403AX_CHECK_REQUIRED_HEADER_LIB([GL/glu.h], [GLU], [main],,, [http://www.opengl.org])
404AX_CHECK_REQUIRED_HEADER_LIB([GL/glew.h], [GLEW], [main],,, [http://glew.sourceforge.net])
405
406#--------#
407# openAL #
408#--------#
409
410AX_CHECK_REQUIRED_HEADER_LIB([AL/al.h], [openal], [main],,, [http://www.openal.org])
411AX_CHECK_HEADER_LIB([AL/alut.h], [alut], [main],,, [http://www.openal.org])
412
413#-----#
414# SDL #
415#-----#
416# checking for SDL
417  AC_MSG_CHECKING([for SDL-version])
418  SDL_VERSION=`sdl-config --version`
419  echo $SDL_VERSION
420   CPPFLAGS="$CPPFLAGS `sdl-config --cflags`"
421
422  AX_CHECK_REQUIRED_HEADER_LIB([SDL.h SDL/SDL.h], [SDL], [main],,, [http://www.libsdl.org])
423
424    ;;
425
426#############
427#-----------#
428# MAC -OS X #
429#-----------#
430#############
431 *darwin*)
432 echo "OS X detected"
433
434 osX="yes"
435
436 CPPFLAGS="-I/sw/include -I/sw/include $CPPFLAGS"
437 LDFLAGS="$LDFLAGS -L/sw/lib"
438# checking gl header
439   AC_CHECK_HEADERS([OpenGL/gl.h] ,,
440      [AC_MSG_ERROR([cannot find opengl headers]) ])
441# cheking for GLU-header
442    AC_CHECK_HEADERS([OpenGL/glu.h] ,,
443      [AC_MSG_ERROR([cannot find opengl headers]) ])
444
445   LIBS="$LIBS -framework OpenGL"
446
447
448
449# checking for GLEW-headers
450   AC_CHECK_HEADERS([GL/glew.h] ,,
451      [AC_MSG_ERROR([cannot find glew headers]) ])
452# checking for GLEW-lib
453  AC_CHECK_LIB([GLEW], [main], [FOUND_GLEW=yes; LIBS="$LIBS -lGLEW"])
454   if test x$FOUND_GLEW != xyes ; then
455         echo "------------------"
456         echo "glew not found."
457         echo "please install the glew package which can be found at http://glew.sourceforge.net"
458         echo "------------------"
459         exit -1
460   fi
461
462
463   AC_CHECK_HEADERS([OpenAL/al.h] ,,
464      [AC_MSG_ERROR([cannot find opengl headers]) ])
465  HAVE_OPENAL=yes
466  LIBS="$LIBS -framework OpenAL"
467
468
469## SDL-check
470       SDL_CFLAGS=`sdl-config --cflags`
471       SDL_LIBS=`sdl-config --libs`
472       CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
473       LIBS="$LIBS $SDL_LIBS"
474   AC_CHECK_HEADERS([SDL/SDL.h] ,,
475      [AC_MSG_ERROR([cannot find SDL headers]) ])
476   HAVE_SDL=yes
477#   LIBS="$LIBS -framework SDL"
478
479# checking for SDL-headers
480#    AC_CHECK_HEADERS(SDL/SDL.h ,,
481#      [AC_MSG_ERROR([cannot find SDL headers]) ])
482
483## checking for SDL
484#    SDL_VERSION=1.2.7
485#    AM_PATH_SDL($SDL_VERSION,
486#      :,
487#      AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!])
488#      )
489
490
491    ;;
492
493  *)
494    ;;
495esac
496
497AC_SUBST(MSBITFIELDS)
498
499###################################
500## CHECKING FOR HEADERS AND LIBS ##
501###################################
502
503#---------#
504# SDL_ttf #
505#---------#
506AX_CHECK_REQUIRED_HEADER_LIB([SDL_ttf.h SDL/SDL_ttf.h], [SDL_ttf], [TTF_OpenFont],,, [http://www.libsdl.org/projects/SDL_ttf])
507#-----------#
508# SDL_Image #
509#-----------#
510AX_CHECK_REQUIRED_HEADER_LIB([SDL_image.h SDL/SDL_image.h], [SDL_image], [main],,, [http://www.libsdl.org/projects/SDL_image])
511#---------#
512# SDL_Net #
513#---------#
514AX_CHECK_REQUIRED_HEADER_LIB([SDL_net.h SDL/SDL_net.h], [SDL_net], [main],,, [http://www.libsdl.org/projects/SDL_net])
515
516#-----#
517# ogg #
518#-----#
519AX_CHECK_REQUIRED_HEADER_LIB([ogg/ogg.h], [ogg], [main],,, [http://www.xiph.org/ogg/vorbis/index.html])
520#--------#
521# vorbis #
522#--------#
523AX_CHECK_REQUIRED_HEADER_LIB([vorbis/codec.h], [vorbis], [main],,, [http://www.xiph.org/ogg/vorbis/index.html])
524AX_CHECK_REQUIRED_HEADER_LIB([vorbis/vorbisfile.h], [vorbisfile], [main],,, [http://www.xiph.org/ogg/vorbis/index.html])
525
526#---------#
527# libcURL #
528#---------#
529AX_CHECK_HEADER_LIB([curl/curl.h], [curl], [main], [
530 have_curl=yes
531  CURL_LIBS=`curl-config --libs`
532  CURLCFLAGS=`curl-config --cflags`
533  AC_DEFINE_UNQUOTED(HAVE_CURL, 1, [if we have CURL]) ]
534  ,, [http://curl.haxx.se/])
535
536AC_SUBST(CURL_LIBS)
537AC_SUBST(CURL_CFLAGS)
538AM_CONDITIONAL(HAVE_CURL, test "x$have_curl" = "xyes")
539
540#--------#
541# efence #
542#--------#
543if test x$def_efence = xyes ; then
544  AC_CHECK_LIB([efence], [main], [FOUND_efence=yes; LIBS="$LIBS -lefence"])
545   if test x$FOUND_efence != xyes ; then
546     echo "efence was requested, but is not installed!! going on"
547   fi
548
549fi
550
551#-----#
552# GTK #
553#-----#
554if test x$def_gtk = xyes; then
555#PKG_CHECK_MODULES(GTK2, gtk+-2.0 >= 2.0.3 gthread-2.0 >= 2.0.3, have_gtk2=yes, have_gtk2=no)
556        AC_MSG_CHECKING([for gtk2.0])
557        if `$PKG_CONFIG --exists gtk+-2.0`; then
558                echo "yes"
559                have_gtk2=yes
560                GTK2_LIBS=`$PKG_CONFIG --libs gtk+-2.0`
561                GTK2_CFLAGS=`$PKG_CONFIG --cflags gtk+-2.0`
562                AC_DEFINE_UNQUOTED(HAVE_GTK2, 1, [if we have GTK2])
563                if test $DEBUG -ge 3; then
564                 echo "cflags: $GTK2_CFLAGS"
565                 echo "libs: $GTK2_LIBS"
566                fi
567        else
568                echo "no"
569        fi
570
571fi
572AC_SUBST(GTK2_LIBS)
573AC_SUBST(GTK2_CFLAGS)
574AM_CONDITIONAL(HAVE_GTK2, test x$have_gtk2 = xyes)
575
576
577# FIXME: Replace `main' with a function in `-lm':
578 AC_CHECK_LIB([m], [main])
579
580
581# Checks for header files.
582AC_HEADER_STDC
583AC_CHECK_HEADERS([stdlib.h string.h])
584
585# Checks for typedefs, structures, and compiler characteristics.
586AC_HEADER_STDBOOL
587
588# Checks for library functions.
589AC_FUNC_MALLOC
590AC_CHECK_FUNCS([bzero sqrt])
591
592######################
593## OUTPUT CONFIGURE ##
594######################
595AC_CONFIG_FILES([Makefile
596                 src/Makefile
597                 src/lib/Makefile
598                 src/lib/graphics/Makefile
599                 src/lib/graphics/importer/Makefile
600                 src/lib/graphics/spatial_separation/Makefile
601                 src/lib/sound/Makefile
602                 src/lib/event/Makefile
603                 src/lib/physics/Makefile
604                 src/lib/particles/Makefile
605                 src/lib/collision_detection/Makefile
606                 src/lib/network/Makefile
607                 src/lib/shell/Makefile
608                 src/lib/gui/Makefile
609                 src/lib/gui/gtk_gui/Makefile
610                 src/lib/gui/gl_gui/Makefile
611                 src/lib/parser/Makefile
612                 src/lib/parser/tinyxml/Makefile
613                 src/lib/parser/ini_parser/Makefile
614                 src/util/Makefile
615                 src/subprojects/Makefile
616                 src/subprojects/testmain/Makefile
617                 src/subprojects/importer/Makefile
618                 src/subprojects/particles/Makefile
619                 src/subprojects/collision_detection/Makefile
620                 src/subprojects/network/Makefile
621                 ])
622
623AC_OUTPUT
Note: See TracBrowser for help on using the repository browser.