source: roaraudio/build-system/configure.tests @ 5854:3f6fbd6d10fa

Last change on this file since 5854:3f6fbd6d10fa was 5854:3f6fbd6d10fa, checked in by phi, 11 years ago

added common ${ROAR_BUILDSYSTEM_DEFPREFIX}HAVE_PTHREAD for both -pthread and -lpthread.

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