source: roaraudio/build-system/configure.lib @ 5671:104880ca7a9d

Last change on this file since 5671:104880ca7a9d was 5670:c566dfc0ea28, checked in by phi, 12 years ago

prepare for closing #325: move some parts of configure in a subdir

File size: 7.0 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
33parse_option() {
34 # Options are given via $n.
35 # we can not shift used ones so we tell the caller
36 # how many to shift: shift $SHIFT_COUNT
37 SHIFT_COUNT=0
38 # we also tell if the option was handelt.
39 HANDLED=true # will be reset if not.
40
41 case "$1" in
42  '--ldpath')
43   LDPATH="$LDPATH -L$2"
44   SHIFT_COUNT=1
45  ;;
46  '--incpath')
47   INCPATH="$INCPATH -I$2"
48   SHIFT_COUNT=1
49  ;;
50  '--addpath')
51   LDPATH="$LDPATH -L$2/lib/"
52   INCPATH="$INCPATH -I$2/include/"
53   SHIFT_COUNT=1
54  ;;
55  '--root')
56   LDPATH="$LDPATH -L$2/lib/"
57   INCPATH="$INCPATH -I$2/include/"
58   PREFIX="$2"
59   SHIFT_COUNT=1
60  ;;
61  '--cflags')
62   CFLAGS="$2"
63   SHIFT_COUNT=1
64  ;;
65  '--ldflags')
66   LDFLAGS="$2"
67   SHIFT_COUNT=1
68  ;;
69  '--opti')
70   OPTI_O="$2"
71   SHIFT_COUNT=1
72  ;;
73  '--link-deps')
74   LINK_DEPS="$2"
75   SHIFT_COUNT=1
76  ;;
77  '--cc')
78   CC="$2"
79   SHIFT_COUNT=1
80  ;;
81  '--ranlib')
82   RANLIB="$2"
83   SHIFT_COUNT=1
84  ;;
85  '--root-uid')
86   ROOT_UID="$2"
87   SHIFT_COUNT=1
88  ;;
89  '--no-'*)
90   lib=$(echo "$1" | sed 's/^--no-//' | to_escaped)
91   eval no_lib_$lib=true
92  ;;
93  '--maybe-'*)
94   lib=$(echo "$1" | sed 's/^--maybe-//' | to_escaped)
95   eval unset no_lib_$lib
96  ;;
97  '--distribution-version-string')
98   DISTRIBUTION_VERSION_STRING="$2"
99   SHIFT_COUNT=1
100  ;;
101  '--without-beta')
102   BETA=false
103   EXPERIMENTAL=false
104  ;;
105  '--without-experimental')
106   EXPERIMENTAL=false
107  ;;
108  '--prefix')
109   PREFIX="$2"
110   SHIFT_COUNT=1
111  ;;
112  '--prefix-bin')
113   PREFIX_BIN="$2"
114   SHIFT_COUNT=1
115  ;;
116  '--prefix-lib')
117   PREFIX_LIB="$2"
118   SHIFT_COUNT=1
119  ;;
120  '--prefix-inc')
121   PREFIX_INC="$2"
122   SHIFT_COUNT=1
123  ;;
124  '--prefix-man')
125   PREFIX_MAN="$2"
126   SHIFT_COUNT=1
127  ;;
128  '--prefix-pc')
129   PREFIX_PC="$2"
130   SHIFT_COUNT=1
131  ;;
132####################################
133# autof* options block:
134  '--prefix='*)
135   PREFIX=$(echo "$1" | cut -d= -f2)
136  ;;
137  '--prefix-bin='*)
138   PREFIX_BIN=$(echo "$1" | cut -d= -f2)
139  ;;
140  '--prefix-lib='*)
141   PREFIX_LIB=$(echo "$1" | cut -d= -f2)
142  ;;
143  '--prefix-inc='*)
144   PREFIX_INC=$(echo "$1" | cut -d= -f2)
145  ;;
146  '--prefix-man='*)
147   PREFIX_MAN=$(echo "$1" | cut -d= -f2)
148  ;;
149  '--prefix-pc='*)
150   PREFIX_PC=$(echo "$1" | cut -d= -f2)
151  ;;
152####################################
153  '--mmcu')
154   MMCU="$2"
155   SHIFT_COUNT=1
156  ;;
157  '--exec-helper')
158   EXEC_HELPER="$2"
159   SHIFT_COUNT=1
160  ;;
161  '--target-win32')
162   TARGET_WIN32=true
163  ;;
164  *)
165   HANDLED=false
166  ;;
167 esac;
168}
169
170open_configure_files() {
171 exec 3> config.h 4> Makefile.conf 5> config.log
172}
173
174update_target() {
175 TARGET_CYGWIN=`echo "$SYSNAME" | if grep CYGWIN  > /dev/null; then echo true; else echo false; fi`
176 TARGET_WIN32=`echo  "$SYSNAME" | if grep MINGW32 > /dev/null; then echo true; else echo $TARGET_WIN32; fi`
177
178 if [ "$SYSNAME" = 'Darwin' ]
179 then
180  echo "Adding common $SYSNAME shared lib arguments..."
181  SHARED="$SHARED -fno-common -dynamiclib -compatibility_version 0.1 -current_version 0.1.0"
182  SHARED_CF="$SHARED_CF -fno-common"
183 elif [ "$SYSNAME" = 'NetBSD' ]
184 then
185  echo "Adding common $SYSNAME libpath arguments..."
186  LDPATH="$LDPATH -L/usr/local/lib/"
187 elif [ "$SYSNAME" = 'OpenBSD' ]
188 then
189  echo "Adding common $SYSNAME search path arguments..."
190  LDPATH="$LDPATH -L/usr/local/lib/"
191  INCPATH="$INCPATH -I/usr/local/include/"
192 # echo "Adding $SYSNAME build arguments..."
193 # SNDIO_EMUL=false
194 elif [ "$SYSNAME" = 'FreeBSD' ]
195 then
196  echo "Adding common $SYSNAME search path arguments..."
197  LDPATH="$LDPATH -L/usr/local/lib/"
198  INCPATH="$INCPATH -I/usr/local/include/"
199 elif $TARGET_WIN32
200 then
201  echo "Adding common win32 build arguments..."
202  rdynamic=false
203  fPIC=false
204  SHARED_SUFFIX='.dll'
205 elif $TARGET_CYGWIN
206 then
207  echo "Adding common cygwin build arguments..."
208  rdynamic=false
209  fPIC=false
210  SHARED_SUFFIX='.dll'
211 fi
212}
213
214update_prefixes() {
215 [ "$PREFIX_BIN"  = '' ] && PREFIX_BIN="$PREFIX/bin/"
216 [ "$PREFIX_LIB"  = '' ] && PREFIX_LIB="$PREFIX/lib/"
217 [ "$PREFIX_INC"  = '' ] && PREFIX_INC="$PREFIX/include/"
218 [ "$PREFIX_MAN"  = '' ] && PREFIX_MAN="$PREFIX/share/man/"
219 [ "$PREFIX_PC"   = '' ] && PREFIX_PC="$PREFIX_LIB/pkgconfig/"
220}
221
222update_ccft() {
223 CCTF="$CC $CFLAGS $LDFLAGS $LDPATH $INCPATH -Iinclude/ -o $TF_E $TF_C"
224}
225
226cleanup_ccft() {
227 rm -f $TF_C $TF_E
228 if [ "$TARGET_CYGWIN" = 'true' -o "$TARGET_WIN32" = 'true' ]
229 then
230  echo "Deleting win32 specific temp files: $TF_E.exe"
231  rm -f $TF_E.exe
232 fi
233}
234
235update_cc() {
236 if [ "$MMCU" != '' ]
237 then
238  CC="$CC -mmcu=$MMCU"
239 fi
240}
241
242write_header_makefileconf() {
243 {
244  echo "VERSION=$VERSION"
245  echo "DISTRIBUTION_VERSION_STRING=$DISTRIBUTION_VERSION_STRING"
246  echo
247  echo "SHARED=$SHARED"
248  echo "SHARED_CF=$SHARED_CF"
249  echo "SHARED_SUFFIX=$SHARED_SUFFIX"
250  $rdynamic && echo 'rdynamic=-rdynamic'
251  $fPIC     && echo 'fPIC=-fPIC'
252  $Wextra   && echo 'Wextra=-Wextra'
253  echo
254  echo "CC=$CC"
255  echo "RANLIB=$RANLIB"
256  echo "LDPATH=$LDPATH"
257  echo "INCPATH=$INCPATH"
258  echo
259  echo "OPTI_O=-O$OPTI_O"
260  echo
261  [ "$CFLAGS"  != '' ] && echo "CFLAGS  += $CFLAGS"
262  [ "$LDFLAGS" != '' ] && echo "LDFLAGS += $LDFLAGS"
263  echo
264  echo "EXEC_HELPER=$EXEC_HELPER"
265  echo "CROSS_COMPILE=$CROSS_COMPILE"
266  echo
267  echo "PREFIX=$PREFIX"
268  echo "PREFIX_BIN=$PREFIX_BIN"
269  echo "PREFIX_LIB=$PREFIX_LIB"
270  echo "PREFIX_INC=$PREFIX_INC"
271  echo "PREFIX_MAN=$PREFIX_MAN"
272  echo "PREFIX_PC=$PREFIX_PC"
273  echo
274 } >&4
275}
276
277write_footer_makefileconf() {
278 {
279  echo
280  echo '#ll'
281 } >&4
282}
283
284write_header_configlog() {
285 {
286  cat <<'EOF'
287//config.log:
288
289/*
290 * Logfile for configure script $Revision$ of RoarAudio
291 */
292
293EOF
294  echo '/* uname: ' $(uname -a) '*/'
295  echo '/* Date : ' $(date)  '*/'
296  echo
297
298  echo
299  echo
300
301  echo "ARGS(): $_CARGS"
302
303  for i in PATH SHELL CC RANLIB PKG_CONFIG SYSNAME \
304           TARGET_CYGWIN TARGET_WIN32 TARGET_MICROCONTROLLER CROSS_COMPILE \
305           MINIMAL EXEC_HELPER \
306           "$@"
307  do
308   eval echo "BASICCONF\($i\): \$$i";
309  done
310
311  echo
312  echo
313 } >&5
314}
315
316write_footer_configlog() {
317 {
318  echo
319  echo '//ll'
320 } >&5
321}
322
323write_header_configh() {
324 {
325  echo '//config.h:'
326  echo
327  echo "#ifndef $1"
328  echo "#define $1"
329  echo
330  echo '/* uname: ' $(uname -a) '*/'
331  echo '/* Date : ' $(date)  '*/'
332  echo
333 } >&3
334}
335
336write_footer_configh() {
337 {
338  echo
339  echo '#endif'
340  echo
341  echo '//ll'
342 } >&3
343}
344
345#ll
Note: See TracBrowser for help on using the repository browser.