1# Process this file with autoconf to produce a configure script.
2AC_INIT(AUTHORS)
3AC_CANONICAL_TARGET
4
5# The AM_INIT_AUTOMAKE macro tells automake the name and version number
6# of the software package so it can generate rules for building a source
7# archive.
8AM_INIT_AUTOMAKE(fillets-ng, 1.0.1)
9
10# Checks for programs.
11AC_PROG_CXX
12AC_PROG_CC
13AC_PROG_INSTALL
14AC_PROG_RANLIB
15
16###################################################
17# Check for libm
18AC_CHECK_LIB(m, sin, LIBS="$LIBS -lm")
19
20###################################################
21# Test FriBidi
22PKG_CHECK_MODULES(FRIBIDI, fribidi, [have_fribidi="yes"], [have_fribidi="no"])
23AC_SUBST(FRIBIDI_CFLAGS)
24AC_SUBST(FRIBIDI_LIBS)
25if test "x$have_fribidi" = xyes; then
26    AC_DEFINE(HAVE_FRIBIDI)
27fi
28
29###################################################
30# Check for lua and define LUA_CFLAGS and LUA_LIBS
31
32dnl ---- lua check ------------- (stolen from Stratagus)
33AC_ARG_WITH(lua,   [  --with-lua=PFX          Prefix where Lua is installed],
34    LUAPFX="$withval", LUAPFX="")
35if test "x$LUAPFX" != x ; then
36    LUA_CFLAGS="-I$LUAPFX"
37    LUA_LIBS="-L$LUAPFX -llua -llualib"
38else
39dnl Debian, and possibly other systems, include this script...
40    AC_CHECK_PROGS(LUACONFIG, [lua-config lua-config50 lua-config5.0], "")
41    if test "x$LUACONFIG" != x; then
42        LUA_CFLAGS="`[$LUACONFIG --include]`"
43        LUA_LIBS="`[$LUACONFIG --static]`"
44    else dnl ...otherwise, attempt to guess
45        PKG_CHECK_MODULES(LUA, lua, [], [
46            LUA_CFLAGS=""
47            LUA_LIBS=""
48            AC_CHECK_LIB(lua, lua_setfenv, LUA_LIBS="$LUA_LIBS -llua",
49            [AC_CHECK_LIB(lua50, lua_setfenv, LUA_LIBS="$LUA_LIBS -llua50",
50            [AC_CHECK_LIB(lua5.0, lua_setfenv, LUA_LIBS="$LUA_LIBS -llua5.0",
51                [AC_MSG_ERROR([*** Lua5 is required.
52                 Try --with-lua=PREFIX
53                 You can download lua from http://www.lua.org])],
54                 $LUA_LIBS)], $LUA_LIBS)], $LUA_LIBS)
55
56            AC_CHECK_LIB(lualib, luaopen_base, LUA_LIBS="$LUA_LIBS -llualib",
57            [AC_CHECK_LIB(lualib50, luaopen_base, LUA_LIBS="$LUA_LIBS -llualib50",
58            [AC_CHECK_LIB(lualib5.0, luaopen_base, LUA_LIBS="$LUA_LIBS -llualib5.0",
59                [AC_MSG_ERROR([*** Lualib5 is required.
60                 You can download lua from http://www.lua.org])],
61                 $LUA_LIBS)], $LUA_LIBS)], $LUA_LIBS)
62        ])
63   fi
64fi
65AC_SUBST(LUA_CFLAGS)
66AC_SUBST(LUA_LIBS)
67dnl ---- end of lua check ------
68
69
70###################################################
71# Check for SDL, and define SDL_CFLAGS and SDL_LIBS
72SDL_VERSION=1.2.0
73AM_PATH_SDL($SDL_VERSION,
74    :, [AC_MSG_ERROR([*** library SDL-devel version $SDL_VERSION not found!])]
75)
76
77###################################################
78# Checks for C libraries.
79# SDL_mixer
80AC_CHECK_LIB([SDL_mixer], [Mix_OpenAudio],
81             SDL_LIBS="-lSDL_mixer $SDL_LIBS",
82             [AC_MSG_ERROR([*** SDL_mixer-devel library not found!])],
83             $SDL_CFLAGS $SDL_LIBS
84)
85# SDL_image
86AC_CHECK_LIB([SDL_image], [IMG_Load],
87             SDL_LIBS="-lSDL_image $SDL_LIBS",
88             [AC_MSG_ERROR([*** SDL_image-devel library not found!])],
89             $SDL_CFLAGS $SDL_LIBS
90)
91# SDL_ttf
92AC_CHECK_LIB([SDL_ttf], [TTF_OpenFont],
93             SDL_LIBS="-lSDL_ttf $SDL_LIBS",
94             [AC_MSG_ERROR([*** SDL_ttf-devel library not found!])],
95             $SDL_CFLAGS $SDL_LIBS
96)
97
98###################################################
99# Test X11
100X_LIBS=""
101have_x11="no"
102AC_ARG_WITH(X,
103   [AC_HELP_STRING([--with-x],[enable X window manager support [default=detect]])],
104   [with_x11=$withval],[with_x11="maybe"])
105if test "x$with_x11" != "xno" ; then
106   AC_CHECK_LIB([X11], [Xutf8TextListToTextProperty], [with_x11="yes"], [with_x11="no"])
107   if test "x$with_x11" != "xno" ; then
108       OLD_CPPFLAGS="$CPPFLAGS"
109       CPPFLAGS="$CPPFLAGS $SDL_CFLAGS"
110       AC_TRY_COMPILE([
111           #include "SDL.h"
112           #include "SDL_syswm.h"
113           #include <X11/Xutil.h>
114           ], [
115           SDL_SysWMinfo info;
116           info.subsystem = SDL_SYSWM_X11;
117           ], [have_x11="yes"], [have_x11="no"])
118       CPPFLAGS="$OLD_CPPFLAGS"
119       if test "x$have_x11" = xyes; then
120           AC_DEFINE(HAVE_X11)
121           X_LIBS="-lX11"
122       fi
123   fi
124fi
125AC_SUBST(X_LIBS)
126
127###################################################
128# enable C++ language
129AC_LANG(C++)
130
131###################################################
132# Checks for C++ libraries.
133# boost_filesystem, only need for nonPOSIX systems
134
135AC_ARG_WITH(boost, [  --with-boost=PFX        Prefix where boost is installed],
136    BOOSTPFX="$withval", BOOSTPFX="")
137if test "x$BOOSTPFX" != x ; then
138    BOOST_LIBS="-lboost_filesystem"
139    if test "x$BOOSTPFX" != xyes ; then
140        BOOST_CFLAGS="-I$BOOSTPFX"
141        BOOST_LIBS="-L$BOOSTPFX $BOOST_LIBS"
142    fi
143fi
144AM_CONDITIONAL(WITH_BOOST, test "x$BOOSTPFX" != x)
145AC_SUBST(BOOST_CFLAGS)
146AC_SUBST(BOOST_LIBS)
147
148###################################################
149# Check for SMPEG
150AC_CHECK_LIB([smpeg], [SMPEG_new], [have_smpeg="yes"], [have_smpeg="no"],
151             $SDL_LIBS)
152if test "x$have_smpeg" = xyes; then
153    SDL_LIBS="-lsmpeg $SDL_LIBS"
154    AC_DEFINE(HAVE_SMPEG)
155fi
156
157###################################################
158# Check for windres for win32 icon.
159case "$target" in
160    *-mingw32*)
161        AC_CHECK_PROGS(WINDRES, [i386-mingw32msvc-windres i586-mingw32msvc-windres], "")
162        AM_CONDITIONAL(HAVE_WINDRES, test "x$WINDRES" != x)
163        AC_SUBST(WINDRES)
164        have_windres="yes"
165        ;;
166    *)
167        WINDRES=""
168        AM_CONDITIONAL(HAVE_WINDRES, false)
169        have_windres="no"
170        ;;
171esac
172
173###################################################
174# Mung up datadir if need be
175if test "${datadir}" = '${datarootdir}' ; then
176   datadir='${datarootdir}/games/${PACKAGE}'
177fi
178
179###################################################
180# Debug on/off
181AC_ARG_ENABLE(debug,
182              [  --enable-debug          Print debug messages],
183              [case "${enableval}" in
184                 yes) debug=true ;;
185                 no)  debug=false ;;
186                 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
187               esac],[debug=false]
188               )
189CXXFLAGS="$CXXFLAGS -Wall -W -Wpointer-arith -Wcast-qual \
190-Wcast-align -Woverloaded-virtual \
191-Wconversion -Wshadow"
192if test "x$debug" = "xtrue"; then
193    CXXFLAGS="$CXXFLAGS -pedantic -ansi -pipe -g3 -O0"
194fi
195
196###################################################
197AC_OUTPUT([
198           Makefile
199           src/Makefile
200           src/SDL_gfx/Makefile
201           src/gengine/Makefile
202           src/effect/Makefile
203           src/widget/Makefile
204           src/plan/Makefile
205           src/option/Makefile
206           src/state/Makefile
207           src/level/Makefile
208           src/menu/Makefile
209           src/game/Makefile
210           ])
211
212AC_MSG_RESULT([
213
214Fish Fillets NG are now configured.
215   Checked components: X11=$have_x11, WINDRES=$have_windres, FRIBIDI=$have_fribidi, SMPEG=$have_smpeg
216
217You can now run make.
218])
219
220