source: roaraudio/build-system/configure.tests @ 5898:ab8c0f4c5c02

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

corrected display in summery of libs disabled by the user

File size: 17.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
24test_libroar() {
25 _min="$1"
26 [ "$_min" = '' ] && _min='current'
27
28 echo -n "checking for version of roaraudio... "
29
30 if roar-config --compare-versions current ge "$_min"
31 then
32  echo "`roar-config --version`, good"
33  return 0
34 else
35  _ver="`roar-config --version 2> /dev/null`"
36  if [ "$_ver" = '' ]
37  then
38   echo "unknown. bad."
39  else
40   echo "$_ver, too old (minimum required: $_min)"
41  fi
42  return 1
43 fi
44}
45
46test_pkgversion() {
47 echo -n "checking for version of this package... "
48 VERSION=`head -n 1 ChangeLog | cut -d' ' -f2`
49 echo "$VERSION"
50 return 0
51}
52
53test_buildstamp() {
54 echo -n "checking for build stamp of this package... "
55 BUILD_STAMP="`date -u +'%F %X'` (`id -un`@`uname -n`)"
56 echo "$BUILD_STAMP"
57 return 0
58}
59
60test_cc() {
61 echo -n "checking for C compiler... "
62 if [ "$CC" != '' ]
63 then
64  echo $CC
65  return 0
66 else
67  CC=$(which gcc cc 2> /dev/null | grep ^/ | head -n 1)
68  if [ "$CC" = '' ]
69  then
70   echo 'none'
71   exit 1;
72  fi
73  echo $CC
74  return 0
75 fi
76}
77
78test_ranlib() {
79 echo -n "checking for ranlib... "
80 if [ "$RANLIB" != '' ]
81 then
82  echo $RANLIB
83  return 0
84 else
85  _guess=`echo $CC | sed 's/[gp]*cc\(-.*\)*//'`
86  RANLIB=$(which ${_guess}ranlib ranlib 2> /dev/null | grep ^/ | head -n 1)
87  if [ "$RANLIB" = '' ]
88  then
89   echo 'none'
90   return 1
91  fi
92  echo $RANLIB
93  return 0
94 fi
95}
96
97test_pkgconfig() {
98 echo -n "checking for pkg-config... "
99 PKG_CONFIG=$(which pkg-config false 2> /dev/null | grep ^/ | head -n 1)
100 if $PKG_CONFIG --help > /dev/null 2> /dev/null
101 then
102  echo $PKG_CONFIG
103  return 0
104 else
105  echo no
106  return 1
107 fi
108}
109
110test_sysname() {
111 echo -n "checking for sysname... "
112 SYSNAME=$(uname -s)
113 echo "$SYSNAME"
114 return 0
115}
116
117test_crosscompile() {
118 echo -n 'checking if we cross compile... '
119 if $CROSS_COMPILE
120 then
121  echo yes
122
123  echo -n "checking for exec helper... "
124  if [ "$EXEC_HELPER" = '' ]
125  then
126   if $TARGET_WIN32
127   then
128    EXEC_HELPER=$(which wine 2> /dev/null | grep ^/ | head -n 1)
129    if [ "$EXEC_HELPER" = '' ]
130    then
131     echo 'none (please install wine)'
132    else
133     echo "$EXEC_HELPER"
134    fi
135   else
136    echo 'none (unknown)'
137   fi
138  else
139   echo "$EXEC_HELPER"
140  fi
141
142  echo -n "checking for sysname of target... "
143  if $TARGET_CYGWIN
144  then
145   SYSNAME=cygwin
146  elif $TARGET_WIN32
147  then
148   SYSNAME=win32
149  else
150   SYSNAME=unknown
151  fi
152  echo "$SYSNAME"
153  return 0
154 else
155  echo no
156  return 1
157 fi
158}
159
160test_wextra() {
161 # Check for -Wextra
162 #Wextra
163 echo -n "checking if compiler supports -Wextra... "
164 echo 'int main (void) { return 0; }' > $TF_C
165 if $CCTF -Wextra 2> /dev/null;
166 then
167  echo yes
168  Wextra=true
169  return 0
170 else
171  echo no
172  Wextra=false
173  return 1
174 fi
175}
176
177test_cp_v() {
178 echo -n 'checking if cp supports -v... '
179 if cp -v --help > /dev/null 2> /dev/null
180 then
181  echo "cp_v=-v" >&4
182  echo yes
183  return 0
184 else
185  echo "cp_v=" >&4
186  echo no
187  return 1
188 fi
189}
190
191test_bin_format() {
192 echo -n "checking for binary format... "
193 echo "TEST BIN FORMAT:" >&5
194
195 {
196  echo "#include <stdio.h>"
197  echo
198  echo "int main (void) {"
199  echo " char buf[512];"
200  echo " size_t len;"
201  echo
202  echo " len = fread(buf, 1, sizeof(buf), stdin);"
203  echo " if ( len < 4 )"
204  echo "  return 1;"
205  echo
206  echo " if ( buf[0] == '\\177' && buf[1] == 'E' && buf[2] == 'L' && buf[3] == 'F' ) {"
207  echo "  printf(\"ELF%c\", (char)10);"
208  echo "  return 0;"
209  echo " }"
210  echo
211  echo " if ( buf[0] == 'M' && buf[1] == 'Z' ) {"
212  echo "  printf(\"MZ%c\", (char)10);"
213  echo "  return 0;"
214  echo " }"
215  echo
216  echo " return 1;"
217  echo "}"
218 } > $TF_C
219
220 echo "--- BEGIN OF CODE BLOCK ---" >&5
221 cat $TF_C >&5
222 echo "--- END OF CODE BLOCK ---" >&5
223
224 echo "BIN FORMAT() HAS COMPILER/LINKER OUTPUT:" >&5
225 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
226 $CCTF >&5 2>&5;
227 R=$?
228 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
229
230 if [ "$R" = '0' ]
231 then
232  BIN_FORMAT=`$EXEC_HELPER $TF_E < $TF_E 2> /dev/null`
233  R=$?
234  if [ "$R" = '0' ]
235  then
236   echo "$BIN_FORMAT"
237   echo "BIN FORMAT() IS '$BIN_FORMAT'" >&5
238   return 0
239  else
240   BIN_FORMAT=unknown
241   echo 'unknown'
242   echo "BIN FORMAT() NOT KNOWN" >&5
243   return 1
244  fi
245 else
246  BIN_FORMAT=unknown
247  echo 'unknown'
248  echo "BIN FORMAT() NOT KNOWN" >&5
249  return 1
250 fi
251}
252
253test_linkdeps() {
254 if [ "$LINK_DEPS" = 'auto' ]
255 then
256  if [ "$BIN_FORMAT" = 'ELF' ]
257  then
258   LINK_DEPS='indirect'
259  else
260   LINK_DEPS='full'
261  fi
262 fi
263
264 echo "LINK_DEPS=$LINK_DEPS" >&4
265 echo "checking for linkage model... $LINK_DEPS"
266 return 0
267}
268
269test_lib () {
270 _have_libs=false
271 _have_headers=false
272 _defs=''
273 echo > $TF_C
274
275 $NEED_GNU_SOURCE && _defs="$_defs -D_GNU_SOURCE"
276
277 name="$1"
278 last_tested_object="$name"
279 echo -n "checking for $name... "
280 echo "TEST LIB: $name" >&5
281 shift;
282
283 if [ "$infotext" = '' ]
284 then
285  _info=''
286 else
287  _info=" ($infotext)"
288 fi
289
290 LIBS=''
291
292 while [ "$1" != '--' ]
293 do
294  echo "LIB($name) HAS LIB INFO: $1" >&5
295  case "$1" in
296   'c'|'-lc')
297    :; # no need to do anything
298   ;;
299   '-'*)
300    LIBS="$LIBS $1"
301    _have_libs=true
302   ;;
303   *)
304    LIBS="$LIBS -l$1"
305    _have_libs=true
306   ;;
307  esac
308  shift;
309 done
310
311 shift;
312
313 echo "LIB($name) IS TESTED USING LIBS: $LIBS" >&5
314
315 while [ "$1" != '' ]
316 do
317  _h="$1";
318  shift;
319  _envname=`echo "$_h" | to_escaped`
320  eval "_t=\$libname_$_envname"
321  echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
322  if [ "$_t" = 'false' ]
323  then
324   echo "// not including <$_h> as it was tested as not present"  >> $TF_C
325  else
326   echo "#include <$_h>"  >> $TF_C
327   _have_headers=true
328  fi
329 done
330
331 echo 'int main (void) { return 0; }' >> $TF_C
332
333 if [ "$_have_libs" = 'false' -a "$_have_headers" = 'false' ]
334 then
335  echo "no (nothing left to test)$_info"
336  echo "LIB($name) HAS NOTHING TO TEST" >&5
337  return 1
338 fi
339
340 echo "LIB($name) IS TESTED USING TEST CODE:" >&5
341 echo "--- BEGIN OF CODE BLOCK ---" >&5
342 cat $TF_C >&5
343 echo "--- END OF CODE BLOCK ---" >&5
344
345 echo "LIB($name) HAS COMPILER/LINKER OUTPUT:" >&5
346 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
347 $CCTF $_defs $LIBS >&5 2>&5;
348 R=$?
349 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
350
351 if [ "$R" = '0' ]
352 then
353  echo "yes$_info"
354  echo "LIB($name) WAS FOUND" >&5
355 else
356  echo "no$_info"
357  echo "LIB($name) NOT FOUND" >&5
358 fi
359
360 return $R
361}
362
363test_lib_defmake () {
364 def="$1"
365 subdir="$2"
366 shift
367 shift
368 name="$1"
369 lib="$2"
370 shift
371
372 echo "TEST LIB: $name" >&5
373
374 [ "$subdir" = '%' ] && subdir=''
375
376 envlib=`echo "$lib"   | cut -d/ -f1 | to_escaped`
377 envname=`echo "$name" | to_escaped`
378
379 eval "envname2envlib_$envname=\$envlib"
380
381 if [ "$envlib" = 'c' ]
382 then
383  envlib="$envname"
384 fi
385
386 echo "LIB($name) HAS envlib='$envlib', envname='$envname'" >&5
387
388 if [ "$lib" != '--' ]
389 then
390  echo "EVAL: _no=\$no_lib_$envlib" >&5
391  eval _no="\$no_lib_$envlib";
392  $MINIMAL && _no='XXX'
393
394  if [ "$_no" != '' ]
395  then
396    echo "checking for $name... disabled by user"
397    echo "LIB($name) IS DISABLED BY USER" >&5
398   [ "$subdir" != '' ] && \
399    echo "subdir_$subdir=" >&4
400   echo "lib_$envlib=" >&4
401   eval "libname_$envname=false"
402   return;
403  fi
404 fi
405
406 lib="$lib/"
407
408 libn=`echo $lib | cut -d/ -f1`
409 is_fatal=`echo $lib | cut -d/ -f2`
410
411 lib="$libn"
412
413# echo "is_fatal(i)=$is_fatal" >&5
414
415 if [ "$is_fatal" = '' -o "$is_fatal" = 'no' -o "$is_fatal" = 'false' ]
416 then
417  is_fatal=false
418 else
419  is_fatal=true
420  shift; # maybe we have a pkg name, not a lib
421 fi
422
423 echo "LIB($name) HAS FATAL FLAG SET TO $is_fatal" >&5
424
425# echo "is_fatal(b)=$is_fatal" >&5
426
427 LIBS=$($PKG_CONFIG --silence-errors --cflags --libs $lib 2> /dev/null)
428 if [ "$?" != '0' ]
429 then
430  if $is_fatal
431  then
432   echo "checking for $name... no (fatal config errors)"
433   echo "LIB($name) HAS FATAL ERRORS" >&5
434   echo "LIB($name) NOT FOUND" >&5
435   [ "$subdir" != '' ] && \
436    echo "subdir_$subdir=" >&4
437   echo "lib_$envlib=" >&4
438   return
439  fi
440  LIBS="-l$lib"
441 fi
442
443 echo "LIB($name) HAS LIBS: $LIBS" >&5
444
445 if test_lib "$name" $LIBS "$@"
446 then
447  subdir_var='subdir_'"`echo $subdir | to_escaped`"
448  echo "#define $def"            >&3
449  [ "$subdir" != '' ] && \
450   echo "$subdir_var=$subdir" >&4
451  [ "$lib" != 'c' ] && \
452   echo "lib_$envlib=$LIBS" >&4
453  if [ "$lib" != 'c' ]
454  then
455   eval "lib_$envlib='$LIBS'"
456  else
457   echo "LIB($name) SETS libname_$envname=true" >&5
458   eval "libname_$envname=true"
459  fi
460  return 0
461 else
462  [ "$subdir" != '' ] && \
463   echo "subdir_$subdir=" >&4
464  [ "$lib" != 'c' ] && \
465   echo "lib_$envlib=" >&4
466  echo "LIB($name) SETS libname_$envname=false" >&5
467  eval "libname_$envname=false"
468  return 1
469 fi
470 echo >&5
471 echo >&5
472}
473
474test_tool_defmake () {
475 DEF="$1"
476 NAME="$2"
477 shift;
478 shift;
479 echo -n "checking for $NAME... "
480
481 echo "TEST TOOL: $NAME" >&5
482
483 if $RUNTIME_DETECT
484 then
485  echo "$1 (runtime detect)"
486  echo "TOOL($NAME) WILL BE RUNTIME DETECTED" >&5
487  echo "#define $DEF "\""$1"\" >&3
488  return 0
489 elif $MINIMAL
490 then
491  echo "disabled by user (minimalstic build)"
492  echo "TOOL($NAME) IS DISABLED BY USER" >&5
493  return 1
494 else
495
496  LIST=$(which "$@" 2> /dev/null | grep ^/ | head -n 1)
497
498  if [ "$LIST" = '' ]
499  then
500   echo 'no'
501   echo "TOOL($NAME) NOT FOUND" >&5
502   return 1
503  else
504   echo $LIST
505   echo "#define $DEF "\""$LIST"\" >&3
506   echo "TOOL($NAME) IS AT $LIST" >&5
507   return 0
508  fi
509 fi
510}
511
512test_func_defmake () {
513 _defs=''
514 DEF="$1"
515 NAME="$2"
516 shift;
517 shift;
518 echo -n "checking for $NAME()... "
519
520 CALL="$1"
521 shift;
522
523 $NEED_GNU_SOURCE && _defs="$_defs -D_GNU_SOURCE"
524
525 if [ "$infotext" = '' ]
526 then
527  _info=''
528 else
529  _info=" ($infotext)"
530 fi
531
532 LIBS=''
533
534 _funcname=`echo "$NAME" | to_escaped`
535
536 while [ "$1" != '--' ]
537 do
538  case "$1" in
539   'c'|'-lc')
540    :; # no need to do anything
541   ;;
542   '-'*)
543    LIBS="$LIBS $1"
544   ;;
545   *)
546    LIBS="-l$1"
547   ;;
548  esac
549  shift;
550 done
551
552 shift; # skip '--'
553
554 echo "TEST FUNCTION: $NAME" >&5
555
556 {
557  while [ "$1" != '' ]
558  do
559   _h="$1";
560   shift;
561   _envname=`echo "$_h" | to_escaped`
562   eval "_t=\$libname_$_envname"
563   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
564   if [ "$_t" = 'false' ]
565   then
566    echo "// not including <$_h> as it was tested as not present"
567   else
568    echo "#include <$_h>"
569   fi
570  done
571
572  echo 'int main (void) {'
573  echo " $CALL;"
574  echo ' return 0;'
575  echo '}'
576
577 } > $TF_C
578
579 echo "--- BEGIN OF CODE BLOCK ---" >&5
580 cat $TF_C >&5
581 echo "--- END OF CODE BLOCK ---" >&5
582
583 echo "FUNCTION($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
584 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
585 $CCTF $_defs $LIBS >&5 2>&5;
586 R=$?
587 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
588
589 if [ "$R" = '0' ]
590 then
591  eval funcname_$_funcname=true
592  echo "#define $DEF" >&3
593  echo "FUNCTION($NAME) IS OK" >&5
594  echo "yes$_info"
595  return 0
596 else
597  eval funcname_$_funcname=false
598  echo "FUNCTION($NAME) IS NOT OK" >&5
599  echo "no$_info"
600  return 1
601 fi
602}
603
604test_const_defmake () {
605 DEF="$1"
606 NAME="$2"
607 shift;
608 shift;
609 echo -n "checking for constant $NAME... "
610
611 TYPE="$1"
612 CONST="$2"
613 shift;
614 shift;
615
616 LIBS=''
617
618 while [ "$1" != '--' ]
619 do
620  case "$1" in
621   'c'|'-lc')
622    :; # no need to do anything
623   ;;
624   '-'*)
625    LIBS="$LIBS $1"
626   ;;
627   *)
628    LIBS="-l$1"
629   ;;
630  esac
631  shift;
632 done
633
634 shift; # skip '--'
635
636 echo "TEST CONST: $NAME" >&5
637
638 {
639  while [ "$1" != '' ]
640  do
641   _h="$1";
642   shift;
643   _envname=`echo "$_h" | to_escaped`
644   eval "_t=\$libname_$_envname"
645   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
646   if [ "$_t" = 'false' ]
647   then
648    echo "// not including <$_h> as it was tested as not present"
649   else
650    echo "#include <$_h>"
651   fi
652  done
653
654  case "$TYPE" in
655   ':int')
656    _type='int'
657   ;;
658   ':float')
659    _type='float'
660   ;;
661   ':ptr')
662    _type='void *'
663   ;;
664   *)
665    _type="$TYPE"
666   ;;
667  esac
668
669  echo 'int main (void) {'
670  echo " $_type x;"
671  echo " x = ($_type)$CONST;"
672  echo ' return 0;'
673  echo '}'
674
675 } > $TF_C
676
677 echo "--- BEGIN OF CODE BLOCK ---" >&5
678 cat $TF_C >&5
679 echo "--- END OF CODE BLOCK ---" >&5
680
681 echo "CONST($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
682 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
683 $CCTF $LIBS >&5 2>&5;
684 R=$?
685 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
686
687 if [ "$R" = '0' ]
688 then
689  echo "#define $DEF" >&3
690  echo "CONST($NAME) IS OK" >&5
691  echo yes
692  return 0
693 else
694  echo "CONST($NAME) IS NOT OK" >&5
695  echo no
696  return 1
697 fi
698}
699
700test_var_defmake () {
701 DEF="$1"
702 NAME="$2"
703 shift;
704 shift;
705 echo -n "checking for global variable $NAME... "
706
707 TYPE="$1"
708 VAR="$2"
709 shift;
710 shift;
711
712 LIBS=''
713
714 while [ "$1" != '--' ]
715 do
716  case "$1" in
717   'c'|'-lc')
718    :; # no need to do anything
719   ;;
720   '-'*)
721    LIBS="$LIBS $1"
722   ;;
723   *)
724    LIBS="-l$1"
725   ;;
726  esac
727  shift;
728 done
729
730 shift; # skip '--'
731
732 echo "TEST VAR: $NAME" >&5
733
734 {
735  while [ "$1" != '' ]
736  do
737   _h="$1";
738   shift;
739   _envname=`echo "$_h" | to_escaped`
740   eval "_t=\$libname_$_envname"
741   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
742   if [ "$_t" = 'false' ]
743   then
744    echo "// not including <$_h> as it was tested as not present"
745   else
746    echo "#include <$_h>"
747   fi
748  done
749
750  case "$TYPE" in
751   ':int')
752    _type='int'
753   ;;
754   ':float')
755    _type='float'
756   ;;
757   ':ptr')
758    _type='void *'
759   ;;
760   *)
761    _type="$TYPE"
762   ;;
763  esac
764
765  echo 'int main (void) {'
766  echo " $_type x;"
767  echo " x = ($_type)$VAR;"
768  echo " $VAR = x;"
769  echo ' return 0;'
770  echo '}'
771 } > $TF_C
772
773 echo "--- BEGIN OF CODE BLOCK ---" >&5
774 cat $TF_C >&5
775 echo "--- END OF CODE BLOCK ---" >&5
776
777 echo "VAR($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
778 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
779 $CCTF $LIBS >&5 2>&5;
780 R=$?
781 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
782
783 if [ "$R" = '0' ]
784 then
785  echo "#define $DEF" >&3
786  echo "VAR($NAME) IS OK" >&5
787  echo yes
788  return 0
789 else
790  echo "VAR($NAME) IS NOT OK" >&5
791  echo no
792  return 1
793 fi
794}
795
796test_version () {
797 DEF="$1"
798 NAME="$2"
799 PKGNAME="$3"
800
801 echo -n "checking for version of $NAME... "
802
803 _ver=$($PKG_CONFIG --modversion $PKGNAME 2> /dev/null)
804
805 if [ "$_ver" = '' ]
806 then
807  _ver=unknown
808 fi
809
810 echo $_ver
811
812 _ver_def=$(echo $_ver | to_escaped | to_upper)
813 echo "#define ${DEF}_$_ver_def" >&3
814
815 echo "$_ver" | if grep '^[0-9]*\.[0-9]*\.[0-9]*$' > /dev/null
816 then
817  _ver_vdef=$(echo "$_ver" | sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]\)*$/_ROAR_MKVERSION(\1, \2, \3)/')
818  echo "#define ${DEF} $_ver_vdef" >&3
819 else
820  echo "#define ${DEF} 0" >&3
821 fi
822
823 return 0
824}
825
826test_type () {
827 DEF="$1"
828 NAME="$2"
829 INITVAL="$3"
830 DASHDASH="$4"
831 shift; shift;
832
833 if [ "$#" -ge '2' ]
834 then
835  shift; shift;
836 fi
837
838 HEADERS="stdint.h string.h unistd.h sys/types.h $*" #including headers here let
839                                                     #them get checked for presence.
840
841 [ "$INITVAL" = '' ] && INITVAL='0'
842
843 echo -n "checking for type $NAME... "
844 echo "TEST TYPE: $NAME" >&5
845
846 echo "// type test for type $NAME"  >  $TF_C # need a clean file, write something
847 for _h in $HEADERS
848 do
849  _envname=`echo "$_h" | to_escaped`
850  eval "_t=\$libname_$_envname"
851  echo "TYPE($NAME) DEPENDS ON $_h($_envname) with state '$_t'" >&5
852  if [ "$_t" = 'false' ]
853  then
854   echo "// not including <$_h> as it was tested as not present"  >> $TF_C
855  else
856   echo "#include <$_h>"  >> $TF_C
857  fi
858 done
859 echo "int main (void) { $NAME _var = $INITVAL; return 0; }" >> $TF_C
860
861 echo "--- BEGIN OF CODE BLOCK ---" >&5
862 cat $TF_C >&5
863 echo "--- END OF CODE BLOCK ---" >&5
864
865 echo "TYPE($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
866 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
867 $CCTF >&5 2>&5;
868 R=$?
869 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
870
871 if [ "$R" = '0' ]
872 then
873  echo "#define $DEF" >&3
874  echo 'ok'
875  echo "TYPE($NAME) IS OK" >&5
876  return 0
877 else
878  echo 'not found'
879  echo "TYPE($NAME) NOT FOUND" >&5
880  return 1
881 fi
882}
883
884test_pa_type () {
885 DEF="$1"
886 NAME="$2"
887 TYPE="$3"
888 V0="$4"
889 V1="$5"
890 TEST="$6"
891 shift; shift; shift; shift; shift; shift;
892 HEADER="$*"
893 RS='%s'
894
895 case "$TYPE" in
896  'type')
897   MSG="checking for type of $NAME()... "
898  ;;
899  'args:'*)
900   MSG="checking for argument types of $NAME()... "
901   RS=`echo "$TYPE" | cut -d: -f2`
902  ;;
903 esac;
904
905 echo -n "$MSG"
906 echo '#include <pulse/pulseaudio.h>'  >  $TF_C
907 for _h in $HEADERS
908 do
909  echo "#include <$_h>"  >> $TF_C
910 done
911 echo '#include <string.h>'           >> $TF_C
912 echo 'int main (void) { return 0; }' >> $TF_C
913 echo "$TEST"                         >> $TF_C
914
915 if $CCTF 2> /dev/null;
916 then
917  R="$V0"
918 else
919  R="$V1"
920 fi
921
922 echo "#define $DEF $R" >&3
923 printf "$RS\n" "$R"
924 return 0
925}
926
927test_winsock() {
928 test_lib_defmake ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_LIBWSOCK32    %            WinSockP0     wsock32    -- winsock2.h
929 test_lib_defmake ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_LIBWS2_32     %            WinSockP1     ws2_32     -- winsock2.h
930 echo 'NETLIBS += $(lib_wsock32) $(lib_ws2_32)' >&4
931 return 0
932}
933
934test_netlibs() {
935 __old_MINIMAL=$MINIMAL
936 MINIMAL=false
937 test_winsock
938 MINIMAL=$__old_MINIMAL
939 return 0
940}
941
942test_pthread() {
943 echo -n 'checking for -pthread... '
944
945 echo '#include <pthread.h>'                            > $TF_C
946 echo 'int main (void) { pthread_self(); return 0; }'  >> $TF_C
947
948 if $CCTF -pthread 2> /dev/null;
949 then
950  echo "#define ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_CC_PTHREAD_OPTION" >&3
951  echo 'opt_pthread=-pthread' >&4
952  echo 'pthread=$(opt_pthread)' >&4
953  echo yes
954  _ret=0
955 else
956  echo 'opt_pthread=' >&4
957  echo 'pthread=$(lib_pthread)' >&4
958  echo no
959  test_lib_defmake ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_LIBPTHREAD    %            libpthread    pthread    -- pthread.h
960  _ret=$?
961 fi
962
963 [ "$_ret" = '0' ] && echo "#define ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_PTHREAD" >&3
964 return $_ret
965}
966
967#ll
Note: See TracBrowser for help on using the repository browser.