source: roaraudio/build-system/configure.lib @ 5786:c692f5468711

Last change on this file since 5786:c692f5468711 was 5780:c2625e237753, checked in by phi, 11 years ago

yet another win fix: update TF_E

File size: 9.7 KB
Line 
1#!/bin/false
2# vim:ft=sh
3
4#     Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2008-2012
5#
6# This file is part of roard a part of RoarAudio,
7# a cross-platform sound system for both, home and professional use.
8# See README for details.
9#
10# This file is free software; you can redistribute it and/or modify
11# it under the terms of the GNU General Public License version 3
12# as published by the Free Software Foundation.
13#
14# RoarAudio is distributed in the hope that it will be useful,
15# but WITHOUT ANY WARRANTY; without even the implied warranty of
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17# GNU General Public License for more details.
18#
19# You should have received a copy of the GNU General Public License
20# along with this software; see the file COPYING.  If not, write to
21# the Free Software Foundation, 51 Franklin Street, Fifth Floor,
22# Boston, MA 02110-1301, USA.
23
24# some very basic string functions:
25to_upper() {
26 tr 'a-z' 'A-Z'
27}
28
29to_escaped() {
30 tr 'A-Z/.+-' 'a-z____'
31}
32
33write_help() {
34 echo 'COMMON OPTIONS:'
35 echo
36 echo '--ldpath DIR                - Add DIR to (compile time) search list for libs'
37 echo '--incpath DIR               - Add DIR to search list for headers'
38 echo '--addpath DIR               - Add DIR/lib to lib, DIR/include to header search list'
39 echo '--root DIR                  - The same as "--addpath DIR --prefix DIR"'
40 echo
41 echo '--cflags FLAGS              - Sets additional compiler flags (default: '"$CFLAGS"')'
42 echo '--ldflags FLAGS             - Sets additional linker flags (default: '"$LDFLAGS"')'
43 echo '--opti LEVEL                - Sets optimizer level (default: '"$OPTI_O"')'
44 echo '--link-deps MODE            - Model for linking dependencies: auto, full or indirect'
45 echo
46 echo '--cc CC                     - Set name of C compiler (CC) to CC'
47 echo '--ranlib RANLIB             - Set name of ranlib (RANLIB) to RANLIB'
48 echo
49 echo '--root-uid UID              - Sets User ID (UID) of the root user/superuser'
50 echo
51 echo '--no-LIB                    - disable library LIB'
52 echo '--maybe-LIB                 - autodetect library LIB (default)'
53 echo
54 echo '--prefix DIR                - Set general prefix (default: '"$PREFIX"')'
55 echo '--prefix-bin DIR            - Set prefix for binaries (default: $PREFIX/bin)'
56 echo '--prefix-lib DIR            - Set prefix for libraries (default: $PREFIX/libs)'
57 echo '--prefix-inc DIR            - Set prefix for include files (default: $PREFIX/include)'
58 echo '--prefix-man DIR            - Set prefix for manpages (default: $PREFIX/man)'
59 echo '--prefix-pc DIR             - Set prefix for pkg-config (default: $PREFIX_LIB/pkgconfig)'
60 echo
61 echo '--without-beta              - Disable beta code'
62 echo '--without-experimental      - Disable experimental code'
63 echo
64 echo '--distribution-version-string STRING'
65 echo '                            - Sets distribution part of version string'
66 echo
67 echo '--mmcu MMCU                 - Sets -mmcu compiler/linker option'
68 echo '--target-win32              - Disable everything useful'
69 echo '--exec-helper HELPER        - Exec all test programms using this command (HELPER $cmd $args)'
70 echo '                              use '\''--exec-helper wine'\'' when building win32 binaries'
71 echo
72}
73
74parse_option() {
75 # Options are given via $n.
76 # we can not shift used ones so we tell the caller
77 # how many to shift: shift $SHIFT_COUNT
78 SHIFT_COUNT=0
79 # we also tell if the option was handelt.
80 HANDLED=true # will be reset if not.
81
82 case "$1" in
83  '--ldpath')
84   LDPATH="$LDPATH -L$2"
85   SHIFT_COUNT=1
86  ;;
87  '--incpath')
88   INCPATH="$INCPATH -I$2"
89   SHIFT_COUNT=1
90  ;;
91  '--addpath')
92   LDPATH="$LDPATH -L$2/lib/"
93   INCPATH="$INCPATH -I$2/include/"
94   SHIFT_COUNT=1
95  ;;
96  '--root')
97   LDPATH="$LDPATH -L$2/lib/"
98   INCPATH="$INCPATH -I$2/include/"
99   PREFIX="$2"
100   SHIFT_COUNT=1
101  ;;
102  '--cflags')
103   CFLAGS="$2"
104   SHIFT_COUNT=1
105  ;;
106  '--ldflags')
107   LDFLAGS="$2"
108   SHIFT_COUNT=1
109  ;;
110  '--opti')
111   OPTI_O="$2"
112   SHIFT_COUNT=1
113  ;;
114  '--link-deps')
115   LINK_DEPS="$2"
116   SHIFT_COUNT=1
117  ;;
118  '--cc')
119   CC="$2"
120   SHIFT_COUNT=1
121  ;;
122  '--ranlib')
123   RANLIB="$2"
124   SHIFT_COUNT=1
125  ;;
126  '--root-uid')
127   ROOT_UID="$2"
128   SHIFT_COUNT=1
129  ;;
130  '--no-'*)
131   lib=$(echo "$1" | sed 's/^--no-//' | to_escaped)
132   eval no_lib_$lib=true
133  ;;
134  '--maybe-'*)
135   lib=$(echo "$1" | sed 's/^--maybe-//' | to_escaped)
136   eval unset no_lib_$lib
137  ;;
138  '--distribution-version-string')
139   DISTRIBUTION_VERSION_STRING="$2"
140   SHIFT_COUNT=1
141  ;;
142  '--without-beta')
143   BETA=false
144   EXPERIMENTAL=false
145  ;;
146  '--without-experimental')
147   EXPERIMENTAL=false
148  ;;
149  '--prefix')
150   PREFIX="$2"
151   SHIFT_COUNT=1
152  ;;
153  '--prefix-bin')
154   PREFIX_BIN="$2"
155   SHIFT_COUNT=1
156  ;;
157  '--prefix-lib')
158   PREFIX_LIB="$2"
159   SHIFT_COUNT=1
160  ;;
161  '--prefix-inc')
162   PREFIX_INC="$2"
163   SHIFT_COUNT=1
164  ;;
165  '--prefix-man')
166   PREFIX_MAN="$2"
167   SHIFT_COUNT=1
168  ;;
169  '--prefix-pc')
170   PREFIX_PC="$2"
171   SHIFT_COUNT=1
172  ;;
173####################################
174# autof* options block:
175  '--prefix='*)
176   PREFIX=$(echo "$1" | cut -d= -f2)
177  ;;
178  '--prefix-bin='*)
179   PREFIX_BIN=$(echo "$1" | cut -d= -f2)
180  ;;
181  '--prefix-lib='*)
182   PREFIX_LIB=$(echo "$1" | cut -d= -f2)
183  ;;
184  '--prefix-inc='*)
185   PREFIX_INC=$(echo "$1" | cut -d= -f2)
186  ;;
187  '--prefix-man='*)
188   PREFIX_MAN=$(echo "$1" | cut -d= -f2)
189  ;;
190  '--prefix-pc='*)
191   PREFIX_PC=$(echo "$1" | cut -d= -f2)
192  ;;
193####################################
194  '--mmcu')
195   MMCU="$2"
196   SHIFT_COUNT=1
197  ;;
198  '--exec-helper')
199   EXEC_HELPER="$2"
200   SHIFT_COUNT=1
201  ;;
202  '--target-win32')
203   TARGET_WIN32=true
204  ;;
205  *)
206   HANDLED=false
207  ;;
208 esac;
209
210 if $HANDLED
211 then
212  SHIFT_COUNT=`expr $SHIFT_COUNT + 1`
213 fi
214}
215
216open_configure_files() {
217 exec 3> config.h 4> Makefile.conf 5> config.log
218}
219
220update_target() {
221 TARGET_CYGWIN=`echo "$SYSNAME" | if grep CYGWIN  > /dev/null; then echo true; else echo false; fi`
222 TARGET_WIN32=`echo  "$SYSNAME" | if grep MINGW32 > /dev/null; then echo true; else echo $TARGET_WIN32; fi`
223
224 if [ "$SYSNAME" = 'Darwin' ]
225 then
226  echo "Adding common $SYSNAME shared lib arguments..."
227  SHARED="$SHARED -fno-common -dynamiclib -compatibility_version 0.1 -current_version 0.1.0"
228  SHARED_CF="$SHARED_CF -fno-common"
229 elif [ "$SYSNAME" = 'NetBSD' ]
230 then
231  echo "Adding common $SYSNAME libpath arguments..."
232  LDPATH="$LDPATH -L/usr/local/lib/"
233 elif [ "$SYSNAME" = 'OpenBSD' ]
234 then
235  echo "Adding common $SYSNAME search path arguments..."
236  LDPATH="$LDPATH -L/usr/local/lib/"
237  INCPATH="$INCPATH -I/usr/local/include/"
238 # echo "Adding $SYSNAME build arguments..."
239 # SNDIO_EMUL=false
240 elif [ "$SYSNAME" = 'FreeBSD' ]
241 then
242  echo "Adding common $SYSNAME search path arguments..."
243  LDPATH="$LDPATH -L/usr/local/lib/"
244  INCPATH="$INCPATH -I/usr/local/include/"
245 elif $TARGET_WIN32
246 then
247  echo "Adding common win32 build arguments..."
248  rdynamic=false
249  fPIC=false
250  SHARED_SUFFIX='.dll'
251  TF_E="$TF_E.exe"
252 elif $TARGET_CYGWIN
253 then
254  echo "Adding common cygwin build arguments..."
255  rdynamic=false
256  fPIC=false
257  SHARED_SUFFIX='.dll'
258  TF_E="$TF_E.exe"
259 fi
260}
261
262update_prefixes() {
263 [ "$PREFIX_BIN"  = '' ] && PREFIX_BIN="$PREFIX/bin/"
264 [ "$PREFIX_LIB"  = '' ] && PREFIX_LIB="$PREFIX/lib/"
265 [ "$PREFIX_INC"  = '' ] && PREFIX_INC="$PREFIX/include/"
266 [ "$PREFIX_MAN"  = '' ] && PREFIX_MAN="$PREFIX/share/man/"
267 [ "$PREFIX_PC"   = '' ] && PREFIX_PC="$PREFIX_LIB/pkgconfig/"
268}
269
270update_ccft() {
271 CCTF="$CC $CFLAGS $LDFLAGS $LDPATH $INCPATH -Iinclude/ -o $TF_E $TF_C"
272}
273
274cleanup_ccft() {
275 rm -f $TF_C $TF_E
276 if [ "$TARGET_CYGWIN" = 'true' -o "$TARGET_WIN32" = 'true' ]
277 then
278  echo "Deleting win32 specific temp files: $TF_E.exe"
279  rm -f $TF_E.exe
280 fi
281}
282
283update_cc() {
284 if [ "$MMCU" != '' ]
285 then
286  CC="$CC -mmcu=$MMCU"
287 fi
288}
289
290write_header_makefileconf() {
291 {
292  echo "VERSION=$VERSION"
293  echo "DISTRIBUTION_VERSION_STRING=$DISTRIBUTION_VERSION_STRING"
294  echo
295  echo "SHARED=$SHARED"
296  echo "SHARED_CF=$SHARED_CF"
297  echo "SHARED_SUFFIX=$SHARED_SUFFIX"
298  $rdynamic && echo 'rdynamic=-rdynamic'
299  $fPIC     && echo 'fPIC=-fPIC'
300  $Wextra   && echo 'Wextra=-Wextra'
301  echo
302  echo "CC=$CC"
303  echo "RANLIB=$RANLIB"
304  echo "LDPATH=$LDPATH"
305  echo "INCPATH=$INCPATH"
306  echo "ROAR_BUILDSYSTEM_DIR=$ROAR_BUILDSYSTEM_DIR"
307  echo
308  echo "OPTI_O=-O$OPTI_O"
309  echo
310  [ "$CFLAGS"  != '' ] && echo "CFLAGS  += $CFLAGS"
311  [ "$LDFLAGS" != '' ] && echo "LDFLAGS += $LDFLAGS"
312  echo
313  echo "EXEC_HELPER=$EXEC_HELPER"
314  echo "CROSS_COMPILE=$CROSS_COMPILE"
315  echo
316  echo "PREFIX=$PREFIX"
317  echo "PREFIX_BIN=$PREFIX_BIN"
318  echo "PREFIX_LIB=$PREFIX_LIB"
319  echo "PREFIX_INC=$PREFIX_INC"
320  echo "PREFIX_MAN=$PREFIX_MAN"
321  echo "PREFIX_PC=$PREFIX_PC"
322  echo
323 } >&4
324}
325
326write_footer_makefileconf() {
327 {
328  echo
329  echo '#ll'
330 } >&4
331}
332
333write_header_configlog() {
334 {
335  cat <<'EOF'
336//config.log:
337
338/*
339 * Logfile for configure script $Revision$ of RoarAudio
340 */
341
342EOF
343  echo '/* uname: ' $(uname -a) '*/'
344  echo '/* Date : ' $(date)  '*/'
345  echo
346
347  echo
348  echo
349
350  echo "ARGS(): $_CARGS"
351
352  for i in PATH SHELL CC RANLIB PKG_CONFIG SYSNAME \
353           TARGET_CYGWIN TARGET_WIN32 TARGET_MICROCONTROLLER CROSS_COMPILE \
354           MINIMAL EXEC_HELPER \
355           "$@"
356  do
357   eval echo "BASICCONF\($i\): \$$i";
358  done
359
360  echo
361  echo
362 } >&5
363}
364
365write_footer_configlog() {
366 {
367  echo
368  echo '//ll'
369 } >&5
370}
371
372write_header_configh() {
373 {
374  echo '//config.h:'
375  echo
376  echo "#ifndef $1"
377  echo "#define $1"
378  echo
379  echo '/* uname: ' $(uname -a) '*/'
380  echo '/* Date : ' $(date)  '*/'
381  echo
382 } >&3
383}
384
385write_footer_configh() {
386 {
387  echo
388  echo '#endif'
389  echo
390  echo '//ll'
391 } >&3
392}
393
394write_vars_configh_string() {
395 {
396  for f in "$@"
397  do
398   eval val=\"\$$f\"
399   echo "#define $f \"$val\""
400  done
401 } >&3
402}
403
404write_vars_configh_literal() {
405 {
406  for f in "$@"
407  do
408   eval val=\"\$$f\"
409   echo "#define $f $val"
410  done
411 } >&3
412}
413
414write_header() {
415 write_header_makefileconf
416 write_header_configlog
417 write_header_configh "$@"
418}
419
420write_footer() {
421 write_footer_makefileconf
422 write_footer_configlog
423 write_footer_configh
424}
425
426#ll
Note: See TracBrowser for help on using the repository browser.