source: roaraudio/build-system/configure.tests @ 5806:a0d6fbdffd36

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

Made build system tests return correct error codes.

File size: 17.4 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... "
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 echo -n "checking for $name... "
279 echo "TEST LIB: $name" >&5
280 shift;
281
282 if [ "$infotext" = '' ]
283 then
284  _info=''
285 else
286  _info=" ($infotext)"
287 fi
288
289 LIBS=''
290
291 while [ "$1" != '--' ]
292 do
293  echo "LIB($name) HAS LIB INFO: $1" >&5
294  case "$1" in
295   'c'|'-lc')
296    :; # no need to do anything
297   ;;
298   '-'*)
299    LIBS="$LIBS $1"
300    _have_libs=true
301   ;;
302   *)
303    LIBS="$LIBS -l$1"
304    _have_libs=true
305   ;;
306  esac
307  shift;
308 done
309
310 shift;
311
312 echo "LIB($name) IS TESTED USING LIBS: $LIBS" >&5
313
314 while [ "$1" != '' ]
315 do
316  _h="$1";
317  shift;
318  _envname=`echo "$_h" | to_escaped`
319  eval "_t=\$libname_$_envname"
320  echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
321  if [ "$_t" = 'false' ]
322  then
323   echo "// not including <$_h> as it was tested as not present"  >> $TF_C
324  else
325   echo "#include <$_h>"  >> $TF_C
326   _have_headers=true
327  fi
328 done
329
330 echo 'int main (void) { return 0; }' >> $TF_C
331
332 if [ "$_have_libs" = 'false' -a "$_have_headers" = 'false' ]
333 then
334  echo "no (nothing left to test)$_info"
335  echo "LIB($name) HAS NOTHING TO TEST" >&5
336  return 1
337 fi
338
339 echo "LIB($name) IS TESTED USING TEST CODE:" >&5
340 echo "--- BEGIN OF CODE BLOCK ---" >&5
341 cat $TF_C >&5
342 echo "--- END OF CODE BLOCK ---" >&5
343
344 echo "LIB($name) HAS COMPILER/LINKER OUTPUT:" >&5
345 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
346 $CCTF $_defs $LIBS >&5 2>&5;
347 R=$?
348 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
349
350 if [ "$R" = '0' ]
351 then
352  echo "yes$_info"
353  echo "LIB($name) WAS FOUND" >&5
354 else
355  echo "no$_info"
356  echo "LIB($name) NOT FOUND" >&5
357 fi
358
359 return $R
360}
361
362test_lib_defmake () {
363 def="$1"
364 subdir="$2"
365 shift
366 shift
367 name="$1"
368 lib="$2"
369 shift
370
371 echo "TEST LIB: $name" >&5
372
373 [ "$subdir" = '%' ] && subdir=''
374
375 envlib=`echo "$lib"   | cut -d/ -f1 | to_escaped`
376 envname=`echo "$name" | to_escaped`
377
378 if [ "$envlib" = 'c' ]
379 then
380  envlib="$envname"
381 fi
382
383 echo "LIB($name) HAS envlib='$envlib', envname='$envname'" >&5
384
385 if [ "$lib" != '--' ]
386 then
387  echo "EVAL: _no=\$no_lib_$envlib" >&5
388  eval _no="\$no_lib_$envlib";
389  $MINIMAL && _no='XXX'
390
391  if [ "$_no" != '' ]
392  then
393    echo "checking for $name... disabled by user"
394    echo "LIB($name) IS DISABLED BY USER" >&5
395   [ "$subdir" != '' ] && \
396    echo "subdir_$subdir=" >&4
397   echo "lib_$envlib=" >&4
398   return;
399  fi
400 fi
401
402 lib="$lib/"
403
404 libn=`echo $lib | cut -d/ -f1`
405 is_fatal=`echo $lib | cut -d/ -f2`
406
407 lib="$libn"
408
409# echo "is_fatal(i)=$is_fatal" >&5
410
411 if [ "$is_fatal" = '' -o "$is_fatal" = 'no' -o "$is_fatal" = 'false' ]
412 then
413  is_fatal=false
414 else
415  is_fatal=true
416  shift; # maybe we have a pkg name, not a lib
417 fi
418
419 echo "LIB($name) HAS FATAL FLAG SET TO $is_fatal" >&5
420
421# echo "is_fatal(b)=$is_fatal" >&5
422
423 LIBS=$($PKG_CONFIG --silence-errors --cflags --libs $lib 2> /dev/null)
424 if [ "$?" != '0' ]
425 then
426  if $is_fatal
427  then
428   echo "checking for $name... no (fatal config errors)"
429   echo "LIB($name) HAS FATAL ERRORS" >&5
430   echo "LIB($name) NOT FOUND" >&5
431   [ "$subdir" != '' ] && \
432    echo "subdir_$subdir=" >&4
433   echo "lib_$envlib=" >&4
434   return
435  fi
436  LIBS="-l$lib"
437 fi
438
439 echo "LIB($name) HAS LIBS: $LIBS" >&5
440
441 if test_lib "$name" $LIBS "$@"
442 then
443  subdir_var='subdir_'"`echo $subdir | to_escaped`"
444  echo "#define $def"            >&3
445  [ "$subdir" != '' ] && \
446   echo "$subdir_var=$subdir" >&4
447  [ "$lib" != 'c' ] && \
448   echo "lib_$envlib=$LIBS" >&4
449  if [ "$lib" != 'c' ]
450  then
451   eval "lib_$envlib='$LIBS'"
452  else
453   echo "LIB($name) SETS libname_$envname=true" >&5
454   eval "libname_$envname=true"
455  fi
456  return 0
457 else
458  [ "$subdir" != '' ] && \
459   echo "subdir_$subdir=" >&4
460  [ "$lib" != 'c' ] && \
461   echo "lib_$envlib=" >&4
462  echo "LIB($name) SETS libname_$envname=false" >&5
463  eval "libname_$envname=false"
464  return 1
465 fi
466 echo >&5
467 echo >&5
468}
469
470test_tool_defmake () {
471 DEF="$1"
472 NAME="$2"
473 shift;
474 shift;
475 echo -n "checking for $NAME... "
476
477 echo "TEST TOOL: $NAME" >&5
478
479 if $RUNTIME_DETECT
480 then
481  echo "$1 (runtime detect)"
482  echo "TOOL($NAME) WILL BE RUNTIME DETECTED" >&5
483  echo "#define $DEF "\""$1"\" >&3
484  return 0
485 elif $MINIMAL
486 then
487  echo "disabled by user (minimalstic build)"
488  echo "TOOL($NAME) IS DISABLED BY USER" >&5
489  return 1
490 else
491
492  LIST=$(which "$@" 2> /dev/null | grep ^/ | head -n 1)
493
494  if [ "$LIST" = '' ]
495  then
496   echo 'no'
497   echo "TOOL($NAME) NOT FOUND" >&5
498   return 1
499  else
500   echo $LIST
501   echo "#define $DEF "\""$LIST"\" >&3
502   echo "TOOL($NAME) IS AT $LIST" >&5
503   return 0
504  fi
505 fi
506}
507
508test_func_defmake () {
509 _defs=''
510 DEF="$1"
511 NAME="$2"
512 shift;
513 shift;
514 echo -n "checking for $NAME()... "
515
516 CALL="$1"
517 shift;
518
519 $NEED_GNU_SOURCE && _defs="$_defs -D_GNU_SOURCE"
520
521 if [ "$infotext" = '' ]
522 then
523  _info=''
524 else
525  _info=" ($infotext)"
526 fi
527
528 LIBS=''
529
530 _funcname=`echo "$NAME" | to_escaped`
531
532 while [ "$1" != '--' ]
533 do
534  case "$1" in
535   'c'|'-lc')
536    :; # no need to do anything
537   ;;
538   '-'*)
539    LIBS="$LIBS $1"
540   ;;
541   *)
542    LIBS="-l$1"
543   ;;
544  esac
545  shift;
546 done
547
548 shift; # skip '--'
549
550 echo "TEST FUNCTION: $NAME" >&5
551
552 {
553  while [ "$1" != '' ]
554  do
555   _h="$1";
556   shift;
557   _envname=`echo "$_h" | to_escaped`
558   eval "_t=\$libname_$_envname"
559   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
560   if [ "$_t" = 'false' ]
561   then
562    echo "// not including <$_h> as it was tested as not present"
563   else
564    echo "#include <$_h>"
565   fi
566  done
567
568  echo 'int main (void) {'
569  echo " $CALL;"
570  echo ' return 0;'
571  echo '}'
572
573 } > $TF_C
574
575 echo "--- BEGIN OF CODE BLOCK ---" >&5
576 cat $TF_C >&5
577 echo "--- END OF CODE BLOCK ---" >&5
578
579 echo "FUNCTION($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
580 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
581 $CCTF $_defs $LIBS >&5 2>&5;
582 R=$?
583 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
584
585 if [ "$R" = '0' ]
586 then
587  eval funcname_$_funcname=true
588  echo "#define $DEF" >&3
589  echo "FUNCTION($NAME) IS OK" >&5
590  echo "yes$_info"
591  return 0
592 else
593  eval funcname_$_funcname=false
594  echo "FUNCTION($NAME) IS NOT OK" >&5
595  echo "no$_info"
596  return 1
597 fi
598}
599
600test_const_defmake () {
601 DEF="$1"
602 NAME="$2"
603 shift;
604 shift;
605 echo -n "checking for constant $NAME... "
606
607 TYPE="$1"
608 CONST="$2"
609 shift;
610 shift;
611
612 LIBS=''
613
614 while [ "$1" != '--' ]
615 do
616  case "$1" in
617   'c'|'-lc')
618    :; # no need to do anything
619   ;;
620   '-'*)
621    LIBS="$LIBS $1"
622   ;;
623   *)
624    LIBS="-l$1"
625   ;;
626  esac
627  shift;
628 done
629
630 shift; # skip '--'
631
632 echo "TEST CONST: $NAME" >&5
633
634 {
635  while [ "$1" != '' ]
636  do
637   _h="$1";
638   shift;
639   _envname=`echo "$_h" | to_escaped`
640   eval "_t=\$libname_$_envname"
641   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
642   if [ "$_t" = 'false' ]
643   then
644    echo "// not including <$_h> as it was tested as not present"
645   else
646    echo "#include <$_h>"
647   fi
648  done
649
650  case "$TYPE" in
651   ':int')
652    _type='int'
653   ;;
654   ':float')
655    _type='float'
656   ;;
657   ':ptr')
658    _type='void *'
659   ;;
660   *)
661    _type="$TYPE"
662   ;;
663  esac
664
665  echo 'int main (void) {'
666  echo " $_type x;"
667  echo " x = ($_type)$CONST;"
668  echo ' return 0;'
669  echo '}'
670
671 } > $TF_C
672
673 echo "--- BEGIN OF CODE BLOCK ---" >&5
674 cat $TF_C >&5
675 echo "--- END OF CODE BLOCK ---" >&5
676
677 echo "CONST($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
678 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
679 $CCTF $LIBS >&5 2>&5;
680 R=$?
681 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
682
683 if [ "$R" = '0' ]
684 then
685  echo "#define $DEF" >&3
686  echo "CONST($NAME) IS OK" >&5
687  echo yes
688  return 0
689 else
690  echo "CONST($NAME) IS NOT OK" >&5
691  echo no
692  return 1
693 fi
694}
695
696test_var_defmake () {
697 DEF="$1"
698 NAME="$2"
699 shift;
700 shift;
701 echo -n "checking for global variable $NAME... "
702
703 TYPE="$1"
704 VAR="$2"
705 shift;
706 shift;
707
708 LIBS=''
709
710 while [ "$1" != '--' ]
711 do
712  case "$1" in
713   'c'|'-lc')
714    :; # no need to do anything
715   ;;
716   '-'*)
717    LIBS="$LIBS $1"
718   ;;
719   *)
720    LIBS="-l$1"
721   ;;
722  esac
723  shift;
724 done
725
726 shift; # skip '--'
727
728 echo "TEST VAR: $NAME" >&5
729
730 {
731  while [ "$1" != '' ]
732  do
733   _h="$1";
734   shift;
735   _envname=`echo "$_h" | to_escaped`
736   eval "_t=\$libname_$_envname"
737   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
738   if [ "$_t" = 'false' ]
739   then
740    echo "// not including <$_h> as it was tested as not present"
741   else
742    echo "#include <$_h>"
743   fi
744  done
745
746  case "$TYPE" in
747   ':int')
748    _type='int'
749   ;;
750   ':float')
751    _type='float'
752   ;;
753   ':ptr')
754    _type='void *'
755   ;;
756   *)
757    _type="$TYPE"
758   ;;
759  esac
760
761  echo 'int main (void) {'
762  echo " $_type x;"
763  echo " x = ($_type)$VAR;"
764  echo " $VAR = x;"
765  echo ' return 0;'
766  echo '}'
767 } > $TF_C
768
769 echo "--- BEGIN OF CODE BLOCK ---" >&5
770 cat $TF_C >&5
771 echo "--- END OF CODE BLOCK ---" >&5
772
773 echo "VAR($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
774 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
775 $CCTF $LIBS >&5 2>&5;
776 R=$?
777 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
778
779 if [ "$R" = '0' ]
780 then
781  echo "#define $DEF" >&3
782  echo "VAR($NAME) IS OK" >&5
783  echo yes
784  return 0
785 else
786  echo "VAR($NAME) IS NOT OK" >&5
787  echo no
788  return 1
789 fi
790}
791
792test_version () {
793 DEF="$1"
794 NAME="$2"
795 PKGNAME="$3"
796
797 echo -n "checking for version of $NAME... "
798
799 _ver=$($PKG_CONFIG --modversion $PKGNAME 2> /dev/null)
800
801 if [ "$_ver" = '' ]
802 then
803  _ver=unknown
804 fi
805
806 echo $_ver
807
808 _ver_def=$(echo $_ver | to_escaped | to_upper)
809 echo "#define ${DEF}_$_ver_def" >&3
810
811 echo "$_ver" | if grep '^[0-9]*\.[0-9]*\.[0-9]*$' > /dev/null
812 then
813  _ver_vdef=$(echo "$_ver" | sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]\)*$/_ROAR_MKVERSION(\1, \2, \3)/')
814  echo "#define ${DEF} $_ver_vdef" >&3
815 else
816  echo "#define ${DEF} 0" >&3
817 fi
818
819 return 0
820}
821
822test_type () {
823 DEF="$1"
824 NAME="$2"
825 INITVAL="$3"
826 DASHDASH="$4"
827 shift; shift;
828
829 if [ "$#" -ge '2' ]
830 then
831  shift; shift;
832 fi
833
834 HEADERS="stdint.h string.h unistd.h sys/types.h $*" #including headers here let
835                                                     #them get checked for presence.
836
837 [ "$INITVAL" = '' ] && INITVAL='0'
838
839 echo -n "checking for type $NAME... "
840 echo "TEST TYPE: $NAME" >&5
841
842 echo "// type test for type $NAME"  >  $TF_C # need a clean file, write something
843 for _h in $HEADERS
844 do
845  _envname=`echo "$_h" | to_escaped`
846  eval "_t=\$libname_$_envname"
847  echo "TYPE($NAME) DEPENDS ON $_h($_envname) with state '$_t'" >&5
848  if [ "$_t" = 'false' ]
849  then
850   echo "// not including <$_h> as it was tested as not present"  >> $TF_C
851  else
852   echo "#include <$_h>"  >> $TF_C
853  fi
854 done
855 echo "int main (void) { $NAME _var = $INITVAL; return 0; }" >> $TF_C
856
857 echo "--- BEGIN OF CODE BLOCK ---" >&5
858 cat $TF_C >&5
859 echo "--- END OF CODE BLOCK ---" >&5
860
861 echo "TYPE($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
862 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
863 $CCTF >&5 2>&5;
864 R=$?
865 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
866
867 if [ "$R" = '0' ]
868 then
869  echo "#define $DEF" >&3
870  echo 'ok'
871  echo "TYPE($NAME) IS OK" >&5
872  return 0
873 else
874  echo 'not found'
875  echo "TYPE($NAME) NOT FOUND" >&5
876  return 1
877 fi
878}
879
880test_pa_type () {
881 DEF="$1"
882 NAME="$2"
883 TYPE="$3"
884 V0="$4"
885 V1="$5"
886 TEST="$6"
887 shift; shift; shift; shift; shift; shift;
888 HEADER="$*"
889 RS='%s'
890
891 case "$TYPE" in
892  'type')
893   MSG="checking for type of $NAME()... "
894  ;;
895  'args:'*)
896   MSG="checking for argument types of $NAME()... "
897   RS=`echo "$TYPE" | cut -d: -f2`
898  ;;
899 esac;
900
901 echo -n "$MSG"
902 echo '#include <pulse/pulseaudio.h>'  >  $TF_C
903 for _h in $HEADERS
904 do
905  echo "#include <$_h>"  >> $TF_C
906 done
907 echo '#include <string.h>'           >> $TF_C
908 echo 'int main (void) { return 0; }' >> $TF_C
909 echo "$TEST"                         >> $TF_C
910
911 if $CCTF 2> /dev/null;
912 then
913  R="$V0"
914 else
915  R="$V1"
916 fi
917
918 echo "#define $DEF $R" >&3
919 printf "$RS\n" "$R"
920 return 0
921}
922
923test_winsock() {
924 test_lib_defmake ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_LIBWSOCK32    %            WinSockP0     wsock32    -- winsock2.h
925 test_lib_defmake ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_LIBWS2_32     %            WinSockP1     ws2_32     -- winsock2.h
926 echo 'NETLIBS += $(lib_wsock32) $(lib_ws2_32)' >&4
927 return 0
928}
929
930test_netlibs() {
931 test_winsock
932 return 0
933}
934
935test_pthread() {
936 echo -n 'checking for -pthread... '
937
938 echo '#include <pthread.h>'                            > $TF_C
939 echo 'int main (void) { pthread_self(); return 0; }'  >> $TF_C
940
941 if $CCTF -pthread 2> /dev/null;
942 then
943  echo '#define ROAR_HAVE_CC_PTHREAD_OPTION' >&3
944  echo 'opt_pthread=-pthread' >&4
945  echo 'pthread=$(opt_pthread)' >&4
946  echo yes
947  return 0
948 else
949  echo 'opt_pthread=' >&4
950  echo 'pthread=$(lib_pthread)' >&4
951  echo no
952  test_lib_defmake ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_LIBPTHREAD    %            libpthread    pthread    -- pthread.h
953  return $?
954 fi
955}
956
957#ll
Note: See TracBrowser for help on using the repository browser.