Include and link physfs properly.
[tuxanci.git] / configure
blobd7eb8636e12d988512f01cc1f1b724a8a5c9133e
1 #!/bin/sh
3 # Go to the root
4 cd ${0%%/*}
5 ROOTDIR=`pwd`
7 ###
8 # Defaults
9 ###
10 VERSION=0.2.99
11 PREFIX=/usr/local
12 PREFIX_BIN=${PREFIX}/bin
13 PREFIX_LIB=${PREFIX}/lib/tuxanci
14 PREFIX_DATA=${PREFIX}/share/tuxanci
15 PREFIX_DOC=${PREFIX}/share/doc/tuxanci-${VERSION}
16 PREFIX_CONF=/etc
17 PREFIX_LOCALE=${PREFIX}/share/locale
18 PREFIX_FONT=${PREFIX_DATA}/font
19 DESTDIR=
20 DEBUG=1
21 SERVER=0
22 CLIENT=1
23 AUDIO=1
24 OPENGL=1
25 GETTEXT=1
27 ###
28 # Predefined functions
29 ###
30 help() {
31 echo "Supported options are:"
32 echo "--help print this help and exit"
33 echo "--prefix=<path> final path for the game [/usr/local]"
34 echo "--prefix-bin=<path> path for binaries [\$prefix/bin]"
35 echo "--prefix-lib=<path> path for the modules [\$prefix/lib/tuxanci]"
36 echo "--prefix-data=<path> data path [\$prefix/share/tuxanci]"
37 echo "--prefix-doc=<path> documentation path [\$prefix/share/doc/tuxanci-${VERSION}]"
38 echo "--prefix-conf=<path> configuration files path [/etc]"
39 echo "--prefix-locale=<path> locale path [\$prefix/share/locale]"
40 echo "--prefix-font=<path> fonts path [\$prefix/share/tuxanci/font]"
41 echo "--destdir=<path> useful option for packagers"
42 echo ""
43 echo "--disable-debug enables optimization and quiet output [default: no]"
44 echo "--enable-server build server [default: no]"
45 echo "--enable-client build client [default: yes]"
46 echo "--enable-audio build with audio facility [default: yes]"
47 echo "--enable-opengl build with 3D acceleration [default: yes]"
48 echo ""
49 echo "--without-gettext English-only version [default: no]"
52 check_pkg() {
53 lib="$1"
54 [ "$2" ] && lib="${lib} $2"
55 [ "$3" ] && lib="${lib} $3"
56 if [ "`pkg-config --exists --print-errors "${lib}" | grep "No package '$1' found"`" != "" ]; then
57 echo "no"
58 echo "Error: Cannot find ${lib}"
59 exit 1
60 else
61 echo "yes"
65 cmpver() {
67 # 0: equal
68 # 1: newer
69 # 2: older
72 v1=`echo $1 | sed -e "s/\./ /g"`
73 v2=`echo $2 | sed -e "s/\./ /g"`
75 # major
76 j1=`echo $v1 | awk '{ print $1 }'`
77 j2=`echo $v2 | awk '{ print $1 }'`
78 if [ $j1 -lt $j2 ]; then
79 echo 1 && exit
80 elif [ $j1 -gt $j2 ]; then
81 echo 2 && exit
82 fi
84 # minor
85 n1=`echo $v1 | awk '{ print $2 }'`
86 n2=`echo $v2 | awk '{ print $2 }'`
87 if [ $n1 -lt $n2 ]; then
88 echo 1 && exit
89 elif [ $n1 -gt $n2 ]; then
90 echo 2 && exit
93 # patch
94 p1=`echo $v1 | awk '{ print $3 }'`
95 p2=`echo $v2 | awk '{ print $3 }'`
96 if [ $p1 -lt $p2 ]; then
97 echo 1 && exit
98 elif [ $p1 -gt $p2 ]; then
99 echo 2 && exit
102 # default
103 echo 0 && exit
107 # Parse options
109 echo "==> Parsing options"
111 while [ $# -gt 0 ]; do
112 case $1 in
113 --help)
114 help
115 exit 0
117 --prefix=*)
118 PREFIX=`echo $1 | sed 's/--prefix=//'`
120 --prefix-bin=*)
121 PREFIX_BIN=`echo $1 | sed 's/--prefix-bin=//'`
123 --prefix-data=*)
124 PREFIX=`echo $1 | sed 's/--prefix-data=//'`
126 --prefix-doc=*)
127 PREFIX=`echo $1 | sed 's/--prefix-doc=//'`
129 --destdir=*)
130 DESTDIR=`echo $1 | sed 's/--destdir=//'`
132 --enable-*)
133 case ${1#--enable-} in
134 debug)
135 DEBUG=1
137 server)
138 SERVER=1
140 client)
141 CLIENT=1
143 audio)
144 AUDIO=1
146 opengl)
147 OPENGL=1
150 echo "Error: unknown option --enable-$1"
151 help
152 exit 1
154 esac
156 --disable-*)
157 case ${1#--disable-} in
158 debug)
159 DEBUG=0
161 server)
162 SERVER=0
164 client)
165 CLIENT=0
167 audio)
168 AUDIO=0
170 opengl)
171 OPENGL=0
174 echo "Error: unknown option --disable-$1"
175 help
176 exit 1
178 esac
180 --with-*)
181 case ${1#--with-} in
182 gettext)
183 GETTEXT=1
186 echo "Error: unknown option --with-$1"
187 help
188 exit 1
190 esac
192 --without-*)
193 case ${1#--with-} in
194 gettext)
195 GETTEXT=0
198 echo "Error: unknown option --without-$1"
199 help
200 exit 1
202 esac
205 echo "Error: unknown option $1"
206 help
207 exit 1
209 esac
210 shift
211 done
215 # Check for cmake dependency
217 printf "==> Checking for cmake >= 2.6.0... "
218 cmakebin=`which cmake`
219 if [ "${cmakebin}" == "" ]; then
220 echo "no"
221 echo "Error: Cannot find cmake"
222 exit 1
223 else
224 cmakeversion=`${cmakebin} --version | sed -e "s/-patch//" | awk '{ print $3, $4 }' | sed -e "s/ /./"`
225 cmakestatus=`cmpver "2.6.0" ${cmakeversion}`
226 if [ ${cmakestatus} == 1 ] || [ ${cmakestatus} == 0 ]; then
227 echo "yes"
228 else
229 echo "no"
230 echo "Error: Cannot find cmake"
231 exit 1
237 # Run cmake for client
239 if [ ${CLIENT} == 1 ]; then
240 echo "==> Running cmake stage for client and creating subMakefile"
241 rm -rf build_client/
242 mkdir build_client/
243 cd build_client/
244 cmakeopts="-DBUILD_SERVER=0"
245 # debug
246 if [ ${DEBUG} == 1 ]; then cmakeopts="${cmakeopts} -DENABLE_DEBUG=1"
247 else cmakeopts="${cmakeopts} -DENABLE_DEBUG=0"; fi
248 # audio
249 if [ ${AUDIO} == 1 ]; then cmakeopts="${cmakeopts} -DWITH_AUDIO=1"
250 else cmakeopts="${cmakeopts} -DWITH_AUDIO=0"; fi
251 # opengl
252 if [ ${OPENGL} == 1 ]; then cmakeopts="${cmakeopts} -DWITH_OPENGL=1"
253 else cmakeopts="${cmakeopts} -DWITH_OPENGL=0"; fi
254 # gettext
255 if [ ${GETTEXT} == 1 ]; then cmakeopts="${cmakeopts} -DWITH_NLS=1"
256 else cmakeopts="${cmakeopts} -DWITH_NLS=0"; fi
258 cmakecmd="cmake .. ${cmakeopts}"
259 echo "Executing: ${cmakecmd}"
260 ${cmakecmd} > cmake.log
264 echo "==> Creating main Makefile"
265 cat > Makefile <<EOF
268 echo "==> Configuring successfully finished!"