shutdown existing player when a new file is opened
[uwplayer.git] / configure
1 #!/bin/sh
2
3
4 PREFIX=/usr
5 EPREFIX=$PREFIX
6
7 BINDIR=
8 SBINDIR=
9 LIBDIR=
10 LIBEXECDIR=
11 DATADIR=
12 SYSCONFDIR=
13 SHAREDSTATEDIR=
14 LOCALSTATEDIR=
15 INCLUDEDIR=
16 INFODIR=
17 MANDIR=
18
19 OS=`uname -s`
20 OS_VERSION=`uname -r`
21
22 TEMP_DIR=".tmp-`uname -n`"
23 mkdir -p $TEMP_DIR
24 if [ $? -ne 0 ]; then
25         echo "Cannot create tmp dir"
26         echo "Abort"
27 fi
28 touch $TEMP_DIR/options
29 touch $TEMP_DIR/features
30
31 # features
32
33 # help text
34 printhelp()
35 {
36         echo "Usage: $0 [OPTIONS]..."
37         cat << __EOF__
38 Installation directories:
39   --prefix=PREFIX         path prefix for architecture-independent files
40                           [/usr]
41   --exec-prefix=EPREFIX   path prefix for architecture-dependent files
42                           [PREFIX]
43
44   --bindir=DIR            user executables [EPREFIX/bin]
45   --sbindir=DIR           system admin executables [EPREFIX/sbin]
46   --libexecdir=DIR        program executables [EPREFIX/libexec]
47   --sysconfdir=DIR        system configuration files [PREFIX/etc]
48   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
49   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
50   --libdir=DIR            object code libraries [EPREFIX/lib]
51   --includedir=DIR        C header files [PREFIX/include]
52   --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
53   --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
54   --infodir=DIR           info documentation [DATAROOTDIR/info]
55   --mandir=DIR            man documentation [DATAROOTDIR/man]
56
57 __EOF__
58 }
59
60 #
61 # parse arguments 
62 #
63 for ARG in $@
64 do
65     case "$ARG" in
66                 "--prefix="*)         PREFIX=${ARG#--prefix=} ;;
67                 "--exec-prefix="*)    EPREFIX=${ARG#--exec-prefix=} ;;
68                 "--bindir="*)         BINDIR=${ARG#----bindir=} ;;
69                 "--sbindir="*)        SBINDIR=${ARG#--sbindir=} ;;
70                 "--libdir="*)         LIBDIR=${ARG#--libdir=} ;;
71                 "--libexecdir="*)     LIBEXECDIR=${ARG#--libexecdir=} ;;
72                 "--datadir="*)        DATADIR=${ARG#--datadir=} ;;
73                 "--sysconfdir="*)     SYSCONFDIR=${ARG#--sysconfdir=} ;;
74                 "--sharedstatedir="*) SHAREDSTATEDIR=${ARG#--sharedstatedir=} ;;
75                 "--localstatedir="*)  LOCALSTATEDIR=${ARG#--localstatedir=} ;;
76                 "--includedir="*)     INCLUDEDIR=${ARG#--includedir=} ;;
77                 "--infodir="*)        INFODIR=${ARG#--infodir=} ;;
78                 "--mandir"*)          MANDIR=${ARG#--mandir} ;;
79                 "--help"*) printhelp; exit 1 ;;
80                 "-"*) echo "unknown option: $ARG"; exit 1 ;;
81         esac
82 done
83
84 # set dir variables
85 if [ -z "$BINDIR" ]; then
86         BINDIR=$EPREFIX/bin
87 fi
88 if [ -z "$SBINDIR" ]; then
89         SBINDIR=$EPREFIX/sbin
90 fi
91 if [ -z "$LIBDIR" ]; then
92         LIBDIR=$EPREFIX/lib
93 fi
94 if [ -z "$LIBEXEC" ]; then
95         LIBEXECDIR=$EPREFIX/libexec
96 fi
97 if [ -z "$DATADIR" ]; then
98         DATADIR=$PREFIX/share
99 fi
100 if [ -z "$SYSCONFDIR" ]; then
101         SYSCONFDIR=$PREFIX/etc
102 fi
103 if [ -z "$SHAREDSTATEDIR" ]; then
104         SHAREDSTATEDIR=$PREFIX/com
105 fi
106 if [ -z "$LOCALSTATEDIR" ]; then
107         LOCALSTATEDIR=$PREFIX/var
108 fi
109 if [ -z "$INCLUDEDIR" ]; then
110         INCLUDEDIR=$PREFIX/include
111 fi
112 if [ -z "$INFODIR" ]; then
113         INFODIR=$PREFIX/info
114 fi
115 if [ -z "$MANDIR" ]; then
116         MANDIR=$PREFIX/man
117 fi
118
119 which pkg-config > /dev/null
120 if [ $? -eq 0 ]; then
121     PKG_CONFIG=pkg-config
122 else
123     PKG_CONFIG=false
124 fi
125
126 # Simple uname based platform detection
127 # $PLATFORM is used for platform dependent dependency selection
128 printf "detect platform... "
129 if [ $OS = SunOS ]; then
130     PLATFORM="solaris sunos unix svr4"
131 fi
132 if [ $OS = Linux ]; then
133     PLATFORM="linux unix"
134 fi
135 if [ $OS = FreeBSD ]; then
136     PLATFORM="freebsd bsd unix"
137 fi
138 if [ $OS = Darwin ]; then
139     PLATFORM="macos osx bsd unix"
140 fi
141 echo $OS | grep "MINGW" > /dev/null
142 if [ $? -eq 0 ]; then
143     PLATFORM="windows mingw"
144 fi
145
146 if [ -z "$PLATFORM" ]; then
147     PLATFORM="unix"
148 fi
149
150 for p in $PLATFORM
151 do
152         PLATFORM_NAME=$p
153         break
154 done
155 echo $PLATFORM_NAME
156
157 isplatform()
158 {
159     for p in $PLATFORM
160     do
161         if [ $p = $1 ]; then
162             return 0
163         fi
164     done
165     return 1
166 }
167 isnotplatform()
168 {
169     for p in $PLATFORM
170     do
171         if [ $p = $1 ]; then
172             return 1
173         fi
174     done
175     return 0
176 }
177
178 # generate config.mk and config.h
179 cat > $TEMP_DIR/config.mk << __EOF__
180 #
181 # config.mk generated by configure
182 #
183
184 # general vars
185
186 PREFIX=$PREFIX
187 EPREFIX=$EPREFIX
188
189 BINDIR=$BINDIR
190 SBINDIR=$SBINDIR
191 LIBDIR=$LIBDIR
192 LIBEXECDIR=$LIBEXECDIR
193 DATADIR=$DATADIR
194 SYSCONFDIR=$SYSCONFDIR
195 SHAREDSTATEDIR=$SHAREDSTATEDIR
196 LOCALSTATEDIR=$LOCALSTATEDIR
197 INCLUDEDIR=$INCLUDEDIR
198 INFODIR=$INFODIR
199 MANDIR=$MANDIR
200
201 __EOF__
202
203 echo > $TEMP_DIR/make.mk
204
205 ENV_CFLAGS=$CFLAGS
206 ENV_LDFLAGS=$LDFLAGS
207 ENV_CXXFLAGS=$CXXFLAGS
208
209 # Toolchain detection
210 # this will insert make vars to config.mk
211 . make/toolchain.sh
212
213 # add user specified flags to config.mk
214 echo >> $TEMP_DIR/config.mk
215 if [ ! -z "${ENV_CFLAGS}" ]; then
216     echo "CFLAGS += $ENV_CFLAGS" >> $TEMP_DIR/config.mk
217 fi
218 if [ ! -z "${ENV_CXXFLAGS}" ]; then
219     echo "CXXFLAGS += $ENV_CXXFLAGS" >> $TEMP_DIR/config.mk
220 fi
221 if [ ! -z "${ENV_LDFLAGS}" ]; then
222     echo "LDFLAGS += $ENV_LDFLAGS" >> $TEMP_DIR/config.mk
223 fi
224
225 #
226 # DEPENDENCIES
227 #
228
229 dependency_motif()
230 {
231     printf "checking for motif... "
232     # dependency motif 
233     while true
234     do
235         CFLAGS="$CFLAGS -DUI_MOTIF"    
236         LDFLAGS="$LDFLAGS -lXm -lXt -lX11 -lpthread"    
237                 echo yes
238         return 0
239     done
240         
241         echo no
242         return 1
243 }
244
245 DEPENDENCIES_FAILED=
246 ERROR=0
247 # general dependencies
248 CFLAGS=
249 LDFLAGS=
250 while true
251 do
252     if isnotplatform "unix"; then
253         break
254     fi
255     while true
256     do
257         
258                 cat >> $TEMP_DIR/make.mk << __EOF__
259 OBJ_EXT = o
260 LIB_EXT = a
261 PACKAGE_SCRIPT = package_unix.sh
262
263 __EOF__
264         
265         break
266     done
267     
268     break
269 done
270 while true
271 do
272     while true
273     do
274         
275         LDFLAGS="$LDFLAGS -lpthread"    
276         
277         break
278     done
279     
280     break
281 done
282 while true
283 do
284     if isnotplatform "bsd"; then
285         break
286     fi
287     while true
288     do
289         
290         CFLAGS="$CFLAGS -I/usr/local/include"    
291         LDFLAGS="$LDFLAGS -L/usr/local/lib"    
292         
293         break
294     done
295     
296     break
297 done
298
299 # add general dependency flags to config.mk
300 echo >> $TEMP_DIR/config.mk
301 if [ ! -z "${CFLAGS}" ]; then
302     echo "CFLAGS += $CFLAGS" >> $TEMP_DIR/config.mk
303 fi
304 if [ ! -z "${CXXFLAGS}" ]; then
305     echo "CXXFLAGS += $CXXFLAGS" >> $TEMP_DIR/config.mk
306 fi
307 if [ ! -z "${LDFLAGS}" ]; then
308     echo "LDFLAGS += $LDFLAGS" >> $TEMP_DIR/config.mk
309 fi
310
311 #
312 # OPTION VALUES
313 #
314
315 #
316 # TARGETS
317 #
318 CFLAGS=
319 CXXFLAGS=
320 LDFLAGS=
321
322 # Target: app
323 CFLAGS=
324 LDFLAGS=
325 CXXFLAGS=
326
327 dependency_motif
328 if [ $? -ne 0 ]; then
329         DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED motif "
330         ERROR=1
331 fi
332
333 # Features
334
335
336 echo >> $TEMP_DIR/config.mk
337 if [ ! -z "${CFLAGS}" ]; then
338     echo "APP_CFLAGS  += $CFLAGS" >> $TEMP_DIR/config.mk
339 fi
340 if [ ! -z "${CXXFLAGS}" ]; then
341     echo "APP_CXXFLAGS += $CXXFLAGS" >> $TEMP_DIR/config.mk
342 fi
343 if [ ! -z "${LDFLAGS}" ]; then
344     echo "APP_LDFLAGS += $LDFLAGS" >> $TEMP_DIR/config.mk
345 fi
346
347 if [ $ERROR -ne 0 ]; then
348         echo
349         echo "Error: Unresolved dependencies"
350         echo $DEPENDENCIES_FAILED
351         rm -Rf $TEMP_DIR
352         exit 1
353 fi
354
355 echo "configure finished"
356 echo
357 echo "Build Config:"
358 echo "  PREFIX:    $PREFIX"
359 echo "  TOOLCHAIN: $TOOLCHAIN_NAME"
360 echo
361 cat $TEMP_DIR/config.mk $TEMP_DIR/make.mk > config.mk
362 rm -Rf $TEMP_DIR
363
364