source: roaraudio/build-system/configure.lib

tip
Last change on this file was 5898:ab8c0f4c5c02, checked in by phi, 11 years ago

corrected display in summery of libs disabled by the user

File size: 17.6 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
33error_missing() {
34 _object="$1"
35 [ "$_object" = '' ] && _object="$last_tested_object"
36 echo "Error: $_object is missing but required."
37 exit 1
38}
39
40error_internal() {
41 if [ "$1" = '' ]
42 then
43  echo "Error: Internal error within configure script. Contact author."
44 else
45  echo "Error: $1"
46 fi
47 exit 1;
48}
49
50set_dev_vendor() {
51 if [ "$#" = '2' ]
52 then
53  DEV_VENDOR="$1"
54  DEV_VENDOR_NAME="$2"
55  DEV_VENDOR_STRING="$DEV_VENDOR/$DEV_VENDOR_NAME"
56 else
57  DEV_VENDOR=''
58  DEV_VENDOR_NAME="$1"
59  DEV_VENDOR_STRING="$DEV_VENDOR_NAME"
60 fi
61}
62
63set_std_vendor() {
64 if [ "$#" = '2' ]
65 then
66  STD_VENDOR="$1"
67  STD_VENDOR_NAME="$2"
68  STD_VENDOR_STRING="$STD_VENDOR/$STD_VENDOR_NAME"
69 else
70  STD_VENDOR=''
71  STD_VENDOR_NAME="$1"
72  STD_VENDOR_STRING="$STD_VENDOR_NAME"
73 fi
74}
75
76write_help() {
77 echo 'COMMON OPTIONS:'
78 echo
79 echo '--ldpath DIR                - Add DIR to (compile time) search list for libs'
80 echo '--incpath DIR               - Add DIR to search list for headers'
81 echo '--addpath DIR               - Add DIR/lib to lib, DIR/include to header search list'
82 echo '--root DIR                  - The same as "--addpath DIR --prefix DIR"'
83 echo
84 echo '--cflags FLAGS              - Sets additional compiler flags (default: '"$CFLAGS"')'
85 echo '--ldflags FLAGS             - Sets additional linker flags (default: '"$LDFLAGS"')'
86 echo '--opti LEVEL                - Sets optimizer level (default: '"$OPTI_O"')'
87 echo '--without-debugging         - Disable compiling debug information into binaries'
88 echo '--link-deps MODE            - Model for linking dependencies: auto, full or indirect'
89 echo
90 echo '--cc CC                     - Set name of C compiler (CC) to CC'
91 echo '--ranlib RANLIB             - Set name of ranlib (RANLIB) to RANLIB'
92 echo
93 echo '--root-uid UID              - Sets User ID (UID) of the root user/superuser'
94 echo
95 echo '--no-LIB                    - disable library LIB'
96 echo '--maybe-LIB                 - autodetect library LIB (default)'
97 echo
98 echo '--prefix DIR                - Set general prefix (default: '"$PREFIX"')'
99 echo '--prefix-bin DIR            - Set prefix for binaries (default: $PREFIX/bin)'
100 echo '--prefix-sbin DIR           - Set prefix for system binaries (default: $PREFIX/sbin)'
101 echo '--prefix-lib DIR            - Set prefix for libraries (default: $PREFIX/libs)'
102 echo '--prefix-inc DIR            - Set prefix for include files (default: $PREFIX/include)'
103 echo '--prefix-man DIR            - Set prefix for manpages (default: $PREFIX/share/man)'
104 echo '--prefix-pc DIR             - Set prefix for pkg-config (default: $PREFIX_LIB/pkgconfig)'
105 echo '--prefix-sysconf DIR        - Set prefix for system configuration (default: '"$PREFIX_SYSCONF"')'
106 echo '--prefix-dev DIR            - Set prefix for devices (default: '"$PREFIX_DEV"')'
107 echo '--prefix-doc DIR            - Set prefix for documentation (default: $PREFIX/share/doc)'
108 echo '--prefix-tmp DIR            - Set prefix for temporary files (default: '"$PREFIX_TMP"')'
109 echo '--prefix-var DIR            - Set prefix for variable files (default: '"$PREFIX_VAR"')'
110 echo '--prefix-cache DIR          - Set prefix for application caches (default: $PREFIX_VAR/cache)'
111 echo '--prefix-data DIR           - Set prefix for variable application data (default: $PREFIX_VAR/lib)'
112 echo '--prefix-lock DIR           - Set prefix for lock files (locked resources) (default: $PREFIX_VAR/lock)'
113 echo '--prefix-log DIR            - Set prefix for log files (default: $PREFIX_VAR/log)'
114 echo '--prefix-mail DIR           - Set prefix for user'\''s mailboxes (default: $PREFIX_VAR/mail)'
115 echo '--prefix-run DIR            - Set prefix for information about the running system (default: $PREFIX_VAR/run)'
116 echo '--prefix-spool DIR          - Set prefix for spools (queued jobs) (default: $PREFIX_VAR/spool)'
117 echo
118 echo '--without-beta              - Disable beta code'
119 echo '--without-experimental      - Disable experimental code'
120 echo
121 echo '--distribution-version-string STRING'
122 echo '                            - Sets distribution part of version string'
123 echo
124 echo '--mmcu MMCU                 - Sets -mmcu compiler/linker option'
125 echo '--target-win32              - Disable everything useful'
126 echo '--exec-helper HELPER        - Exec all test programms using this command (HELPER $cmd $args)'
127 echo '                              use '\''--exec-helper wine'\'' when building win32 binaries'
128 echo
129}
130
131parse_option() {
132 # Options are given via $n.
133 # we can not shift used ones so we tell the caller
134 # how many to shift: shift $SHIFT_COUNT
135 SHIFT_COUNT=0
136 # we also tell if the option was handelt.
137 HANDLED=true # will be reset if not.
138
139 case "$1" in
140  '--ldpath')
141   LDPATH="$LDPATH -L$2"
142   SHIFT_COUNT=1
143  ;;
144  '--incpath')
145   INCPATH="$INCPATH -I$2"
146   SHIFT_COUNT=1
147  ;;
148  '--addpath')
149   LDPATH="$LDPATH -L$2/lib/"
150   INCPATH="$INCPATH -I$2/include/"
151   SHIFT_COUNT=1
152  ;;
153  '--root')
154   LDPATH="$LDPATH -L$2/lib/"
155   INCPATH="$INCPATH -I$2/include/"
156   PREFIX="$2"
157   SHIFT_COUNT=1
158  ;;
159  '--cflags')
160   CFLAGS="$2"
161   SHIFT_COUNT=1
162  ;;
163  '--ldflags')
164   LDFLAGS="$2"
165   SHIFT_COUNT=1
166  ;;
167  '--opti')
168   OPTI_O="$2"
169   SHIFT_COUNT=1
170  ;;
171  '--without-debugging')
172   DEBUG_g=''
173  ;;
174  '--link-deps')
175   LINK_DEPS="$2"
176   SHIFT_COUNT=1
177  ;;
178  '--cc')
179   CC="$2"
180   SHIFT_COUNT=1
181  ;;
182  '--ranlib')
183   RANLIB="$2"
184   SHIFT_COUNT=1
185  ;;
186  '--root-uid')
187   ROOT_UID="$2"
188   SHIFT_COUNT=1
189  ;;
190  '--no-'*)
191   lib=$(echo "$1" | sed 's/^--no-//' | to_escaped)
192   eval no_lib_$lib=true
193  ;;
194  '--maybe-'*)
195   lib=$(echo "$1" | sed 's/^--maybe-//' | to_escaped)
196   eval unset no_lib_$lib
197  ;;
198  '--distribution-version-string')
199   DISTRIBUTION_VERSION_STRING="$2"
200   SHIFT_COUNT=1
201  ;;
202  '--without-beta')
203   BETA=false
204   EXPERIMENTAL=false
205  ;;
206  '--without-experimental')
207   EXPERIMENTAL=false
208  ;;
209  '--prefix')
210   PREFIX="$2"
211   SHIFT_COUNT=1
212  ;;
213  '--prefix-bin')
214   PREFIX_BIN="$2"
215   SHIFT_COUNT=1
216  ;;
217  '--prefix-sbin')
218   PREFIX_SBIN="$2"
219   SHIFT_COUNT=1
220  ;;
221  '--prefix-lib')
222   PREFIX_LIB="$2"
223   SHIFT_COUNT=1
224  ;;
225  '--prefix-inc')
226   PREFIX_INC="$2"
227   SHIFT_COUNT=1
228  ;;
229  '--prefix-man')
230   PREFIX_MAN="$2"
231   SHIFT_COUNT=1
232  ;;
233  '--prefix-pc')
234   PREFIX_PC="$2"
235   SHIFT_COUNT=1
236  ;;
237  '--prefix-ckport')
238   PREFIX_CKPORT="$2"
239   SHIFT_COUNT=1
240  ;;
241  '--prefix-sysconf')
242   PREFIX_SYSCONF="$2"
243   SHIFT_COUNT=1
244  ;;
245  '--prefix-dev')
246   PREFIX_DEV="$2"
247   SHIFT_COUNT=1
248  ;;
249  '--prefix-doc')
250   PREFIX_DOC="$2"
251   SHIFT_COUNT=1
252  ;;
253  '--prefix-tmp')
254   PREFIX_TMP="$2"
255   SHIFT_COUNT=1
256  ;;
257  '--prefix-var')
258   PREFIX_VAR="$2"
259   SHIFT_COUNT=1
260  ;;
261  '--prefix-cache')
262   PREFIX_CACHE="$2"
263   SHIFT_COUNT=1
264  ;;
265  '--prefix-data')
266   PREFIX_DATA="$2"
267   SHIFT_COUNT=1
268  ;;
269  '--prefix-lock')
270   PREFIX_LOCK="$2"
271   SHIFT_COUNT=1
272  ;;
273  '--prefix-log')
274   PREFIX_LOG="$2"
275   SHIFT_COUNT=1
276  ;;
277  '--prefix-mail')
278   PREFIX_MAIL="$2"
279   SHIFT_COUNT=1
280  ;;
281  '--prefix-run')
282   PREFIX_RUN="$2"
283   SHIFT_COUNT=1
284  ;;
285  '--prefix-spool')
286   PREFIX_SPOOL="$2"
287   SHIFT_COUNT=1
288  ;;
289####################################
290# autof* options block:
291  '--prefix='*)
292   PREFIX=$(echo "$1" | cut -d= -f2)
293  ;;
294  '--prefix-bin='*)
295   PREFIX_BIN=$(echo "$1" | cut -d= -f2)
296  ;;
297  '--prefix-sbin='*)
298   PREFIX_SBIN=$(echo "$1" | cut -d= -f2)
299  ;;
300  '--prefix-lib='*)
301   PREFIX_LIB=$(echo "$1" | cut -d= -f2)
302  ;;
303  '--prefix-inc='*)
304   PREFIX_INC=$(echo "$1" | cut -d= -f2)
305  ;;
306  '--prefix-man='*)
307   PREFIX_MAN=$(echo "$1" | cut -d= -f2)
308  ;;
309  '--prefix-pc='*)
310   PREFIX_PC=$(echo "$1" | cut -d= -f2)
311  ;;
312  '--prefix-ckport='*)
313   PREFIX_CKPORT=$(echo "$1" | cut -d= -f2)
314  ;;
315  '--prefix-sysconf='*)
316   PREFIX_SYSCONF=$(echo "$1" | cut -d= -f2)
317  ;;
318  '--prefix-dev='*)
319   PREFIX_DEV=$(echo "$1" | cut -d= -f2)
320  ;;
321  '--prefix-doc='*)
322   PREFIX_DOC=$(echo "$1" | cut -d= -f2)
323  ;;
324  '--prefix-tmp='*)
325   PREFIX_TMP=$(echo "$1" | cut -d= -f2)
326  ;;
327  '--prefix-var='*)
328   PREFIX_VAR=$(echo "$1" | cut -d= -f2)
329  ;;
330  '--prefix-cache='*)
331   PREFIX_CACHE=$(echo "$1" | cut -d= -f2)
332  ;;
333  '--prefix-data='*)
334   PREFIX_DATA=$(echo "$1" | cut -d= -f2)
335  ;;
336  '--prefix-lock='*)
337   PREFIX_LOCK=$(echo "$1" | cut -d= -f2)
338  ;;
339  '--prefix-log='*)
340   PREFIX_LOG=$(echo "$1" | cut -d= -f2)
341  ;;
342  '--prefix-mail='*)
343   PREFIX_MAIL=$(echo "$1" | cut -d= -f2)
344  ;;
345  '--prefix-run='*)
346   PREFIX_RUN=$(echo "$1" | cut -d= -f2)
347  ;;
348  '--prefix-spool='*)
349   PREFIX_SPOOL=$(echo "$1" | cut -d= -f2)
350  ;;
351####################################
352  '--mmcu')
353   MMCU="$2"
354   SHIFT_COUNT=1
355  ;;
356  '--exec-helper')
357   EXEC_HELPER="$2"
358   SHIFT_COUNT=1
359  ;;
360  '--target-win32')
361   TARGET_WIN32=true
362  ;;
363  *)
364   HANDLED=false
365  ;;
366 esac;
367
368 if $HANDLED
369 then
370  SHIFT_COUNT=`expr $SHIFT_COUNT + 1`
371 fi
372}
373
374open_configure_files() {
375 exec 3> config.h 4> Makefile.conf 5> config.log
376}
377
378update_target() {
379 TARGET_CYGWIN=`echo "$SYSNAME" | if grep CYGWIN  > /dev/null; then echo true; else echo false; fi`
380 TARGET_WIN32=`echo  "$SYSNAME" | if grep MINGW32 > /dev/null; then echo true; else echo $TARGET_WIN32; fi`
381
382 if $TARGET_WIN32
383 then
384  TARGET_TYPE='win32'
385 elif $TARGET_MICROCONTROLLER
386 then
387  TARGET_TYPE='microcontroller'
388 elif $TARGET_CYGWIN
389 then
390  TARGET_TYPE='cygwin'
391 else
392  TARGET_TYPE='generic'
393 fi
394
395 if [ "$SYSNAME" = 'Darwin' ]
396 then
397  echo "Adding common $SYSNAME shared lib arguments..."
398  SHARED="$SHARED -fno-common -dynamiclib -compatibility_version 0.1 -current_version 0.1.0"
399  SHARED_CF="$SHARED_CF -fno-common"
400 elif [ "$SYSNAME" = 'NetBSD' ]
401 then
402  echo "Adding common $SYSNAME libpath arguments..."
403  LDPATH="$LDPATH -L/usr/local/lib/"
404 elif [ "$SYSNAME" = 'OpenBSD' ]
405 then
406  echo "Adding common $SYSNAME search path arguments..."
407  LDPATH="$LDPATH -L/usr/local/lib/"
408  INCPATH="$INCPATH -I/usr/local/include/"
409 # echo "Adding $SYSNAME build arguments..."
410 # SNDIO_EMUL=false
411 elif [ "$SYSNAME" = 'FreeBSD' ]
412 then
413  echo "Adding common $SYSNAME search path arguments..."
414  LDPATH="$LDPATH -L/usr/local/lib/"
415  INCPATH="$INCPATH -I/usr/local/include/"
416 elif $TARGET_WIN32
417 then
418  echo "Adding common win32 build arguments..."
419  rdynamic=false
420  fPIC=false
421  SHARED_SUFFIX='.dll'
422  TF_E="$TF_E.exe"
423
424  # should those be also in the cygwin port?
425  IMPLIB='$(BASENAME)$(SHARED_SUFFIX).a'
426  LDFLAGS="$LDFLAGS -Wl,--out-implib=\$@.a"
427 elif $TARGET_CYGWIN
428 then
429  echo "Adding common cygwin build arguments..."
430  rdynamic=false
431  fPIC=false
432  SHARED_SUFFIX='.dll'
433  TF_E="$TF_E.exe"
434 fi
435}
436
437update_prefixes() {
438 [ "$PREFIX_BIN"    = '' ] && PREFIX_BIN="$PREFIX/bin/"
439 [ "$PREFIX_SBIN"   = '' ] && PREFIX_SBIN="$PREFIX/sbin/"
440 [ "$PREFIX_LIB"    = '' ] && PREFIX_LIB="$PREFIX/lib/"
441 [ "$PREFIX_INC"    = '' ] && PREFIX_INC="$PREFIX/include/"
442 [ "$PREFIX_MAN"    = '' ] && PREFIX_MAN="$PREFIX/share/man/"
443 [ "$PREFIX_PC"     = '' ] && PREFIX_PC="$PREFIX_LIB/pkgconfig/"
444 [ "$PREFIX_CKPORT" = '' ] && PREFIX_CKPORT="$PREFIX_LIB/ckport/db/"
445 [ "$PREFIX_SYSCONF" = '' ] && PREFIX_SYSCONF="/etc/"
446 [ "$PREFIX_DEV"    = '' ] && PREFIX_DEV="/dev/"
447 [ "$PREFIX_DOC"    = '' ] && PREFIX_DOC="$PREFIX/share/doc/"
448 [ "$PREFIX_TMP"    = '' ] && PREFIX_TMP="/tmp/"
449 [ "$PREFIX_VAR"    = '' ] && PREFIX_VAR="/var/"
450 [ "$PREFIX_CACHE"  = '' ] && PREFIX_CACHE="$PREFIX_VAR/cache/"
451 [ "$PREFIX_DATA"   = '' ] && PREFIX_DATA="$PREFIX_VAR/lib/"
452 [ "$PREFIX_LOCK"   = '' ] && PREFIX_LOCK="$PREFIX_VAR/lock/"
453 [ "$PREFIX_LOG"    = '' ] && PREFIX_LOG="$PREFIX_VAR/log/"
454 [ "$PREFIX_MAIL"   = '' ] && PREFIX_MAIL="$PREFIX_VAR/mail/"
455 [ "$PREFIX_RUN"    = '' ] && PREFIX_RUN="$PREFIX_VAR/run/"
456 [ "$PREFIX_SPOOL"  = '' ] && PREFIX_SPOOL="$PREFIX_VAR/spool/"
457}
458
459update_ccft() {
460 CCTF="$CC $CFLAGS $LDFLAGS $LDPATH $INCPATH -Iinclude/ -o $TF_E $TF_C"
461}
462
463cleanup_ccft() {
464 rm -f $TF_C $TF_E
465}
466
467update_cc() {
468 if [ "$MMCU" != '' ]
469 then
470  CC="$CC -mmcu=$MMCU"
471 fi
472}
473
474write_header_makefileconf() {
475 {
476  echo "VERSION=$VERSION"
477  echo "DISTRIBUTION_VERSION_STRING=$DISTRIBUTION_VERSION_STRING"
478  echo
479  [ "$DEV_VENDOR"        != '' ] && echo "DEV_VENDOR=$DEV_VENDOR"
480  [ "$DEV_VENDOR_NAME"   != '' ] && echo "DEV_VENDOR_NAME=$DEV_VENDOR_NAME"
481  [ "$DEV_VENDOR_STRING" != '' ] && echo "DEV_VENDOR_STRING=$DEV_VENDOR_STRING"
482  [ "$STD_VENDOR"        != '' ] && echo "STD_VENDOR=$STD_VENDOR"
483  [ "$STD_VENDOR_NAME"   != '' ] && echo "STD_VENDOR_NAME=$STD_VENDOR_NAME"
484  [ "$STD_VENDOR_STRING" != '' ] && echo "STD_VENDOR_STRING=$STD_VENDOR_STRING"
485  echo
486  echo "TARGET_TYPE=$TARGET_TYPE"
487  echo "SHARED=$SHARED"
488  echo "SHARED_CF=$SHARED_CF"
489  echo "SHARED_SUFFIX=$SHARED_SUFFIX"
490  $rdynamic && echo 'rdynamic=-rdynamic'
491  $fPIC     && echo 'fPIC=-fPIC'
492  $Wextra   && echo 'Wextra=-Wextra'
493  echo "Wall=-Wall"
494  echo
495  echo "CC=$CC"
496  echo "RANLIB=$RANLIB"
497  echo "LDPATH=$LDPATH"
498  echo "INCPATH=$INCPATH"
499  echo "ROAR_BUILDSYSTEM_DIR=$ROAR_BUILDSYSTEM_DIR"
500  echo
501  echo "OPTI_O=-O$OPTI_O"
502  echo "DEBUG_g=$DEBUG_g"
503  echo "IMPLIB=$IMPLIB"
504  echo
505  [ "$CFLAGS"  != '' ] && echo "CFLAGS  += $CFLAGS"
506  [ "$LDFLAGS" != '' ] && echo "LDFLAGS += $LDFLAGS"
507  echo
508  echo "EXEC_HELPER=$EXEC_HELPER"
509  echo "CROSS_COMPILE=$CROSS_COMPILE"
510  echo
511  echo "PREFIX=$PREFIX"
512  echo "PREFIX_BIN=$PREFIX_BIN"
513  echo "PREFIX_SBIN=$PREFIX_SBIN"
514  echo "PREFIX_LIB=$PREFIX_LIB"
515  echo "PREFIX_INC=$PREFIX_INC"
516  echo "PREFIX_MAN=$PREFIX_MAN"
517  echo "PREFIX_PC=$PREFIX_PC"
518  echo "PREFIX_CKPORT=$PREFIX_CKPORT"
519  echo "PREFIX_SYSCONF=$PREFIX_SYSCONF"
520  echo "PREFIX_DEV=$PREFIX_DEV"
521  echo "PREFIX_DOC=$PREFIX_DOC"
522  echo "PREFIX_TMP=$PREFIX_TMP"
523  echo "PREFIX_VAR=$PREFIX_VAR"
524  echo "PREFIX_CACHE=$PREFIX_CACHE"
525  echo "PREFIX_DATA=$PREFIX_DATA"
526  echo "PREFIX_LOCK=$PREFIX_LOCK"
527  echo "PREFIX_LOG=$PREFIX_LOG"
528  echo "PREFIX_MAIL=$PREFIX_MAIL"
529  echo "PREFIX_RUN=$PREFIX_RUN"
530  echo "PREFIX_SPOOL=$PREFIX_SPOOL"
531  echo
532 } >&4
533}
534
535write_footer_makefileconf() {
536 {
537  echo
538  echo '#ll'
539 } >&4
540}
541
542write_header_configlog() {
543 {
544  cat <<'EOF'
545//config.log:
546
547/*
548 * Logfile for configure script $Revision$ of RoarAudio
549 */
550
551EOF
552  echo '/* uname: ' $(uname -a) '*/'
553  echo '/* Date : ' $(date)  '*/'
554  echo
555
556  echo
557  echo
558
559  echo "ARGS(): $_CARGS"
560
561  for i in PATH SHELL CC RANLIB PKG_CONFIG SYSNAME \
562           TARGET_TYPE TARGET_CYGWIN TARGET_WIN32 TARGET_MICROCONTROLLER CROSS_COMPILE \
563           MINIMAL EXEC_HELPER \
564           "$@"
565  do
566   eval echo "BASICCONF\($i\): \$$i";
567  done
568
569  echo
570  echo
571 } >&5
572}
573
574write_footer_configlog() {
575 {
576  echo
577  echo '//ll'
578 } >&5
579}
580
581write_header_configh() {
582 {
583  echo '#ifdef __RABS_COMMENT__'
584  echo '//config.h:'
585  echo '#endif'
586  echo
587  echo "#ifndef $1"
588  echo "#define $1"
589  echo
590  echo '#ifdef __RABS_COMMENT__'
591  echo '/* uname: ' $(uname -a) '*/'
592  echo '/* Date : ' $(date)  '*/'
593  echo '#endif'
594  echo
595 } >&3
596}
597
598write_footer_configh() {
599 {
600  echo
601  echo '#endif'
602  echo
603  echo '#ifdef __RABS_COMMENT__'
604  echo 'End of File.'
605  echo '#endif'
606 } >&3
607}
608
609write_vars_configh_string() {
610 {
611  for f in "$@"
612  do
613   eval val=\"\$$f\"
614   echo "#define $f \"$val\""
615  done
616 } >&3
617}
618
619write_vars_configh_literal() {
620 {
621  for f in "$@"
622  do
623   eval val=\"\$$f\"
624   echo "#define $f $val"
625  done
626 } >&3
627}
628
629write_header() {
630 write_header_makefileconf
631 write_header_configlog
632 write_header_configh "$@"
633}
634
635write_footer() {
636 write_footer_makefileconf
637 write_footer_configlog
638 write_footer_configh
639}
640
641write_summery_header() {
642 echo
643 echo "Summery:"
644}
645
646write_summery() {
647 _type="$1"
648 _name="$2"
649 _displayname="$3"
650
651 [ "$_displayname" = '' ] && _displayname="$_name"
652
653 #types:
654 # Wextra
655 # BIN_FORMAT
656 # LINK_DEPS
657 # lib
658#  _envname=`echo "$_h" | to_escaped`
659#  eval "_t=\$libname_$_envname"
660 # RUNTIME_DETECT
661 # func
662#  eval funcname_$_funcname=true
663 # generic:
664 #  var
665 #  bool
666 #  retval
667
668 # convert types which are subtypes of others:
669 case "$_type" in
670  'Wextra')
671   _type=bool
672   _name=Wextra
673   [ "$_displayname" = '' ] && _displayname="-Wextra"
674  ;;
675  'bin_format')
676   _type=var
677   _name=BIN_FORMAT
678   [ "$_displayname" = '' ] && _displayname="binary format"
679  ;;
680  'linkdeps')
681   _type=var
682   _name=LINK_DEPS
683   [ "$_displayname" = '' ] && _displayname="linkage model"
684  ;;
685  'RUNTIME_DETECT')
686   _type=bool
687   _name=RUNTIME_DETECT
688   [ "$_displayname" = '' ] && _displayname="runtime detect"
689  ;;
690  'lib')
691   eval eval _no="\\\$no_lib_\$envname2envlib_`echo "$_name" | to_escaped`";
692   if [ "$_no" != '' ]
693   then
694    _no="disabled by user"
695    _type=var
696    _name=_no
697   else
698    _type=bool
699    _name=libname_`echo "$_name" | to_escaped`
700   fi
701  ;;
702  'func')
703   _type=bool
704   _name=funcname_`echo "$_name" | to_escaped`
705  ;;
706 esac;
707
708 _retval=999999
709 _status=''
710
711 case "$_type" in
712  'retval')
713   _retval="$_name"
714  ;;
715  'bool')
716   _false=false
717   [ "$_name" = '' ] && _name=_false
718   eval \$$_name > /dev/null
719   _retval=$?
720  ;;
721  'var')
722   eval _status="\$$_name"
723   _retval=0
724  ;;
725  *)
726   error_internal "Unknown type in summry display: $_type"
727  ;;
728 esac
729
730 if [ "$_status" = '' ]
731 then
732  if [ "$_retval" = '0' ]
733  then
734   _status='ok'
735  else
736   _status='not supported'
737  fi
738 fi
739
740 _dummy=`echo "$_displayname" | tr '[:print:]' x`
741
742 _dots=`printf "%-24s" $_dummy  | tr -d x | tr " " .`
743
744 echo "   $_displayname$_dots: $_status"
745}
746
747#ll
Note: See TracBrowser for help on using the repository browser.