source: roaraudio/configure @ 5397:29df4cdcb5a6

Last change on this file since 5397:29df4cdcb5a6 was 5397:29df4cdcb5a6, checked in by phi, 12 years ago

use date -u not --utc as it seems to be more /universal/

  • Property exe set to *
File size: 70.5 KB
Line 
1#!/bin/sh
2
3# check for bash...
4
5if [ "$(echo -n)" = '-n' ]
6then
7 SHELL=$(which bash ksh sh 2> /dev/null | grep ^/ | head -n 1)
8 exec $SHELL $0 "$@"
9fi
10
11PATH="$PATH":/sbin:/usr/sbin:/usr/local/sbin:/usr/pkg/sbin # Ensure superuser paths
12PATH="$PATH":/usr/lib/ssh:/usr/lib/openssh                 # Ensure SSH paths
13
14# wine prints errors to stdout so stderr redirects do not work.
15# To avoid common problems with wine and $LANG/$LC_* we just reset them.
16
17LANG=C
18LC_CTYPE=C
19LC_NUMERIC=C
20LC_TIME=C
21LC_COLLATE=C
22LC_MONETARY=C
23
24#set -x
25
26# IDs officaly assigned
27DEV_VENDOR=0
28DEV_VENDOR_NAME='RoarAudio'
29#--------
30
31DISTRIBUTION_VERSION_STRING=''
32
33
34TF_C=testit.c
35TF_E=./testit
36LDPATH=''
37INCPATH=''
38
39OPTI_O=2
40
41CROSS_COMPILE=false
42
43SYSNAME='unknown'
44SHARED='-shared'
45SHARED_CF=''
46SHARED_SUFFIX='.so'
47COMPBIN_SUFFIX='.r'
48fPIC=true
49Wextra=false
50MMCU=''
51LINK_DEPS=full
52PKG_CONFIG=false
53RUNTIME_DETECT=false
54
55NEED_GNU_SOURCE=false
56
57PREFIX='/usr/local'
58PREFIX_BIN=''
59PREFIX_LIB=''
60PREFIX_INC=''
61PREFIX_MAN=''
62PREFIX_PC=''
63PREFIX_COMP_LIBS=''
64PREFIX_COMP_BINS=''
65
66CDROM_IS_DEV=true
67CDROM=""
68OSS_DEV=""
69OSS_MIX_DEV=""
70PROC_NET_DECNET="/proc/net/decnet"
71PROC_NET_DECNET_NEIGH=""
72PROC_NET_ARP=""
73TTY_DEV=""
74
75ROOT_UID=''
76
77VORBIS_BITS=32
78
79FSYNC=false
80
81DEFAULT_GRP=''
82
83AO_INST_DIR=''
84XMMS_INST_DIR=''
85AUDACIOUS_INST_DIR=''
86
87SNDIO_EMUL=true
88
89LIBAO=true
90XMMS=true
91AUDACIOUS=true
92
93DEFAULT_RATE=''
94DEFAULT_CHANNELS=''
95DEFAULT_BITS=''
96
97COMP_LIBS=true
98COMP_ROARD=true
99COMP_CLIENTS=true
100COMP_DOC=true
101COMP_COMP_BINS=true
102
103ALAW=true
104MULAW=true
105ALAW_RW=true
106MULAW_RW=true
107
108PROXY=true
109
110PASSWORD_API=true
111
112NO_LISTEN=false
113
114META_DATA=true
115
116SUPPORT_TRAP=false
117
118USE_MEMMGR=false
119
120WITHOUT_CF='cmd'
121
122WITHOUT_VIO=''
123
124WITHOUT_DCOMP=''
125
126HAVE_MAIN_ARGS=true
127
128MINIMAL=false
129BETA=true
130EXPERIMENTAL=true
131
132TARGET_WIN32=false
133TARGET_MICROCONTROLLER=false
134TARGET_CYGWIN=false
135
136EXEC_HELPER=''
137
138ROAR_DRIVER_DEFAULT=''
139ROAR_DRIVER_CODEC=''
140
141ROARD_BITS=''  # Bits per sample used by roard.
142ROARD_CFREQ='' # cycle frequens for roard, normally 100Hz
143
144# Libs which are per default disabled:
145no_lib_ssl=true
146
147_CARGS="$@";
148
149# other stuff we need to reset:
150infotext=''
151
152# some very basic string functions:
153to_upper() {
154 tr 'a-z' 'A-Z'
155}
156
157to_escaped() {
158 tr 'A-Z/.+-' 'a-z____'
159}
160
161echo -n "checking for version of this package... "
162VERSION=`head -n 1 ChangeLog | cut -d' ' -f2`
163echo "$VERSION"
164
165echo -n "checking for build stamp of this package... "
166BUILD_STAMP="`date -u +'%F %X'` (`id -un`@`uname -n`)"
167echo "$BUILD_STAMP"
168
169echo -n "checking for C compiler... "
170if [ "$CC" != '' ]
171then
172 echo $CC
173else
174 CC=$(which gcc cc 2> /dev/null | grep ^/ | head -n 1)
175 if [ "$CC" = '' ]
176 then
177  echo 'none'
178  exit 1;
179 fi
180 echo $CC
181fi
182
183echo -n "checking for ranlib... "
184if [ "$RANLIB" != '' ]
185then
186 echo $RANLIB
187else
188 _guess=`echo $CC | sed 's/[gp]*cc\(-.*\)*//'`
189 RANLIB=$(which ${_guess}ranlib ranlib 2> /dev/null | grep ^/ | head -n 1)
190 if [ "$RANLIB" = '' ]
191 then
192  echo 'none'
193 fi
194 echo $RANLIB
195fi
196
197echo -n "checking for pkg-config... "
198PKG_CONFIG=$(which pkg-config false 2> /dev/null | grep ^/ | head -n 1)
199if $PKG_CONFIG --help > /dev/null 2> /dev/null
200then
201 echo $PKG_CONFIG
202else
203 echo no
204fi
205
206#Makefile.conf not yet open, write it later
207
208echo -n "checking for sysname... "
209SYSNAME=$(uname -s)
210echo "$SYSNAME"
211
212while [ "$1" != '' ]
213do
214 case "$1" in
215  '--help')
216   echo 'OPTIONS:'
217   echo
218   echo '--help                      - This Help'
219   echo
220   echo '--ldpath DIR                - Add DIR to (compile time) search list for libs'
221   echo '--incpath DIR               - Add DIR to search list for headers'
222   echo '--addpath DIR               - Add DIR/lib to lib, DIR/include to header search list'
223   echo
224   echo '--cflags FLAGS              - Sets additional compiler flags (default: '"$CFLAGS"')'
225   echo '--ldflags FLAGS             - Sets additional linker flags (default: '"$LDFLAGS"')'
226   echo '--opti LEVEL                - Sets optimizer level (default: '"$OPTI_O"')'
227   echo '--link-deps MODE            - Model for linking dependencys: full or indirect'
228   echo
229   echo '--cc CC                     - Set name of C compiler (CC) to CC'
230   echo '--ranlib RANLIB             - Set name of ranlib (RANLIB) to RANLIB'
231   echo
232   echo '--cdrom DEV                 - Set default CDRum device'
233   echo '--tty DEV                   - Set default TTY'
234   echo '--oss-dev DEV               - Set default OSS device'
235   echo '--oss-mixer-dev DEV         - Set default OSS mixer device'
236   echo '--proc-net-decnet FILE      - Set DECnet file for DECnet support auto detecting'
237   echo '                              (ignore this on non-Linux)'
238   echo '--proc-net-decnet-neigh FILE'
239   echo '                            - Set file for DECnet neighbour table'
240   echo '--proc-net-arp FILE         - Set file for IP neighbour (ARP) table'
241   echo '--audio-group GROUP         - Sets group of audio permitted users'
242   echo '--root-uid UID              - Sets User ID (UID) of the root user/superuser'
243   echo
244   echo '--no-LIB                    - disable library LIB'
245   echo '--maybe-LIB                 - autodetect library LIB (default)'
246   echo '--runtime-detect            - do as much as posible auto detecting on runtime (for distributors)'
247   echo
248   echo '--ao-install-dir DIR        - Set install dir for libao plugin'
249   echo '--xmms-install-dir DIR      - Set install dir for XMMS plugin'
250   echo '--audacious-install-dir DIR - Set install dir for Audacious plugin'
251   echo
252   echo '--prefix DIR                - Set general prefix (default: '"$PREFIX"')'
253   echo '--prefix-bin DIR            - Set prefix for binarys (default: $PREFIX/bin)'
254   echo '--prefix-lib DIR            - Set prefix for librarys (default: $PREFIX/libs)'
255   echo '--prefix-inc DIR            - Set prefix for include files (default: $PREFIX/include)'
256   echo '--prefix-man DIR            - Set prefix for manpages (default: $PREFIX/man)'
257   echo '--prefix-pc DIR             - Set prefix for pkg-config (default: $PREFIX_LIB/pkgconfig)'
258   echo '--prefix-comp-libs DIR      - Set prefix for compatibility librarys (default: $PREFIX_LIB/roaraudio/complibs)'
259   echo '--prefix-comp-bins DIR      - Set prefix for compatibility binarys  (default: $PREFIX_LIB/roaraudio/compbins)'
260   echo
261   echo '--default-rate RATE         - Set default sample rate for roard and roarclients'
262   echo '--default-channels CHANNELS - Set default number of channels for roard and roarclients'
263   echo '--default-bits BITS         - Set default number of bits per sample for roard and roarclients'
264   echo '--default-driver DRIVER     - Set default driver for roard'
265   echo '--default-codec CODEC       - Set default codec used for the default driver'
266   echo
267   echo '--without-alaw              - Disable support of A-Law codec (de- and encoding)'
268   echo '--without-alaw-rw           - Disable support for writing A-Law (saves 8KB)'
269   echo '--without-mulaw             - Disable support of mu-Law codec (de- and encoding)'
270   echo '--without-mulaw-rw          - Disable support for writing mu-Law (saves 16KB)'
271   echo '--without-proxy             - Disable support for proxys'
272   echo
273   echo '--without-comp-libs         - Disable build of librarys'
274   echo '--without-comp-roard        - Disable build of roard'
275   echo '--without-comp-clients      - Disable build of clients'
276   echo '--without-comp-doc          - Disable build of documentation'
277   echo '--without-comp-comp-bins    - Disable build of compatibility binarys'
278   echo
279   echo '--without-dcomp-COMP        - Disable build of roard'\''s component COMP'
280   echo
281   echo '--without-meta-data         - Disable support for Meta Data'
282   echo
283   echo '--without-cf-cmd            - Disable support for command codecfilter'
284   echo
285   echo '--without-vio-MODULE        - Disable support for VIO module MODULE'
286   echo
287   echo '--without-password-api      - Disable build of Password API'
288   echo '--with-trap-api             - Build with Trap support'
289   echo
290   echo '--with-memory-api           - Use internal memory API (memmgr)'
291   echo '--without-memory-api        - Do not use internal memory API (memmgr)'
292   echo
293   echo '--without-listen            - Disable listening sockets in roard'
294   echo '                              This is the same as allways using --no-listen'
295   echo
296   echo '--without-beta              - Disable beta code'
297   echo '--without-experimental      - Disable experimental code'
298   echo
299   echo '--distribution-version-string STRING'
300   echo '                            - Sets distribution part of version string'
301   echo
302   echo '--roard-cfreq FREQ          - Sets the cycle frequency of roard in Hz'
303   echo '--roard-bits  BITS          - Sets the number of bits per sample used by roard'
304   echo '--vorbis-bits BITS          - Sets bits per sample used by Vorbis code'
305   echo
306#   echo '--without-libao             - Disable build of libao plugin'
307   echo '--without-xmms              - Disable build of XMMS plugin'
308#   echo '--without-audacious         - Disable build of Audacious plugin'
309   echo
310   echo '--mmcu MMCU                 - Sets -mmcu compiler/linker option'
311   echo '--minimal                   - Disable all optional components'
312   echo '--cross-compile             - Enable cross compiler workarounds'
313   echo '--target-microcontroller    - Set Options for mircocontrollers without a OS'
314   echo '                              Implys --cross-compile'
315   echo '--target-win32              - Disable everything useful'
316   echo '--exec-helper HELPER        - Exec all test programms using this command (HELPER $cmd $args)'
317   echo '                              use '\''--exec-helper wine'\'' when building win32 binarys'
318   echo
319   echo
320   echo 'LIBRARY NAMES (to be used with --no-* and --maybe-*):'
321   echo
322   grep '^test_lib_defmake ROAR_' configure | awk '{print $5}' | cut -d/ -f1 | sort | uniq | grep -v ^c$ | \
323    while read lib
324    do
325     envlib=`echo "$lib" | to_escaped`
326     eval _no="\$no_lib_$envlib";
327     if [ "$_no" != '' ]
328     then
329      echo -n "$lib (disabled) "
330     else
331      echo -n "$lib "
332     fi
333    done
334   echo '' # print \n
335   exit 0;
336  ;;
337  '--ldpath')
338   LDPATH="$LDPATH -L$2"
339   shift;
340  ;;
341  '--incpath')
342   INCPATH="$INCPATH -I$2"
343   shift;
344  ;;
345  '--addpath')
346   LDPATH="$LDPATH -L$2/lib/"
347   INCPATH="$INCPATH -I$2/include/"
348   shift;
349  ;;
350  '--cflags')
351   CFLAGS="$2"
352   shift;
353  ;;
354  '--ldflags')
355   LDFLAGS="$2"
356   shift;
357  ;;
358  '--opti')
359   OPTI_O="$2"
360   shift;
361  ;;
362  '--link-deps')
363   LINK_DEPS="$2"
364   shift;
365  ;;
366  '--cc')
367   CC="$2"
368   shift;
369  ;;
370  '--ranlib')
371   RANLIB="$2"
372   shift;
373  ;;
374  '--cdrom')
375   CDROM="$2"
376   shift;
377  ;;
378  '--tty')
379   TTY_DEV="$2"
380   shift;
381  ;;
382  '--oss-dev')
383   OSS_DEV="$2"
384   shift;
385  ;;
386  '--oss-mixer-dev')
387   OSS_MIX_DEV="$2"
388   shift;
389  ;;
390  '--proc-net-decnet')
391   PROC_NET_DECNET="$2"
392   shift;
393  ;;
394  '--proc-net-decnet-neigh')
395   PROC_NET_DECNET_NEIGH="$2"
396   shift;
397  ;;
398  '--proc-net-arp')
399   PROC_NET_ARP="$2"
400   shift;
401  ;;
402  '--audio-group')
403   DEFAULT_GRP="$2"
404   shift;
405  ;;
406  '--root-uid')
407   ROOT_UID="$2"
408   shift;
409  ;;
410  '--no-'*)
411   lib=$(echo "$1" | sed 's/^--no-//' | to_escaped)
412   eval no_lib_$lib=true
413  ;;
414  '--maybe-'*)
415   lib=$(echo "$1" | sed 's/^--maybe-//' | to_escaped)
416   eval unset no_lib_$lib
417  ;;
418  '--runtime-detect')
419   RUNTIME_DETECT=true
420  ;;
421  '--ao-install-dir')
422   AO_INST_DIR="$2"
423   shift;
424  ;;
425  '--xmms-install-dir')
426   XMMS_INST_DIR="$2"
427   shift;
428  ;;
429  '--audacious-install-dir')
430   AUDACIOUS_INST_DIR="$2"
431   shift;
432  ;;
433  '--default-rate')
434   DEFAULT_RATE="$2"
435   shift;
436  ;;
437  '--default-channels')
438   DEFAULT_CHANNELS="$2"
439   shift;
440  ;;
441  '--default-bits')
442   DEFAULT_BITS="$2"
443   shift;
444  ;;
445  '--default-driver')
446   ROAR_DRIVER_DEFAULT="$2"
447   shift;
448  ;;
449  '--default-codec')
450   ROAR_DRIVER_CODEC="$2"
451   shift;
452  ;;
453  '--without-alaw')
454   ALAW=false
455   ALAW_RW=false
456  ;;
457  '--without-alaw-rw')
458   ALAW_RW=false
459  ;;
460  '--without-mulaw')
461   MULAW=false
462   MULAW_RW=false
463  ;;
464  '--without-mulaw-rw')
465   MULAW_RW=false
466  ;;
467  '--without-proxy')
468   PROXY=false
469  ;;
470  '--without-comp-libs')
471   COMP_LIBS=false
472  ;;
473  '--without-comp-roard')
474   COMP_ROARD=false
475  ;;
476  '--without-comp-clients')
477   COMP_CLIENTS=false
478  ;;
479  '--without-comp-doc')
480   COMP_DOC=false
481  ;;
482  '--without-comp-comp-bins')
483   COMP_COMP_BINS=false
484  ;;
485  '--without-meta-data')
486   META_DATA=false
487  ;;
488  '--without-cf-'*)
489   WITHOUT_CF="$WITHOUT_CF"' '$(echo "$1" | cut -d- -f5)
490  ;;
491  '--without-vio-'*)
492   WITHOUT_VIO="$WITHOUT_VIO"' '$(echo "$1" | cut -d- -f5)
493  ;;
494  '--without-dcomp-'*)
495   WITHOUT_DCOMP="$WITHOUT_DCOMP"' '$(echo "$1" | cut -d- -f5)
496  ;;
497  '--without-password-api')
498   PASSWORD_API=false
499  ;;
500  '--with-trap-api')
501   SUPPORT_TRAP=true
502  ;;
503  '--with-memory-api'|'--use-memory-api')
504   USE_MEMMGR=true
505  ;;
506  '--without-memory-api')
507   USE_MEMMGR=false
508  ;;
509  '--without-listen')
510   NO_LISTEN=true
511  ;;
512  '--distribution-version-string')
513   DISTRIBUTION_VERSION_STRING="$2"
514   shift;
515  ;;
516  '--roard-cfreq')
517   ROARD_CFREQ="$2"
518   shift;
519  ;;
520  '--roard-bits')
521   ROARD_BITS="$2"
522   shift;
523  ;;
524  '--vorbis-bits')
525   VORBIS_BITS="$2"
526   shift;
527  ;;
528  '--without-libao')
529   LIBAO=false
530   no_lib_ao=true
531  ;;
532  '--without-xmms')
533   XMMS=false
534  ;;
535  '--without-audacious')
536   AUDACIOUS=false
537  ;;
538  '--minimal')
539   MINIMAL=true
540   RUNTIME_DETECT=false
541   XMMS=false
542   AUDACIOUS=false
543   LIBAO=false
544   PROXY=false
545   MULAW=false
546   MULAW_RW=false
547   ALAW=false
548   ALAW_RW=false
549   META_DATA=false
550   PASSWORD_API=false
551   SUPPORT_TRAP=false
552   USE_MEMMGR=false
553   WITHOUT_VIO="$WITHOUT_VIO"' cmd stdio'
554   WITHOUT_CF="$WITHOUT_CF"' wave cmd cf au'
555   WITHOUT_DCOMP="$WITHOUT_DCOMP"' sources ssynth cb midi light raw rdtcs cdriver emul_esd emul_simple emul_rsound emul_rplay emul_gopher mixer'
556  ;;
557  '--without-beta')
558   BETA=false
559   EXPERIMENTAL=false
560  ;;
561  '--without-experimental')
562   EXPERIMENTAL=false
563  ;;
564  '--prefix')
565   PREFIX="$2"
566   shift;
567  ;;
568  '--prefix-bin')
569   PREFIX_BIN="$2"
570   shift;
571  ;;
572  '--prefix-lib')
573   PREFIX_LIB="$2"
574   shift;
575  ;;
576  '--prefix-inc')
577   PREFIX_INC="$2"
578   shift;
579  ;;
580  '--prefix-man')
581   PREFIX_MAN="$2"
582   shift;
583  ;;
584  '--prefix-pc')
585   PREFIX_PC="$2"
586   shift;
587  ;;
588  # we should remove --prefix-comp soon
589  '--prefix-comp'|'--prefix-comp-libs')
590   PREFIX_COMP_LIBS="$2"
591   shift;
592  ;;
593  '--prefix-comp-bins')
594   PREFIX_COMP_BINS="$2"
595   shift;
596  ;;
597####################################
598# autof* options block:
599  '--prefix='*)
600   PREFIX=$(echo "$1" | cut -d= -f2)
601  ;;
602  '--prefix-bin='*)
603   PREFIX_BIN=$(echo "$1" | cut -d= -f2)
604  ;;
605  '--prefix-lib='*)
606   PREFIX_LIB=$(echo "$1" | cut -d= -f2)
607  ;;
608  '--prefix-inc='*)
609   PREFIX_INC=$(echo "$1" | cut -d= -f2)
610  ;;
611  '--prefix-man='*)
612   PREFIX_MAN=$(echo "$1" | cut -d= -f2)
613  ;;
614  '--prefix-pc='*)
615   PREFIX_PC=$(echo "$1" | cut -d= -f2)
616  ;;
617  '--prefix-comp-libs='*)
618   PREFIX_COMP_LIBS=$(echo "$1" | cut -d= -f2)
619  ;;
620  '--prefix-comp-bins='*)
621   PREFIX_COMP_BINS=$(echo "$1" | cut -d= -f2)
622  ;;
623####################################
624  '--mmcu')
625   MMCU="$2"
626   shift;
627  ;;
628  '--cross-compile')
629   CROSS_COMPILE=true
630   RUNTIME_DETECT=true
631  ;;
632  '--exec-helper')
633   EXEC_HELPER="$2"
634   shift;
635  ;;
636  '--target-microcontroller')
637   TARGET_MICROCONTROLLER=true
638   CROSS_COMPILE=true
639   RUNTIME_DETECT=true
640   HAVE_MAIN_ARGS=false
641   XMMS=false
642   AUDACIOUS=false
643   LIBAO=false
644   WITHOUT_VIO="$WITHOUT_VIO"' cmd'
645  ;;
646  '--target-win32')
647   TARGET_WIN32=true
648  ;;
649 esac;
650
651 shift;
652done
653
654[ "$no_lib_yiff" != '' ] && no_lib_y2=true
655
656if $BETA
657then
658 :
659else
660 WITHOUT_DCOMP="$WITHOUT_DCOMP"' rdtcs'
661 no_lib_gcrypt=true
662 no_lib_jack=true
663 no_lib_dbus_1=true
664fi
665
666if $EXPERIMENTAL
667then
668 :
669else
670 : # Add list of experimental things here.
671fi
672
673CCTF="false"
674
675test_lib () {
676 _have_libs=false
677 _have_headers=false
678 _defs=''
679 echo > $TF_C
680
681 $NEED_GNU_SOURCE && _defs="$_defs -D_GNU_SOURCE"
682
683 name="$1"
684 echo -n "checking for $name... "
685 echo "TEST LIB: $name" >&5
686 shift;
687
688 if [ "$infotext" = '' ]
689 then
690  _info=''
691 else
692  _info=" ($infotext)"
693 fi
694
695 LIBS=''
696
697 while [ "$1" != '--' ]
698 do
699  echo "LIB($name) HAS LIB INFO: $1" >&5
700  case "$1" in
701   'c'|'-lc')
702    :; # no need to do anything
703   ;;
704   '-'*)
705    LIBS="$LIBS $1"
706    _have_libs=true
707   ;;
708   *)
709    LIBS="$LIBS -l$1"
710    _have_libs=true
711   ;;
712  esac
713  shift;
714 done
715
716 shift;
717
718 echo "LIB($name) IS TESTED USING LIBS: $LIBS" >&5
719
720 while [ "$1" != '' ]
721 do
722  _h="$1";
723  shift;
724  _envname=`echo "$_h" | to_escaped`
725  eval "_t=\$libname_$_envname"
726  echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
727  if [ "$_t" = 'false' ]
728  then
729   echo "// not including <$_h> as it was tested as not present"  >> $TF_C
730  else
731   echo "#include <$_h>"  >> $TF_C
732   _have_headers=true
733  fi
734 done
735
736 echo 'int main (void) { return 0; }' >> $TF_C
737
738 if [ "$_have_libs" = 'false' -a "$_have_headers" = 'false' ]
739 then
740  echo "no (nothing left to test)$_info"
741  echo "LIB($name) HAS NOTHING TO TEST" >&5
742  return 1
743 fi
744
745 echo "LIB($name) IS TESTED USING TEST CODE:" >&5
746 echo "--- BEGIN OF CODE BLOCK ---" >&5
747 cat $TF_C >&5
748 echo "--- END OF CODE BLOCK ---" >&5
749
750 echo "LIB($name) HAS COMPILER/LINKER OUTPUT:" >&5
751 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
752 $CCTF $_defs $LIBS >&5 2>&5;
753 R=$?
754 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
755
756 if [ "$R" = '0' ]
757 then
758  echo "yes$_info"
759  echo "LIB($name) WAS FOUND" >&5
760 else
761  echo "no$_info"
762  echo "LIB($name) NOT FOUND" >&5
763 fi
764
765 return $R
766}
767
768test_lib_defmake () {
769 def="$1"
770 subdir="$2"
771 shift
772 shift
773 name="$1"
774 lib="$2"
775 shift
776
777 echo "TEST LIB: $name" >&5
778
779 [ "$subdir" = '%' ] && subdir=''
780
781 envlib=`echo "$lib"   | cut -d/ -f1 | to_escaped`
782 envname=`echo "$name" | to_escaped`
783
784 echo "LIB($name) HAS envlib='$envlib', envname='$envname'" >&5
785
786 if [ "$lib" != '--' ]
787 then
788  echo "EVAL: _no=\$no_lib_$envlib" >&5
789  eval _no="\$no_lib_$envlib";
790  $MINIMAL && _no='XXX'
791
792  if [ "$_no" != '' ]
793  then
794    echo "checking for $name... disabled by user"
795    echo "LIB($name) IS DISABLED BY USER" >&5
796   [ "$subdir" != '' ] && \
797    echo "subdir_$subdir=" >&4
798   echo "lib_$envlib=" >&4
799   return;
800  fi
801 fi
802
803 lib="$lib/"
804
805 libn=`echo $lib | cut -d/ -f1`
806 is_fatal=`echo $lib | cut -d/ -f2`
807
808 lib="$libn"
809
810# echo "is_fatal(i)=$is_fatal" >&5
811
812 if [ "$is_fatal" = '' -o "$is_fatal" = 'no' -o "$is_fatal" = 'false' ]
813 then
814  is_fatal=false
815 else
816  is_fatal=true
817  shift; # maybe we have a pkg name, not a lib
818 fi
819
820 echo "LIB($name) HAS FATAL FLAG SET TO $is_fatal" >&5
821
822# echo "is_fatal(b)=$is_fatal" >&5
823
824 LIBS=$($PKG_CONFIG --silence-errors --cflags --libs $lib 2> /dev/null)
825 if [ "$?" != '0' ]
826 then
827  if $is_fatal
828  then
829   echo "checking for $name... no (fatal config errors)"
830   echo "LIB($name) HAS FATAL ERRORS" >&5
831   echo "LIB($name) NOT FOUND" >&5
832   [ "$subdir" != '' ] && \
833    echo "subdir_$subdir=" >&4
834   echo "lib_$envlib=" >&4
835   return
836  fi
837  LIBS="-l$lib"
838 fi
839
840 echo "LIB($name) HAS LIBS: $LIBS" >&5
841
842 if test_lib "$name" $LIBS "$@"
843 then
844  subdir_var='subdir_'"`echo $subdir | to_escaped`"
845  echo "#define $def"            >&3
846  [ "$subdir" != '' ] && \
847   echo "$subdir_var=$subdir" >&4
848  [ "$lib" != 'c' ] && \
849   echo "lib_$envlib=$LIBS" >&4
850  if [ "$lib" != 'c' ]
851  then
852   eval "lib_$envlib='$LIBS'"
853  else
854   echo "LIB($name) SETS libname_$envname=true" >&5
855   eval "libname_$envname=true"
856  fi
857 else
858  [ "$subdir" != '' ] && \
859   echo "subdir_$subdir=" >&4
860  [ "$lib" != 'c' ] && \
861   echo "lib_$envlib=" >&4
862  echo "LIB($name) SETS libname_$envname=false" >&5
863  eval "libname_$envname=false"
864 fi
865 echo >&5
866 echo >&5
867}
868
869test_tool_defmake () {
870 DEF="$1"
871 NAME="$2"
872 shift;
873 shift;
874 echo -n "checking for $NAME... "
875
876 echo "TEST TOOL: $NAME" >&5
877
878 if $RUNTIME_DETECT
879 then
880  echo "$1 (runtime detect)"
881  echo "TOOL($NAME) WILL BE RUNTIME DETECTED" >&5
882  echo "#define $DEF "\""$1"\" >&3
883 elif $MINIMAL
884 then
885  echo "disabled by user (minimalstic build)"
886  echo "TOOL($NAME) IS DISABLED BY USER" >&5
887 else
888
889  LIST=$(which "$@" 2> /dev/null | grep ^/ | head -n 1)
890
891  if [ "$LIST" = '' ]
892  then
893   echo 'no'
894   echo "TOOL($NAME) NOT FOUND" >&5
895  else
896   echo $LIST
897   echo "#define $DEF "\""$LIST"\" >&3
898   echo "TOOL($NAME) IS AT $LIST" >&5
899  fi
900 fi
901}
902
903test_func_defmake () {
904 _defs=''
905 DEF="$1"
906 NAME="$2"
907 shift;
908 shift;
909 echo -n "checking for $NAME()... "
910
911 CALL="$1"
912 shift;
913
914 $NEED_GNU_SOURCE && _defs="$_defs -D_GNU_SOURCE"
915
916 if [ "$infotext" = '' ]
917 then
918  _info=''
919 else
920  _info=" ($infotext)"
921 fi
922
923 LIBS=''
924
925 _funcname=`echo "$NAME" | to_escaped`
926
927 while [ "$1" != '--' ]
928 do
929  case "$1" in
930   'c'|'-lc')
931    :; # no need to do anything
932   ;;
933   '-'*)
934    LIBS="$LIBS $1"
935   ;;
936   *)
937    LIBS="-l$1"
938   ;;
939  esac
940  shift;
941 done
942
943 shift; # skip '--'
944
945 echo "TEST FUNCTION: $NAME" >&5
946
947 {
948  while [ "$1" != '' ]
949  do
950   _h="$1";
951   shift;
952   _envname=`echo "$_h" | to_escaped`
953   eval "_t=\$libname_$_envname"
954   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
955   if [ "$_t" = 'false' ]
956   then
957    echo "// not including <$_h> as it was tested as not present"
958   else
959    echo "#include <$_h>"
960   fi
961  done
962
963  echo 'int main (void) {'
964  echo " $CALL;"
965  echo ' return 0;'
966  echo '}'
967
968 } > $TF_C
969
970 echo "--- BEGIN OF CODE BLOCK ---" >&5
971 cat $TF_C >&5
972 echo "--- END OF CODE BLOCK ---" >&5
973
974 echo "FUNCTION($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
975 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
976 $CCTF $_defs $LIBS >&5 2>&5;
977 R=$?
978 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
979
980 if [ "$R" = '0' ]
981 then
982  eval funcname_$_funcname=true
983  echo "#define $DEF" >&3
984  echo "FUNCTION($NAME) IS OK" >&5
985  echo "yes$_info"
986 else
987  eval funcname_$_funcname=false
988  echo "FUNCTION($NAME) IS NOT OK" >&5
989  echo "no$_info"
990 fi
991
992}
993
994test_const_defmake () {
995 DEF="$1"
996 NAME="$2"
997 shift;
998 shift;
999 echo -n "checking for constant $NAME... "
1000
1001 TYPE="$1"
1002 CONST="$2"
1003 shift;
1004 shift;
1005
1006 LIBS=''
1007
1008 while [ "$1" != '--' ]
1009 do
1010  case "$1" in
1011   'c'|'-lc')
1012    :; # no need to do anything
1013   ;;
1014   '-'*)
1015    LIBS="$LIBS $1"
1016   ;;
1017   *)
1018    LIBS="-l$1"
1019   ;;
1020  esac
1021  shift;
1022 done
1023
1024 shift; # skip '--'
1025
1026 echo "TEST CONST: $NAME" >&5
1027
1028 {
1029  while [ "$1" != '' ]
1030  do
1031   _h="$1";
1032   shift;
1033   _envname=`echo "$_h" | to_escaped`
1034   eval "_t=\$libname_$_envname"
1035   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
1036   if [ "$_t" = 'false' ]
1037   then
1038    echo "// not including <$_h> as it was tested as not present"
1039   else
1040    echo "#include <$_h>"
1041   fi
1042  done
1043
1044  case "$TYPE" in
1045   ':int')
1046    _type='int'
1047   ;;
1048   ':float')
1049    _type='float'
1050   ;;
1051   ':ptr')
1052    _type='void *'
1053   ;;
1054   *)
1055    _type="$TYPE"
1056   ;;
1057  esac
1058
1059  echo 'int main (void) {'
1060  echo " $_type x;"
1061  echo " x = ($_type)$CONST;"
1062  echo ' return 0;'
1063  echo '}'
1064
1065 } > $TF_C
1066
1067 echo "--- BEGIN OF CODE BLOCK ---" >&5
1068 cat $TF_C >&5
1069 echo "--- END OF CODE BLOCK ---" >&5
1070
1071 echo "CONST($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
1072 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
1073 $CCTF $LIBS >&5 2>&5;
1074 R=$?
1075 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
1076
1077 if [ "$R" = '0' ]
1078 then
1079  echo "#define $DEF" >&3
1080  echo "CONST($NAME) IS OK" >&5
1081  echo yes
1082 else
1083  echo "CONST($NAME) IS NOT OK" >&5
1084  echo no
1085 fi
1086}
1087
1088test_var_defmake () {
1089 DEF="$1"
1090 NAME="$2"
1091 shift;
1092 shift;
1093 echo -n "checking for global variable $NAME... "
1094
1095 TYPE="$1"
1096 VAR="$2"
1097 shift;
1098 shift;
1099
1100 LIBS=''
1101
1102 while [ "$1" != '--' ]
1103 do
1104  case "$1" in
1105   'c'|'-lc')
1106    :; # no need to do anything
1107   ;;
1108   '-'*)
1109    LIBS="$LIBS $1"
1110   ;;
1111   *)
1112    LIBS="-l$1"
1113   ;;
1114  esac
1115  shift;
1116 done
1117
1118 shift; # skip '--'
1119
1120 echo "TEST VAR: $NAME" >&5
1121
1122 {
1123  while [ "$1" != '' ]
1124  do
1125   _h="$1";
1126   shift;
1127   _envname=`echo "$_h" | to_escaped`
1128   eval "_t=\$libname_$_envname"
1129   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5
1130   if [ "$_t" = 'false' ]
1131   then
1132    echo "// not including <$_h> as it was tested as not present"
1133   else
1134    echo "#include <$_h>"
1135   fi
1136  done
1137
1138  case "$TYPE" in
1139   ':int')
1140    _type='int'
1141   ;;
1142   ':float')
1143    _type='float'
1144   ;;
1145   ':ptr')
1146    _type='void *'
1147   ;;
1148   *)
1149    _type="$TYPE"
1150   ;;
1151  esac
1152
1153  echo 'int main (void) {'
1154  echo " $_type x;"
1155  echo " x = ($_type)$VAR;"
1156  echo " $VAR = x;"
1157  echo ' return 0;'
1158  echo '}'
1159
1160 } > $TF_C
1161
1162 echo "--- BEGIN OF CODE BLOCK ---" >&5
1163 cat $TF_C >&5
1164 echo "--- END OF CODE BLOCK ---" >&5
1165
1166 echo "VAR($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
1167 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
1168 $CCTF $LIBS >&5 2>&5;
1169 R=$?
1170 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
1171
1172 if [ "$R" = '0' ]
1173 then
1174  echo "#define $DEF" >&3
1175  echo "VAR($NAME) IS OK" >&5
1176  echo yes
1177 else
1178  echo "VAR($NAME) IS NOT OK" >&5
1179  echo no
1180 fi
1181}
1182
1183test_version () {
1184 DEF="$1"
1185 NAME="$2"
1186 PKGNAME="$3"
1187
1188 echo -n "checking for version of $NAME... "
1189
1190 _ver=$($PKG_CONFIG --modversion $PKGNAME 2> /dev/null)
1191
1192 if [ "$_ver" = '' ]
1193 then
1194  _ver=unknown
1195 fi
1196
1197 echo $_ver
1198
1199 _ver_def=$(echo $_ver | to_escaped | to_upper)
1200 echo "#define ${DEF}_$_ver_def" >&3
1201
1202 echo "$_ver" | if grep '^[0-9]*\.[0-9]*\.[0-9]*$' > /dev/null
1203 then
1204  _ver_vdef=$(echo "$_ver" | sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]\)*$/_ROAR_MKVERSION(\1, \2, \3)/')
1205  echo "#define ${DEF} $_ver_vdef" >&3
1206 else
1207  echo "#define ${DEF} 0" >&3
1208 fi
1209
1210}
1211
1212test_type () {
1213 DEF="$1"
1214 NAME="$2"
1215 INITVAL="$3"
1216 DASHDASH="$4"
1217 shift; shift;
1218
1219 if [ "$#" -ge '2' ]
1220 then
1221  shift; shift;
1222 fi
1223
1224 HEADERS="stdint.h string.h unistd.h sys/types.h $*" #including headers here let
1225                                                     #them get checked for presence.
1226
1227 [ "$INITVAL" = '' ] && INITVAL='0'
1228
1229 echo -n "checking for type $NAME... "
1230 echo "TEST TYPE: $NAME" >&5
1231
1232 echo "// type test for type $NAME"  >  $TF_C # need a clean file, write something
1233 for _h in $HEADERS
1234 do
1235  _envname=`echo "$_h" | to_escaped`
1236  eval "_t=\$libname_$_envname"
1237  echo "TYPE($NAME) DEPENDS ON $_h($_envname) with state '$_t'" >&5
1238  if [ "$_t" = 'false' ]
1239  then
1240   echo "// not including <$_h> as it was tested as not present"  >> $TF_C
1241  else
1242   echo "#include <$_h>"  >> $TF_C
1243  fi
1244 done
1245 echo "int main (void) { $NAME _var = $INITVAL; return 0; }" >> $TF_C
1246
1247 echo "--- BEGIN OF CODE BLOCK ---" >&5
1248 cat $TF_C >&5
1249 echo "--- END OF CODE BLOCK ---" >&5
1250
1251 echo "TYPE($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
1252 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
1253 $CCTF >&5 2>&5;
1254 R=$?
1255 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
1256
1257 if [ "$R" = '0' ]
1258 then
1259  echo "#define $DEF" >&3
1260  echo 'ok'
1261  echo "TYPE($NAME) IS OK" >&5
1262 else
1263  echo 'not found'
1264  echo "TYPE($NAME) NOT FOUND" >&5
1265 fi
1266}
1267
1268test_pa_type () {
1269 DEF="$1"
1270 NAME="$2"
1271 TYPE="$3"
1272 V0="$4"
1273 V1="$5"
1274 TEST="$6"
1275 shift; shift; shift; shift; shift; shift;
1276 HEADER="$*"
1277 RS='%s'
1278
1279 case "$TYPE" in
1280  'type')
1281   MSG="checking for type of $NAME()... "
1282  ;;
1283  'args:'*)
1284   MSG="checking for argument types of $NAME()... "
1285   RS=`echo "$TYPE" | cut -d: -f2`
1286  ;;
1287 esac;
1288
1289 echo -n "$MSG"
1290 echo '#include <pulse/pulseaudio.h>'  >  $TF_C
1291 for _h in $HEADERS
1292 do
1293  echo "#include <$_h>"  >> $TF_C
1294 done
1295 echo '#include <string.h>'           >> $TF_C
1296 echo 'int main (void) { return 0; }' >> $TF_C
1297 echo "$TEST"                         >> $TF_C
1298
1299 if $CCTF 2> /dev/null;
1300 then
1301  R="$V0"
1302 else
1303  R="$V1"
1304 fi
1305
1306 echo "#define $DEF $R" >&3
1307 printf "$RS\n" "$R"
1308}
1309
1310exec 3> config.h 4> Makefile.conf 5> config.log
1311
1312TARGET_CYGWIN=`echo "$SYSNAME" | if grep CYGWIN  > /dev/null; then echo true; else echo false; fi`
1313TARGET_WIN32=`echo  "$SYSNAME" | if grep MINGW32 > /dev/null; then echo true; else echo $TARGET_WIN32; fi`
1314
1315if $TARGET_WIN32
1316then
1317 CROSS_COMPILE=true
1318 RUNTIME_DETECT=true
1319 no_lib_dnet=true
1320 PROXY=false
1321 LIBAO=false
1322 XMMS=false
1323 AUDACIOUS=false
1324 WITHOUT_VIO="$WITHOUT_VIO"' pipe cmd' # hope that with buffered pipes we can remove this soon
1325 WITHOUT_DCOMP="$WITHOUT_DCOMP"' cb'
1326# [ "$ROARD_CFREQ" = '' ] && ROARD_CFREQ=20
1327fi
1328
1329if [ "$SYSNAME" = 'Darwin' ]
1330then
1331 echo "Adding $SYSNAME shared lib arguments..."
1332 SHARED="$SHARED -fno-common -dynamiclib -compatibility_version 0.1 -current_version 0.1.0"
1333 SHARED_CF="$SHARED_CF -fno-common"
1334elif [ "$SYSNAME" = 'NetBSD' ]
1335then
1336 echo "Adding $SYSNAME libpath arguments..."
1337 LDPATH="$LDPATH -L/usr/local/lib/"
1338elif [ "$SYSNAME" = 'OpenBSD' ]
1339then
1340 echo "Adding $SYSNAME search path arguments..."
1341 LDPATH="$LDPATH -L/usr/local/lib/"
1342 INCPATH="$INCPATH -I/usr/local/include/"
1343# echo "Adding $SYSNAME build arguments..."
1344# SNDIO_EMUL=false
1345elif [ "$SYSNAME" = 'FreeBSD' ]
1346then
1347 echo "Adding $SYSNAME search path arguments..."
1348 LDPATH="$LDPATH -L/usr/local/lib/"
1349 INCPATH="$INCPATH -I/usr/local/include/"
1350 [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='wheel'
1351elif $TARGET_WIN32
1352then
1353 echo "Adding win32 build arguments..."
1354 fPIC=false
1355 SHARED_SUFFIX='.dll'
1356 COMPBIN_SUFFIX='.bat'
1357elif $TARGET_CYGWIN
1358then
1359 echo "Adding cygwin build arguments..."
1360 fPIC=false
1361 SHARED_SUFFIX='.dll'
1362 COMPBIN_SUFFIX='.bat'
1363fi
1364
1365echo -n 'checking if we cross compile... '
1366if $CROSS_COMPILE
1367then
1368 echo yes
1369
1370 echo -n "checking for exec helper... "
1371 if [ "$EXEC_HELPER" = '' ]
1372 then
1373  if $TARGET_WIN32
1374  then
1375   EXEC_HELPER=$(which wine 2> /dev/null | grep ^/ | head -n 1)
1376   if [ "$EXEC_HELPER" = '' ]
1377   then
1378    echo 'none (please install wine)'
1379   else
1380    echo "$EXEC_HELPER"
1381   fi
1382  else
1383   echo 'none (unknown)'
1384  fi
1385 else
1386  echo "$EXEC_HELPER"
1387 fi
1388
1389 echo -n "checking for sysname... "
1390 if $TARGET_CYGWIN
1391 then
1392  SYSNAME=cygwin
1393 elif $TARGET_WIN32
1394 then
1395  SYSNAME=win32
1396 else
1397  SYSNAME=unknown
1398 fi
1399 echo "$SYSNAME"
1400else
1401 echo no
1402fi
1403
1404[ "$PREFIX_BIN"  = '' ] && PREFIX_BIN="$PREFIX/bin/"
1405[ "$PREFIX_LIB"  = '' ] && PREFIX_LIB="$PREFIX/lib/"
1406[ "$PREFIX_INC"  = '' ] && PREFIX_INC="$PREFIX/include/"
1407[ "$PREFIX_MAN"  = '' ] && PREFIX_MAN="$PREFIX/share/man/"
1408[ "$PREFIX_PC"   = '' ] && PREFIX_PC="$PREFIX_LIB/pkgconfig/"
1409[ "$PREFIX_COMP_LIBS" = '' ] && PREFIX_COMP_LIBS="$PREFIX_LIB/roaraudio/complibs/"
1410[ "$PREFIX_COMP_BINS" = '' ] && PREFIX_COMP_BINS="$PREFIX_LIB/roaraudio/compbins/"
1411
1412[ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='audio'
1413
1414CCTF="$CC $CFLAGS $LDFLAGS $LDPATH $INCPATH -Iinclude/ -o $TF_E $TF_C"
1415
1416if [ "$MMCU" != '' ]
1417then
1418 CC="$CC -mmcu=$MMCU"
1419fi
1420
1421# Check for -Wextra
1422#Wextra
1423echo -n "checking if compiler supports -Wextra... "
1424echo 'int main (void) { return 0; }' > $TF_C
1425if $CCTF -Wextra 2> /dev/null;
1426then
1427 echo yes
1428 Wextra=true
1429else
1430 echo no
1431 Wextra=false
1432fi
1433
1434# now write the cc name to Makefile.conf
1435{
1436 echo "VERSION=$VERSION"
1437 echo "DEV_VENDOR=$DEV_VENDOR"
1438 echo "DEV_VENDOR_NAME=$DEV_VENDOR_NAME"
1439 echo "DEV_VENDOR_STRING=$DEV_VENDOR/$DEV_VENDOR_NAME"
1440 echo "DISTRIBUTION_VERSION_STRING=$DISTRIBUTION_VERSION_STRING"
1441 echo
1442 echo "SHARED=$SHARED"
1443 echo "SHARED_CF=$SHARED_CF"
1444 echo "SHARED_SUFFIX=$SHARED_SUFFIX"
1445 echo "COMPBIN_SUFFIX=$COMPBIN_SUFFIX"
1446 $fPIC   && echo 'fPIC=-fPIC'
1447 $Wextra && echo 'Wextra=-Wextra'
1448 echo
1449 echo "CC=$CC"
1450 echo "RANLIB=$RANLIB"
1451 echo "LDPATH=$LDPATH"
1452 echo "INCPATH=$INCPATH"
1453 echo
1454 echo "OPTI_O=-O$OPTI_O"
1455 echo "LINK_DEPS=$LINK_DEPS"
1456 echo
1457 [ "$CFLAGS"  != '' ] && echo "CFLAGS  += $CFLAGS"
1458 [ "$LDFLAGS" != '' ] && echo "LDFLAGS += $LDFLAGS"
1459 echo
1460 echo "EXEC_HELPER=$EXEC_HELPER"
1461 echo "CROSS_COMPILE=$CROSS_COMPILE"
1462 echo
1463 echo "PREFIX=$PREFIX"
1464 echo "PREFIX_BIN=$PREFIX_BIN"
1465 echo "PREFIX_LIB=$PREFIX_LIB"
1466 echo "PREFIX_INC=$PREFIX_INC"
1467 echo "PREFIX_MAN=$PREFIX_MAN"
1468 echo "PREFIX_PC=$PREFIX_PC"
1469 echo "PREFIX_COMP_LIBS=$PREFIX_COMP_LIBS"
1470 echo "PREFIX_COMP_BINS=$PREFIX_COMP_BINS"
1471 echo
1472 $COMP_LIBS      && echo "comp_libs=libroar libroardsp libroarmidi libroarlight libroareio"
1473 $COMP_ROARD     && echo "comp_roard=roard"
1474 $COMP_CLIENTS   && echo "comp_clients=roarclients"
1475 $COMP_DOC       && echo "comp_doc=doc"
1476 $COMP_COMP_BINS && echo "comp_comp_bins=compbins"
1477 echo
1478 $SNDIO_EMUL && echo "subdir_libroarsndio=libroarsndio"
1479 echo "subdir_libroaross=libroaross" # this builds an empty file in case of not supported
1480} >&4
1481
1482{
1483 cat <<'EOF'
1484//config.log:
1485
1486/*
1487 * Logfile for configure script $Revision$ of RoarAudio
1488 */
1489
1490EOF
1491 echo '/* uname: ' $(uname -a) '*/'
1492 echo '/* Date : ' $(date)  '*/'
1493 echo
1494
1495 echo
1496 echo
1497
1498 echo "ARGS(): $_CARGS"
1499
1500 for i in PATH SHELL CC RANLIB PKG_CONFIG SYSNAME \
1501          TARGET_CYGWIN TARGET_WIN32 TARGET_MICROCONTROLLER CROSS_COMPILE \
1502          RUNTIME_DETECT MINIMAL EXEC_HELPER
1503 do
1504  eval echo "BASICCONF\($i\): \$$i";
1505 done
1506
1507 echo
1508 echo
1509} >&5
1510
1511cat >&3 << EOF
1512//config.h:
1513
1514#ifndef _ROARAUDIO_CONFIG_H_
1515#define _ROARAUDIO_CONFIG_H_
1516
1517EOF
1518
1519{
1520 echo '/* uname: ' $(uname -a) '*/'
1521 echo '/* Date : ' $(date)  '*/'
1522 echo
1523 echo "#define ROAR_VERSION_STRING \"$VERSION\""
1524 grep -E '^COMMON_V_(MAJOR|MINOR|REV) *= [0-9]*$' Makefile.inc | sed 's/^COMMON_V_/#define ROAR_VERSION_/; s/=//'
1525 echo "#define ROAR_BUILD_STAMP    \"$BUILD_STAMP\""
1526 echo
1527 [ "$DEFAULT_RATE"        = '' ] || echo "#define ROAR_RATE_DEFAULT     $DEFAULT_RATE"
1528 [ "$DEFAULT_CHANNELS"    = '' ] || echo "#define ROAR_CHANNELS_DEFAULT $DEFAULT_CHANNELS"
1529 [ "$DEFAULT_BITS"        = '' ] || echo "#define ROAR_BITS_DEFAULT     $DEFAULT_BITS"
1530 [ "$ROAR_DRIVER_DEFAULT" = '' ] || echo "#define ROAR_DRIVER_DEFAULT   \"$ROAR_DRIVER_DEFAULT\""
1531 [ "$ROAR_DRIVER_CODEC"   = '' ] || echo "#define ROAR_DRIVER_CODEC     \"$ROAR_DRIVER_CODEC\""
1532 echo
1533 [ "$ROARD_CFREQ"         = '' ] || echo "#define ROAR_OUTPUT_CFREQ     $ROARD_CFREQ"
1534 [ "$ROARD_BITS"          = '' ] || echo "#define ROAR_ROARD_BITS       $ROARD_BITS"
1535 echo "#define ROAR_VORBIS_BITS      $VORBIS_BITS"
1536 echo
1537 $MINIMAL      && echo '#define ROAR_MINIMAL'
1538 $BETA         && echo '#define ROAR_BETA'
1539 $EXPERIMENTAL && echo '#define ROAR_EXPERIMENTAL'
1540 $ALAW         && echo '#define ROAR_SUPPORT_ALAW'
1541 $ALAW_RW      && echo '#define ROAR_SUPPORT_ALAW_RW'
1542 $MULAW        && echo '#define ROAR_SUPPORT_MULAW'
1543 $MULAW_RW     && echo '#define ROAR_SUPPORT_MULAW_RW'
1544 $PROXY        && echo '#define ROAR_SUPPORT_PROXY'
1545 $PASSWORD_API && echo '#define ROAR_SUPPORT_PASSWORD_API'
1546 $SUPPORT_TRAP && echo '#define ROAR_SUPPORT_TRAP'
1547 $USE_MEMMGR   && echo '#define ROAR_USE_MEMMGR'
1548 $NO_LISTEN    || echo '#define ROAR_SUPPORT_LISTEN'
1549 $META_DATA    && echo '#define ROAR_SUPPORT_META'
1550 echo
1551
1552 $HAVE_MAIN_ARGS && echo '#define ROAR_HAVE_MAIN_ARGS'
1553
1554 echo
1555
1556 for i in $WITHOUT_CF
1557 do
1558  i=$(echo $i | to_upper);
1559  echo '#define ROAR_WITHOUT_CF_'$i
1560 done
1561
1562 for i in $WITHOUT_VIO
1563 do
1564  i=$(echo $i | to_upper);
1565  echo '#define ROAR_WITHOUT_VIO_'$i
1566 done
1567
1568 for i in $WITHOUT_DCOMP
1569 do
1570  i=$(echo $i | to_upper);
1571  echo '#define ROAR_WITHOUT_DCOMP_'$i
1572 done
1573
1574 echo
1575 $TARGET_MICROCONTROLLER && echo '#define ROAR_TARGET_MICROCONTROLLER'
1576 $TARGET_WIN32           && echo '#define ROAR_TARGET_WIN32'
1577 $TARGET_CYGWIN          && echo '#define ROAR_TARGET_CYGWIN'
1578                            echo '#define ROAR_OS_'$(echo $SYSNAME | to_escaped | to_upper)
1579 echo
1580} >&3
1581
1582#                 #define                   name         cmds...
1583test_tool_defmake ROAR_HAVE_BIN_OGG123      ogg123       ogg123
1584test_tool_defmake ROAR_HAVE_BIN_FLAC        flac         flac
1585test_tool_defmake ROAR_HAVE_BIN_TIMIDITY    TiMidity++   timidity
1586test_tool_defmake ROAR_HAVE_BIN_CDPARANOIA  cdparanoia   cdparanoia
1587test_tool_defmake ROAR_HAVE_BIN_WGET        Wget         wget
1588test_tool_defmake ROAR_HAVE_BIN_GNUPLOT     gnuplot      gnuplot
1589test_tool_defmake ROAR_HAVE_BIN_SSH         OpenSSH      ssh
1590test_tool_defmake ROAR_HAVE_BIN_PINENTRY    PIN-Entry    pinentry
1591test_tool_defmake ROAR_HAVE_BIN_SSH_ASKPASS SSH-AskPass  ssh-askpass
1592test_tool_defmake ROAR_HAVE_BIN_GTK_LED_ASKPASS GTK-LED-AskPass gtk-led-askpass
1593test_tool_defmake ROAR_HAVE_BIN_X11_SSH_ASKPASS X11-SSH-AskPass x11-ssh-askpass
1594test_tool_defmake ROAR_HAVE_BIN_GNOME_SSH_ASKPASS GNOME-SSH-AskPass gnome-ssh-askpass
1595test_tool_defmake ROAR_HAVE_BIN_GZIP        Gzip         gzip
1596test_tool_defmake ROAR_HAVE_BIN_BZIP2       bzip2        bzip2
1597test_tool_defmake ROAR_HAVE_BIN_GPG         GnuPG        gpg
1598test_tool_defmake ROAR_HAVE_BIN_CHAT        chat         chat
1599test_tool_defmake ROAR_HAVE_BIN_EJECT       eject        eject
1600
1601echo >&3
1602echo >&5
1603echo >&5
1604echo >&5
1605
1606# Those tests should not be disabled as they do not reduce the lib size just
1607# break --minimal on full systems
1608OLD_MINIMAL=$MINIMAL
1609MINIMAL=false
1610# Test haders:
1611test_lib_defmake ROAR_HAVE_H_STDINT      %            stdint.h      c          -- stdint.h
1612test_lib_defmake ROAR_HAVE_H_STRING      %            string.h      c          -- string.h
1613test_lib_defmake ROAR_HAVE_H_SYS_TYPES   %            sys/types.h   c          -- sys/types.h
1614test_lib_defmake ROAR_HAVE_H_SYS_SOCKET  %            sys/socket.h  c          -- sys/types.h sys/socket.h
1615test_lib_defmake ROAR_HAVE_H_SYS_TIME    %            sys/time.h    c          -- sys/time.h
1616test_lib_defmake ROAR_HAVE_H_SYS_IOCTL   %            sys/ioctl.h   c          -- sys/ioctl.h
1617test_lib_defmake ROAR_HAVE_H_SYS_STAT    %            sys/stat.h    c          -- sys/types.h sys/stat.h
1618test_lib_defmake ROAR_HAVE_H_SYS_REBOOT  %            sys/reboot.h  c          -- sys/reboot.h
1619test_lib_defmake ROAR_HAVE_H_TIME        %            time.h        c          -- time.h
1620test_lib_defmake ROAR_HAVE_H_FCNTL       %            fcntl.h       c          -- fcntl.h
1621test_lib_defmake ROAR_HAVE_H_UNISTD      %            unistd.h      c          -- unistd.h
1622test_lib_defmake ROAR_HAVE_H_STDLIB      %            stdlib.h      c          -- stdlib.h
1623test_lib_defmake ROAR_HAVE_H_SIGNAL      %            signal.h      c          -- signal.h
1624test_lib_defmake ROAR_HAVE_H_POLL        %            poll.h        c          -- poll.h
1625test_lib_defmake ROAR_HAVE_H_MMSYSTEM    %            mmsystem.h    c          -- windows.h mmsystem.h
1626test_lib_defmake ROAR_HAVE_H_ESD         libroaresd   esd.h         c          -- esd.h
1627test_lib_defmake ROAR_HAVE_H_ARTSC       libroararts  artsc.h       c          -- kde/artsc/artsc.h
1628test_lib_defmake ROAR_HAVE_H_ICONV       %            iconv.h       c          -- iconv.h
1629test_lib_defmake ROAR_HAVE_H_NETINET_IN  %            'netinet/in.h' c         -- 'netinet/in.h'
1630test_lib_defmake ROAR_HAVE_H_LINUX_REBOOT %            linux/reboot.h c        -- linux/reboot.h
1631test_lib_defmake ROAR_HAVE_H_WINDOWS     %            windows.h     c          -- windows.h
1632test_lib_defmake ROAR_HAVE_H_WINSOCK2    %            winsock2.h    c          -- winsock2.h
1633MINIMAL=$OLD_MINIMAL
1634
1635#                #define                 subdir       name           -lxxx      -- header
1636test_lib_defmake ROAR_HAVE_LIBM          %            'MathLibrary'  m          -- math.h
1637rt=''
1638libname_rt=false
1639if test_lib 'realtime Library' rt -- sys/mman.h mqueue.h semaphore.h
1640then
1641 {
1642  echo '#define ROAR_HAVE_LIBRT'
1643  echo '#define ROAR_NEED_LIBRT'
1644  libname_rt=true
1645  rt=rt
1646 } >&3
1647fi
1648
1649echo >&3
1650
1651#                #define                 subdir       name          -lxxx      -- header
1652test_lib_defmake ROAR_HAVE_ESD           %            EsounD        esd        -- esd.h
1653test_lib_defmake ROAR_HAVE_LIBAO         %            libao         ao         -- ao/ao.h ao/plugin.h
1654test_lib_defmake ROAR_HAVE_LIBRAUM       %            RAUM          raum       -- raum.h
1655test_lib_defmake ROAR_HAVE_LIBOGG        %            libogg        ogg        -- ogg/ogg.h
1656test_lib_defmake ROAR_HAVE_LIBVORBIS     %            libvorbis     vorbis     -- vorbis/codec.h
1657test_lib_defmake ROAR_HAVE_LIBVORBISFILE %            libvorbisfile vorbisfile -- vorbis/vorbisfile.h
1658test_lib_defmake ROAR_HAVE_LIBVORBISENC  %            libvorbisenc  vorbisenc  -- vorbis/vorbisenc.h
1659test_lib_defmake ROAR_HAVE_LIBSPEEX      %            libspeex      speex      -- speex/speex.h speex/speex_stereo.h
1660test_lib_defmake ROAR_HAVE_LIBSPEEXDSP   %            libspeexdsp   speexdsp   -- speex/speex.h speex/speex_echo.h
1661test_lib_defmake ROAR_HAVE_LIBCELT       %            libcelt       celt       -- celt/celt.h celt/celt_header.h
1662test_lib_defmake ROAR_HAVE_LIBCELT0      %            libcelt0      celt0      -- celt/celt.h celt/celt_header.h
1663test_lib_defmake ROAR_HAVE_LIBOGGZ       %            liboggz       oggz       -- oggz/oggz.h
1664test_lib_defmake ROAR_HAVE_LIBSNDFILE    %            libsndfile    sndfile    -- sndfile.h
1665test_lib_defmake ROAR_HAVE_LIBFISHSOUND  roarfish     libfishsound  fishsound  -- fishsound/fishsound.h
1666test_lib_defmake ROAR_HAVE_LIBFLAC       %            libFLAC       FLAC       -- FLAC/all.h
1667test_lib_defmake ROAR_HAVE_LIBSAMPLERATE %            libsamplerate samplerate -- samplerate.h
1668test_lib_defmake ROAR_HAVE_LIBSHOUT      %            libshout      shout      -- shout/shout.h
1669test_lib_defmake ROAR_HAVE_LIBPULSE      libroarpulse libpulse      pulse      -- pulse/pulseaudio.h pulse/simple.h
1670test_lib_defmake ROAR_HAVE_LIBPULSESIMPLE %           libpulse-simple pulse-simple -- pulse/simple.h
1671test_lib_defmake ROAR_HAVE_LIBY2         libroaryiff  libyiff       Y2         -- Y2/Y.h Y2/Ylib.h
1672test_lib_defmake ROAR_HAVE_LIBARTSC      %            libartsc      artsc      -- kde/artsc/artsc.h
1673test_lib_defmake ROAR_HAVE_LIBOSSAUDIO   %            libossaudio   ossaudio   -- sys/ioctl.h
1674test_lib_defmake ROAR_HAVE_LIBSNDIO      %            libsndio      sndio      -- sndio.h
1675test_lib_defmake ROAR_HAVE_LIBRSOUND     libroarrsound librsound    rsound     -- rsound.h
1676test_lib_defmake ROAR_HAVE_LIBPORTAUDIO  %            PortAudio     portaudio  -- portaudio.h
1677test_lib_defmake ROAR_HAVE_LIBPABLIO     %            PABLIO        pablio     -- pablio/pablio.h
1678test_lib_defmake ROAR_HAVE_LIBSSL        %            OpenSSL       ssl        -- openssl/bio.h openssl/evp.h
1679test_lib_defmake ROAR_HAVE_LIBSLP        %            OpenSLP       slp        -- slp.h
1680test_lib_defmake ROAR_HAVE_LIBUUID       %            libuuid       uuid       -- uuid/uuid.h
1681test_lib_defmake ROAR_HAVE_LIBDNET       %            libdnet       dnet       -- sys/socket.h netdnet/dn.h netdnet/dnetdb.h
1682test_lib_defmake ROAR_HAVE_LIBPTHREAD    %            libpthread    pthread    -- pthread.h
1683OLD_MINIMAL=$MINIMAL
1684MINIMAL=false
1685test_lib_defmake ROAR_HAVE_BSDSOCKETS    %            BSDSockets    c          -- sys/types.h sys/socket.h
1686test_lib_defmake ROAR_HAVE_UNIX          %            UNIX          c          -- sys/types.h sys/socket.h sys/un.h
1687test_lib_defmake ROAR_HAVE_IPV4          %            IPv4          c          -- sys/types.h sys/socket.h 'netinet/in.h' winsock2.h
1688MINIMAL=$OLD_MINIMAL
1689test_lib_defmake ROAR_HAVE_IPX           %            IPX           c          -- netipx/ipx.h
1690test_lib_defmake ROAR_HAVE_OSS           %            OSS           c          -- sys/ioctl.h sys/soundcard.h
1691test_lib_defmake ROAR_HAVE_OSS_BSD       %            BSDOSS        c          -- sys/ioctl.h soundcard.h
1692test_lib_defmake ROAR_HAVE_LIBWINMM      %            WinMM         winmm      -- windows.h mmsystem.h
1693test_lib_defmake ROAR_HAVE_LIBASOUND     %            ALSA          asound     -- alsa/asoundlib.h alsa/pcm_external.h alsa/control_external.h
1694test_lib_defmake ROAR_HAVE_LIBDL         %            DynLinkerLib  dl         -- dlfcn.h
1695test_lib_defmake ROAR_HAVE_LIBZ          %            zlib          z          -- zlib.h
1696test_lib_defmake ROAR_HAVE_LIBSENDFILE   %            sendfile      sendfile   -- sys/sendfile.h
1697test_lib_defmake ROAR_HAVE_LIBSOCKET     %            libsocket     socket     -- sys/socket.h
1698test_lib_defmake ROAR_HAVE_LIBWSOCK32    %            WinSockP0     wsock32    -- winsock2.h
1699test_lib_defmake ROAR_HAVE_LIBWS2_32     %            WinSockP1     ws2_32     -- winsock2.h
1700test_lib_defmake ROAR_HAVE_LIBX11        %            X11           X11        -- X11/Xlib.h X11/Xatom.h
1701test_lib_defmake ROAR_HAVE_GTK_P_2_0     %            GTK+2.0       gtk+-2.0/t -- gtk/gtk.h gdk/gdkkeysyms.h
1702test_lib_defmake ROAR_HAVE_LIBGCRYPT     %            libgcrypt     gcrypt     -- gcrypt.h
1703test_lib_defmake ROAR_HAVE_LIBJACK       %            libjack       jack/t     -- jack/jack.h
1704test_lib_defmake ROAR_HAVE_LIBDBUS       %            libdbus       dbus-1/t   -- dbus-1.0/dbus/dbus.h
1705
1706echo >&3
1707
1708test_version ROAR_HAVE_CELT_VERSION      libcelt       celt
1709test_version ROAR_HAVE_SPEEX_VERSION     libspeex      speex
1710test_version ROAR_HAVE_PULSE_VERSION     libpulse      libpulse
1711test_version ROAR_HAVE_GTK_P_2_0_VERSION GTK+2.0       gtk+-2.0
1712test_version ROAR_HAVE_FLAC_VERSION      libflac       flac
1713test_version ROAR_HAVE_PA19_VERSION      portaudio-19  portaudio-2.0
1714
1715echo >&3
1716
1717# Those tests should not be disabled as they do not reduce the lib size just
1718# break --minimal on full systems
1719
1720OLD_MINIMAL=$MINIMAL
1721MINIMAL=false
1722# Test types:
1723#         DEF                            type/name    init value               -- headers
1724test_type ROAR_HAVE_T_ID_T               id_t
1725test_type ROAR_HAVE_T_PID_T              pid_t
1726test_type ROAR_HAVE_T_UID_T              uid_t
1727test_type ROAR_HAVE_T_GID_T              gid_t
1728test_type ROAR_HAVE_T_SOCKLEN_T          socklen_t    0                        -- sys/socket.h
1729test_type ROAR_HAVE_T_MODE_T             mode_t
1730test_type ROAR_HAVE_T_OFF_T              off_t
1731test_type ROAR_HAVE_T_SSIZE_T            ssize_t
1732test_type ROAR_HAVE_T_TIME_T             time_t
1733test_type ROAR_HAVE_T_SA_FAMILY_T        sa_family_t  0                        -- sys/socket.h
1734MINIMAL=$OLD_MINIMAL
1735
1736echo >&3
1737
1738# add a better test here
1739#test_lib 'linux sendfile()'       -- sys/sendfile.h && echo '#define ROAR_HAVE_LINUX_SENDFILE' >&3
1740
1741
1742echo -n 'checking for IPv6... '
1743
1744if $MINIMAL
1745then
1746 echo "disabled by user (minimalstic build)"
1747else
1748 echo '#include <sys/socket.h>'  > $TF_C
1749 echo '#include <netinet/in.h>' >> $TF_C
1750 echo 'int main (void) { struct sockaddr_in6 in6; return 0; }' >> $TF_C
1751
1752 if $CCTF 2> /dev/null;
1753 then
1754  echo '#define ROAR_HAVE_IPV6' >&3
1755  echo yes
1756 else
1757  echo no
1758 fi
1759fi
1760
1761
1762echo -n 'checking for _exit()... '
1763
1764echo '#include <unistd.h>'    > $TF_C
1765echo 'int main (void) { _exit(0); return 0; }' >> $TF_C
1766
1767if $CCTF 2> /dev/null;
1768then
1769 echo '#define ROAR_HAVE_U_EXIT' >&3
1770 echo '#define ROAR_U_EXIT _exit' >&3
1771 echo yes
1772else
1773 echo '#define ROAR_U_EXIT exit' >&3
1774 echo no
1775fi
1776
1777#                 def                 name      call                         -- header
1778test_func_defmake ROAR_HAVE_MALLOC    malloc    'malloc(0)'                  -- stdlib.h
1779test_func_defmake ROAR_HAVE_CALLOC    calloc    'calloc(0, 0)'               -- stdlib.h
1780test_func_defmake ROAR_HAVE_REALLOC   realloc   'realloc((void*)0, 0)'       -- stdlib.h
1781test_func_defmake ROAR_HAVE_FREE      free      'free((void*)0)'             -- stdlib.h
1782test_func_defmake ROAR_HAVE_STRDUP    strdup    'strdup((void*)0)'           -- string.h
1783test_func_defmake ROAR_HAVE_STRNDUP   strndup   'strndup((void*)0)'          -- string.h
1784test_func_defmake ROAR_HAVE_STRLEN    strlen    'strlen((void*)0)'           -- string.h
1785test_func_defmake ROAR_HAVE_STRNLEN   strnlen   'strnlen((void*)0)'          -- string.h
1786test_func_defmake ROAR_HAVE_SETENV    setenv    'setenv("", "", 0)'          -- stdlib.h
1787test_func_defmake ROAR_HAVE_PUTENV    putenv    'putenv("")'                 -- stdlib.h
1788test_func_defmake ROAR_HAVE_STRTOK_R  strtok_r  'strtok_r("","",(char**)0)'  -- string.h
1789test_func_defmake ROAR_HAVE_STRLCPY   strlcpy   'strlcpy((char*)0, "", 0)'   -- string.h
1790test_func_defmake ROAR_HAVE_STRLCAT   strlcat   'strlcat((char*)0, "", 0)'   -- string.h
1791test_func_defmake ROAR_HAVE_QSORT     qsort     'qsort((void*)0, 0, 0, (int(*)(const void *, const void *))0)' -- stdlib.h
1792test_func_defmake ROAR_HAVE_NICE      nice      'nice(0)'                    -- unistd.h
1793test_func_defmake ROAR_HAVE_GETHOSTID gethostid 'gethostid()'                -- unistd.h
1794test_func_defmake ROAR_HAVE_GETGID    getgid    'getgid()'                   -- sys/types.h unistd.h
1795test_func_defmake ROAR_HAVE_GETUID    getuid    'getuid()'                   -- sys/types.h unistd.h
1796test_func_defmake ROAR_HAVE_SETGID    setgid    'setgid(0)'                  -- sys/types.h unistd.h
1797test_func_defmake ROAR_HAVE_SETUID    setuid    'setuid(0)'                  -- sys/types.h unistd.h
1798test_func_defmake ROAR_HAVE_SETSID    setsid    'setsid()'                   -- sys/types.h unistd.h
1799test_func_defmake ROAR_HAVE_GETPWNAM  getpwnam  'getpwnam("")'               -- sys/types.h pwd.h
1800test_func_defmake ROAR_HAVE_GETGRNAM  getgrnam  'getgrnam("")'               -- sys/types.h grp.h
1801test_func_defmake ROAR_HAVE_GETTIMEOFDAY gettimeofday 'struct timeval tv; gettimeofday(&tv, NULL)' -- sys/time.h time.h
1802test_func_defmake ROAR_HAVE_USLEEP    usleep    'usleep(0)'                  -- sys/types.h unistd.h
1803test_func_defmake ROAR_HAVE_SLEEP     sleep     'sleep(0)'                   -- unistd.h
1804test_func_defmake ROAR_HAVE_NANOSLEEP nanosleep 'nanosleep((void*)0, (void*)0)' -- time.h
1805test_func_defmake ROAR_HAVE_ALARM     alarm     'alarm(0)'                   -- sys/types.h unistd.h
1806test_func_defmake ROAR_HAVE_TIME      time      'time((void*)0)'             -- time.h
1807test_func_defmake ROAR_HAVE_CTIME     ctime     'ctime((void*)0)'            -- time.h
1808test_func_defmake ROAR_HAVE_CTIME_R   ctime_r   'ctime_r((void*)0,(char*)0)' -- time.h
1809test_func_defmake ROAR_HAVE_KILL      kill      'kill(0,0)'                  -- sys/types.h signal.h
1810test_func_defmake ROAR_HAVE_UNAME     uname     'uname((void*)0)'            -- sys/utsname.h
1811test_func_defmake ROAR_HAVE_GETHOSTNAME gethostname 'gethostname((void*)0, 0)' -- unistd.h
1812test_func_defmake ROAR_HAVE_SYSLOG    syslog    'syslog(0, "")'              -- syslog.h
1813test_func_defmake ROAR_HAVE_OPENLOG   openlog   'openlog("", 0, 0)'          -- syslog.h
1814test_func_defmake ROAR_HAVE_CLOSELOG  closelog  'closelog()'                 -- syslog.h
1815test_func_defmake ROAR_HAVE_FOPEN     fopen     'fopen("","")'               -- stdio.h
1816test_func_defmake ROAR_HAVE_FDOPEN    fdopen    'fdopen(0,"")'               -- stdio.h
1817test_func_defmake ROAR_HAVE_FREOPEN   freopen   'freopen("","",(void*)0)'    -- stdio.h
1818test_func_defmake ROAR_HAVE_FCLOSE    fclose    'fclose(0)'                  -- stdio.h
1819test_func_defmake ROAR_HAVE_FILENO    fileno    'fileno(0)'                  -- stdio.h
1820test_func_defmake ROAR_HAVE_FTELL     ftell     'ftell(0)'                   -- stdio.h
1821test_func_defmake ROAR_HAVE_FSEEK     fseek     'fseek(0, 0, 0)'             -- stdio.h
1822test_func_defmake ROAR_HAVE_POPEN     popen     'popen("", "")'              -- stdio.h
1823test_func_defmake ROAR_HAVE_PCLOSE    pclose    'pclose(0)'                  -- stdio.h
1824test_func_defmake ROAR_HAVE_STAT      stat      'stat((char*)0, (void*)0)'   -- sys/types.h sys/stat.h unistd.h
1825test_func_defmake ROAR_HAVE_SYSTEM    system    'system("")'                 -- stdlib.h
1826test_func_defmake ROAR_HAVE_GETSOCKNAME getsockname 'getsockname(0, 0, 0)'   -- sys/socket.h
1827test_func_defmake ROAR_HAVE_GETPEERNAME getpeername 'getpeername(0, 0, 0)'   -- sys/socket.h
1828test_func_defmake ROAR_HAVE_GETSOCKOPT getsockopt 'getsockopt(0, 0, 0, (void*)0, (void*)0)' -- sys/types.h sys/socket.h
1829test_func_defmake ROAR_HAVE_SETSOCKOPT setsockopt 'setsockopt(0, 0, 0, (void*)0, (void*)0)' -- sys/types.h sys/socket.h
1830test_func_defmake ROAR_HAVE_GETADDRINFO getaddrinfo 'getaddrinfo((void*)0, (void*)0, (void*)0, (void**)0)' -- sys/types.h sys/socket.h netdb.h
1831test_func_defmake ROAR_HAVE_RAND      rand      'rand()'                     -- stdlib.h
1832test_func_defmake ROAR_HAVE_RAND_R    rand_r    'rand_r((unsigned int*)0)'   -- stdlib.h
1833test_func_defmake ROAR_HAVE_SRAND     srand     'srand((unsigned int)0)'     -- stdlib.h
1834test_func_defmake ROAR_HAVE_FCNTL     fcntl     'fcntl(0, 0)'                -- unistd.h fcntl.h
1835test_func_defmake ROAR_HAVE_REBOOT    reboot    'reboot(LINUX_REBOOT_CMD_RESTART|LINUX_REBOOT_CMD_HALT|LINUX_REBOOT_CMD_POWER_OFF|LINUX_REBOOT_CMD_CAD_ON|LINUX_REBOOT_CMD_CAD_OFF)' -- unistd.h linux/reboot.h sys/reboot.h
1836test_func_defmake ROAR_HAVE_LINUX_SENDFILE sendfile 'sendfile(-1, -1, (void*)0, 0)' -- sys/sendfile.h
1837test_func_defmake ROAR_HAVE_GETVERSIONEX     GetVersionEx     'OSVERSIONINFO osinfo; osinfo.dwOSVersionInfoSize = sizeof(osinfo);GetVersionEx(&osinfo);'                -- windows.h
1838
1839test_func_defmake ROAR_HAVE_AO_APPEND_GLOBAL_OPTION ao_append_global_option 'ao_append_global_option("","")' ao -- ao/ao.h
1840
1841test_func_defmake ROAR_HAVE_DLADDR    dladdr    'dladdr((void*)0, (Dl_info*)0)' dl -- dlfcn.h
1842echo "STATE: funcname_dladdr=$funcname_dladdr" >&5
1843
1844if [ "$funcname_dladdr" = 'false' ]
1845then
1846 infotext='retested with _GNU_SOURCE'
1847 _old="$NEED_GNU_SOURCE"
1848 NEED_GNU_SOURCE=true
1849 test_func_defmake ROAR_HAVE_DLADDR    dladdr    'dladdr((void*)0, (Dl_info*)0)' dl -- dlfcn.h
1850 [ "$funcname_dladdr" = 'false' ] && NEED_GNU_SOURCE="$_old"
1851 infotext=''
1852fi
1853
1854test_func_defmake ROAR_HAVE_CLOCK_GETRES  clock_getres  'struct timespec ts; clock_getres((clockid_t)0, &ts)'  -- time.h
1855test_func_defmake ROAR_HAVE_CLOCK_GETTIME clock_gettime 'struct timespec ts; clock_gettime((clockid_t)0, &ts)' -- time.h
1856test_func_defmake ROAR_HAVE_CLOCK_SETTIME clock_settime 'struct timespec ts; clock_settime((clockid_t)0, &ts)' -- time.h
1857
1858echo "STATE: funcname_clock_getres=$funcname_clock_getres" >&5
1859echo "STATE: libname_rt=$libname_rt" >&5
1860
1861if [ "$funcname_clock_getres" = 'false' ]
1862then
1863 if $libname_rt
1864 then
1865  infotext='retested using realtime library'
1866  test_func_defmake ROAR_HAVERT_CLOCK_GETRES  clock_getres  'struct timespec ts; clock_getres((clockid_t)0, &ts)'  $rt -- time.h
1867  test_func_defmake ROAR_HAVERT_CLOCK_GETTIME clock_gettime 'struct timespec ts; clock_gettime((clockid_t)0, &ts)' $rt -- time.h
1868  test_func_defmake ROAR_HAVERT_CLOCK_SETTIME clock_settime 'struct timespec ts; clock_settime((clockid_t)0, &ts)' $rt -- time.h
1869  infotext=''
1870  if $funcname_clock_getres
1871  then
1872   echo "clock_rt=-l$rt" >&4
1873  fi
1874 fi
1875fi
1876
1877test_const_defmake ROAR_HAVE_CONST_CLOCK_REALTIME CLOCK_REALTIME clockid_t CLOCK_REALTIME -- time.h
1878test_const_defmake ROAR_HAVE_CONST_CLOCK_MONOTONIC CLOCK_MONOTONIC clockid_t CLOCK_MONOTONIC -- time.h
1879test_const_defmake ROAR_HAVE_CONST_CLOCK_PROCESS_CPUTIME_ID CLOCK_PROCESS_CPUTIME_ID clockid_t CLOCK_PROCESS_CPUTIME_ID -- time.h
1880test_const_defmake ROAR_HAVE_CONST_CLOCK_THREAD_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID clockid_t CLOCK_THREAD_CPUTIME_ID -- time.h
1881test_const_defmake ROAR_HAVE_CONST_M_PI_2 M_PI_2 double M_PI_2 -- math.h
1882
1883
1884test_var_defmake   ROAR_HAVE_VAR_H_ERRNO h_errno int h_errno -- netdb.h
1885
1886echo -n 'checking for basic IO calls... '
1887
1888cat <<EOF > $TF_C
1889#include <sys/types.h>
1890#include <sys/stat.h>
1891#include <fcntl.h>
1892#include <string.h>
1893#include <unistd.h>
1894
1895int main(void) {
1896 open(NULL, 0, 0);
1897 close(0);
1898 read(0, NULL, 0);
1899 write(0, NULL, 0);
1900 lseek(0, 0, 0);
1901 return 0;
1902}
1903EOF
1904
1905if $CCTF 2> /dev/null;
1906then
1907 echo '#define ROAR_HAVE_IO_POSIX' >&3
1908 echo posix
1909else
1910 echo none
1911fi
1912
1913echo -n 'checking for basic FS calls... '
1914
1915cat <<EOF > $TF_C
1916#include <string.h>
1917#include <unistd.h>
1918
1919int main(void) {
1920 chdir(NULL);
1921 unlink(NULL);
1922 return 0;
1923}
1924EOF
1925
1926if $CCTF 2> /dev/null;
1927then
1928 echo '#define ROAR_HAVE_FS_POSIX' >&3
1929 echo posix
1930else
1931 echo none
1932fi
1933
1934
1935test_func_defmake ROAR_HAVE_CHROOT     chroot     'chroot((void*)0)'           -- unistd.h
1936test_func_defmake ROAR_HAVE_MLOCK      mlock      'mlock((void*)0, 0)'         -- sys/mman.h
1937test_func_defmake ROAR_HAVE_MUNLOCK    munlock    'munlock((void*)0, 0)'       -- sys/mman.h
1938test_func_defmake ROAR_HAVE_MLOCKALL   mlockall   'mlockall(MCL_CURRENT|MCL_FUTURE)' -- sys/mman.h
1939test_func_defmake ROAR_HAVE_MUNLOCKALL munlockall 'munlockall()'               -- sys/mman.h
1940test_func_defmake ROAR_HAVE_MMAP       mmap       'mmap((void*)0,0,0,0,0,0)'   -- sys/mman.h
1941
1942echo -n 'checking for fsync()... '
1943
1944echo '#include <unistd.h>' > $TF_C
1945echo 'int main (void) { fsync(0); return 0; }' >> $TF_C
1946
1947if $CCTF 2> /dev/null;
1948then
1949 echo '#define ROAR_HAVE_FSYNC' >&3
1950 FSYNC=true
1951 echo yes
1952else
1953 FSYNC=false
1954 echo no
1955fi
1956
1957echo -n 'checking for fdatasync()... '
1958
1959echo '#include <unistd.h>' > $TF_C
1960echo 'int main (void) { fdatasync(0); return 0; }' >> $TF_C
1961
1962if $CCTF 2> /dev/null;
1963then
1964 echo '#define ROAR_HAVE_FDATASYNC' >&3
1965 echo '#define ROAR_FDATASYNC fdatasync' >&3
1966 echo yes
1967else
1968 $FSYNC && echo '#define ROAR_FDATASYNC fsync' >&3
1969 echo no
1970fi
1971
1972
1973#test_func_defmake ROAR_HAVE_STRCASESTR strcasestr 'strcasestr("", "")'       -- string.h
1974echo -n 'checking for strcasestr()... '
1975
1976echo '#define _GNU_SOURCE' > $TF_C
1977echo '#include <string.h>' >> $TF_C
1978echo 'int main (void) { strcasestr("", ""); return 0; }' >> $TF_C
1979
1980if $CCTF 2> /dev/null;
1981then
1982 echo '#define ROAR_HAVE_STRCASESTR' >&3
1983 NEED_GNU_SOURCE=true
1984 echo yes
1985else
1986 echo no
1987fi
1988
1989echo -n 'checking for fopencookie()... '
1990
1991echo '#define _GNU_SOURCE' > $TF_C
1992echo '#include <stdio.h>' >> $TF_C
1993echo 'int main (void) { cookie_io_functions_t f; fopencookie(NULL, "", f); return 0; }' >> $TF_C
1994
1995if $CCTF 2> /dev/null;
1996then
1997 echo '#define ROAR_HAVE_FOPENCOOKIE' >&3
1998 NEED_GNU_SOURCE=true
1999 echo yes
2000else
2001 echo no
2002fi
2003
2004echo -n 'checking for funopen()... '
2005
2006echo '#define __BSD_VISIBLE 1'  > $TF_C
2007echo '#include <stdio.h>'      >> $TF_C
2008echo 'int main (void) { funopen(NULL, NULL, NULL, NULL, NULL); return 0; }' >> $TF_C
2009
2010if $CCTF 2> /dev/null;
2011then
2012 echo '#define ROAR_HAVE_FUNOPEN' >&3
2013 echo '#define ROAR_NEED_BSD_VISIBLE' >&3
2014 echo yes
2015else
2016 echo no
2017fi
2018
2019test_func_defmake ROAR_HAVE_PIPE      pipe      'pipe(NULL)'                 -- unistd.h
2020test_func_defmake ROAR_HAVE_FORK      fork      'fork()'                     -- unistd.h
2021test_func_defmake ROAR_HAVE_WAIT      wait      'wait(NULL)'                 -- string.h sys/wait.h
2022test_func_defmake ROAR_HAVE_SINF      sinf      'sinf(0.)'                 m -- math.h
2023
2024echo -n 'checking for square root func... '
2025
2026if $TARGET_CYGWIN
2027then
2028 echo 'sqrt() (cygwin)'
2029elif [ "$SYSNAME" = 'FreeBSD' ]
2030then
2031 echo 'sqrt() (FreeBSD, fix your gcc)'
2032elif [ "$SYSNAME" = 'Linux' ]
2033then
2034 echo '#include <math.h>' > $TF_C
2035 echo 'int main (void) { sqrtl(0); return 0; }' >> $TF_C
2036
2037 if $CCTF -lm 2> /dev/null;
2038 then
2039  echo '#define ROAR_HAVE_SQRTL' >&3
2040  echo 'sqrtl()'
2041 else
2042  echo 'sqrt()'
2043 fi
2044else
2045 echo 'sqrt()'
2046fi
2047
2048echo -n 'checking for inline funcs... '
2049
2050echo 'inline int test (void) { return 0; }' > $TF_C
2051echo 'int main (void) { return test(); }'  >> $TF_C
2052
2053if $CCTF 2> /dev/null;
2054then
2055 echo '#define ROAR_HAVE_INLINE' >&3
2056 echo yes
2057else
2058 echo no
2059fi
2060
2061
2062echo -n 'checking for -pthread... '
2063
2064echo '#include <pthread.h>'                            > $TF_C
2065echo 'int main (void) { pthread_self(); return 0; }'  >> $TF_C
2066
2067if $CCTF -pthread 2> /dev/null;
2068then
2069 echo '#define ROAR_HAVE_CC_PTHREAD_OPTION' >&3
2070 echo 'opt_pthread=-pthread' >&4
2071 echo 'pthread=$(opt_pthread)' >&4
2072 echo yes
2073else
2074 echo 'opt_pthread=' >&4
2075 echo 'pthread=$(lib_pthread)' >&4
2076 echo no
2077fi
2078
2079
2080echo -n 'checking for broken peercred... '
2081echo '#include <sys/types.h>'      >  $TF_C
2082echo '#include <sys/socket.h>'     >> $TF_C
2083echo '#include <sys/un.h>'         >> $TF_C
2084echo 'int main (void) { struct ucred cred; return 0; }'  >> $TF_C
2085
2086if $CCTF 2> /dev/null;
2087then
2088 echo working
2089else
2090 if $CCTF -D_GNU_SOURCE 2> /dev/null;
2091 then
2092  NEED_GNU_SOURCE=true
2093  echo need to set _GNU_SOURCE
2094 else
2095  echo '#define ROAR_BROKEN_PEERCRED' >&3
2096  echo broken
2097 fi
2098fi
2099
2100
2101test_func_defmake ROAR_HAVE_GETPEEREID getpeereid 'getpeereid(0, NULL, NULL)' -- sys/types.h sys/socket.h
2102
2103echo -n 'checking for select()... '
2104cat <<EOF > $TF_C
2105#ifndef WITHOUT_SYS_SELECT_H
2106#include <sys/select.h>
2107#endif
2108#ifdef WITH_WINSOCK_H
2109#include <winsock.h>
2110#endif
2111#include <sys/time.h>
2112#include <sys/types.h>
2113#include <unistd.h>
2114
2115int main (void) {
2116 fd_set rfds;
2117 struct timeval tv;
2118
2119 FD_ZERO(&rfds);
2120 FD_SET(0, &rfds);
2121
2122 tv.tv_sec  = 0;
2123 tv.tv_usec = 0;
2124
2125 select(1, &rfds, NULL, NULL, &tv);
2126
2127 return 0;
2128}
2129EOF
2130
2131if $CCTF 2> /dev/null;
2132then
2133 echo '#define ROAR_HAVE_SELECT' >&3
2134 echo '#define ROAR_HAVE_H_SYS_SELECT' >&3
2135 echo yes, POSIX.1-2001
2136elif $CCTF -DWITHOUT_SYS_SELECT_H 2> /dev/null;
2137then
2138 echo '#define ROAR_HAVE_SELECT' >&3
2139 echo yes, old style
2140elif $CCTF -DWITHOUT_SYS_SELECT_H -DWITH_WINSOCK_H $lib_wsock32 >&5 2>&5;
2141then
2142 echo '#define ROAR_HAVE_SELECT' >&3
2143 echo yes, WinSock
2144else
2145 echo no
2146fi
2147
2148echo -n 'checking for shutdown()... '
2149cat <<EOF > $TF_C
2150#include <sys/types.h>
2151#ifndef WITHOUT_SYS_SOCKET_H
2152#include <sys/socket.h>
2153#endif
2154#ifdef WITH_WINSOCK_H
2155#include <winsock.h>
2156#endif
2157
2158int main (void) { shutdown(0, 0); return 0; }
2159EOF
2160
2161if [ "$SYSNAME" = 'SunOS' ]
2162then
2163 _l='-lsocket'
2164else
2165 _l=''
2166fi
2167
2168if $CCTF $_l 2> /dev/null;
2169then
2170 echo '#define ROAR_HAVE_SHUTDOWN'     >&3
2171 echo '#define ROAR_SHUTDOWN shutdown' >&3
2172 echo yes
2173elif $CCTF -DWITHOUT_SYS_SOCKET_H -DWITH_WINSOCK_H $lib_wsock32 2> /dev/null;
2174then
2175 echo '#define ROAR_HAVE_SHUTDOWN'     >&3
2176 echo '#define ROAR_SHUTDOWN shutdown' >&3
2177 echo yes, WinSock
2178else
2179 echo '#define ROAR_SHUTDOWN(x,y) (-1)' >&3
2180 echo no
2181fi
2182
2183echo -n 'checking for accept()... '
2184cat <<EOF > $TF_C
2185#include <sys/types.h>
2186#ifndef WITHOUT_SYS_SOCKET_H
2187#include <sys/socket.h>
2188#endif
2189#ifdef WITH_WINSOCK_H
2190#include <winsock.h>
2191#endif
2192
2193int main (void) { accept(0, 0, 0); return 0; }
2194EOF
2195
2196if [ "$SYSNAME" = 'SunOS' ]
2197then
2198 _l='-lsocket'
2199else
2200 _l=''
2201fi
2202
2203if $CCTF $_l 2> /dev/null;
2204then
2205 echo '#define ROAR_HAVE_ACCEPT'     >&3
2206 echo '#define ROAR_ACCEPT accept'   >&3
2207 echo yes
2208elif $CCTF -DWITHOUT_SYS_SOCKET_H -DWITH_WINSOCK_H $lib_wsock32 2> /dev/null;
2209then
2210 echo '#define ROAR_HAVE_ACCEPT'     >&3
2211 echo '#define ROAR_ACCEPT accept'   >&3
2212 echo yes, WinSock
2213else
2214 echo '#define ROAR_ACCEPT(x,y,z) (-1)' >&3
2215 echo no
2216fi
2217
2218test_func_defmake ROAR_HAVE_GETOBJECTBYNAME getobjectbyname 'getobjectbyname(NULL)' dnet -- stdlib.h netdnet/dn.h netdnet/dnetdb.h
2219test_func_defmake ROAR_HAVE_GETSERVBYNAME   getservbyname   'getservbyname((void*)0, (void*)0)' -- netdb.h
2220
2221
2222# --- PulseAudio tests ---
2223test_pa_type ROAR_HAVE_TYPE_PA_PATH_GET_FILENAME pa_path_get_filename type 'const char *' 'char *' 'const char *pa_path_get_filename(const char *p) { return NULL; }' pulse/simple.h
2224
2225test_pa_type ROAR_HAVE_TYPE_PA_UTF8_VALID pa_utf8_valid type 'const char *' 'char *' 'const char *pa_utf8_valid(const char *str) { return NULL; }'
2226
2227test_pa_type ROAR_HAVE_ARG_SINK_NAME_OF_PA_CONTEXT_MOVE_SINK_INPUT_BY_NAME pa_context_move_sink_input_by_name args:'pa_context *c, uint32_t idx, %s sink_name, pa_context_success_cb_t cb, void* userdata' 'const char *' 'char *' 'pa_operation* pa_context_move_sink_input_by_name(pa_context *c, uint32_t idx, const char *sink_name, pa_context_success_cb_t cb, void* userdata) { return NULL; }'
2228
2229test_pa_type ROAR_HAVE_ARG_SOURCE_NAME_OF_PA_CONTEXT_MOVE_SOURCE_OUTPUT_BY_NAME pa_context_move_source_output_by_name args:'pa_context *c, uint32_t idx, %s source_name, pa_context_success_cb_t cb, void* userdata)' 'const char *' 'char *' 'pa_operation* pa_context_move_source_output_by_name(pa_context *c, uint32_t idx, const char *source_name, pa_context_success_cb_t cb, void* userdata) { return NULL; }'
2230
2231test_pa_type ROAR_HAVE_ARG_VOLUME_OF_PA_STREAM_CONNECT_PLAYBACK pa_stream_connect_playback args:'pa_stream *s, const char *dev, const pa_buffer_attr *attr, pa_stream_flags_t flags, %s volume, pa_stream *sync_stream' 'const pa_cvolume *' 'pa_cvolume *' 'int pa_stream_connect_playback(pa_stream *s, const char *dev, const pa_buffer_attr *attr, pa_stream_flags_t flags, const pa_cvolume * volume, pa_stream *sync_stream) { return -1; }'
2232# --- End of PulseAudio tests ---
2233
2234
2235echo -n 'checking for struct rsound'\''s sample size member... '
2236
2237cat > $TF_C << EOF
2238#define RSD_EXPOSE_STRUCT
2239#include <rsound.h>
2240
2241int main (void) {
2242 rsound_t var;
2243
2244 var.samplesize = 0;
2245
2246 return 0;
2247}
2248EOF
2249if $CCTF 2> /dev/null;
2250then
2251 echo '#define ROAR_HAVE_RSOUND_SAMPLESIZE'     >&3
2252 echo '#define ROAR_HAVE_RSOUND_SAMPLESIZE_MEMBER samplesize'   >&3
2253 echo samplesize
2254else
2255 echo '#define ROAR_HAVE_RSOUND_SAMPLESIZE_MEMBER framesize'   >&3
2256 echo framesize
2257fi
2258
2259echo -n 'checking for safe 32 bit integer overflow... '
2260
2261cat > $TF_C << EOF
2262#include <stdio.h>
2263#include <stdint.h>
2264#define TYPE uint32_t
2265#define MAX  ((TYPE)4294967295U)
2266
2267int main (void) {
2268 TYPE a = MAX;
2269
2270 a += 2;
2271
2272 if ( a == 1 ) {
2273  printf("#define ROAR_HAVE_SAFE_OVERFLOW\n");
2274  return 0;
2275 }
2276
2277 return 1;
2278}
2279EOF
2280
2281if $CCTF 2> /dev/null;
2282then
2283 $EXEC_HELPER $TF_E >&3 2> /dev/null
2284 if [ "$?" = '0' ]
2285 then
2286  echo yes
2287 else
2288  echo no
2289 fi
2290else
2291 echo 'no (can not compile!, no stdint.h?)'
2292fi
2293
2294echo -n 'checking for __LP64__... '
2295if $TARGET_WIN32
2296then
2297 echo 'no need to set (win32 build)'
2298else
2299cat > $TF_C << EOF
2300#include <stdio.h>
2301
2302int main (void) {
2303#ifdef __LP64__
2304 fprintf(stderr, "set by compiler\n");
2305#else
2306 if ( sizeof(int) == sizeof(void*) ) {
2307  fprintf(stderr, "no need to set\n");
2308 } else {
2309  fprintf(stderr, "need to set\n");
2310  printf("\n#ifndef __LP64__\n#define __LP64__\n#endif\n\n");
2311 }
2312#endif
2313 return 0;
2314}
2315EOF
2316 if $CCTF 2> /dev/null;
2317 then
2318  $EXEC_HELPER $TF_E >&3
2319 else
2320  echo 'error, can not compile'
2321  exit 1
2322 fi
2323fi
2324
2325echo -n 'checking for 64 bit types... '
2326if $TARGET_WIN32
2327then
2328 echo 'int64_t, uint64_t (win32 build)'
2329 echo '#define ROAR_NATIVE_INT64  int64_t'  >&3
2330 echo '#define ROAR_NATIVE_UINT64 uint64_t' >&3
2331else
2332cat > $TF_C << EOF
2333#include <stdio.h>
2334#include <stdint.h>
2335
2336int main (void) {
2337 char * i64 = NULL, * ui64 = NULL;
2338
2339 if ( sizeof(int) == 8 ) {
2340  i64 = "int"; ui64 = "unsigned int";
2341 } else if ( sizeof(long int) == 8 ) {
2342  i64 = "long int"; ui64 = "unsigned long int";
2343 } else if ( sizeof(long long int) == 8 ) {
2344  i64 = "long long int"; ui64 = "unsigned long long int";
2345 } else if ( sizeof(int64_t) == 8 ) {
2346  i64 = "int64_t"; ui64 = "uint64_t";
2347 } else {
2348  fprintf(stderr, "none\n");
2349  return 0;
2350 }
2351
2352 fprintf(stderr, "%s, %s\n", i64, ui64);
2353 printf("#define ROAR_NATIVE_INT64 %s\n#define ROAR_NATIVE_UINT64 %s\n", i64, ui64);
2354
2355 return 0;
2356}
2357EOF
2358 if $CCTF 2> /dev/null;
2359 then
2360  $EXEC_HELPER $TF_E >&3
2361 else
2362  echo 'error, can not compile'
2363  exit 1
2364 fi
2365fi
2366
2367
2368echo -n 'checking if cp supports -v... '
2369if cp -v --help > /dev/null 2> /dev/null
2370then
2371 echo "cp_v=-v" >&4
2372 echo yes
2373else
2374 echo "cp_v=" >&4
2375 echo no
2376fi
2377
2378echo -n 'checking for cdrom device... '
2379if [ -n "$CDROM" ]
2380then
2381 if [ "$CDROM" = '(none)' ]
2382 then
2383  echo "none (disabled by user)"
2384 else
2385  if $CROSS_COMPILE
2386  then
2387   echo "$CDROM (cross compile)"
2388  elif [ -e "$CDROM" ]
2389  then
2390   echo "$CDROM (forced by user)"
2391  else
2392   echo "$CDROM (not existing, forced by user)"
2393  fi
2394  echo '#define ROAR_DEFAULT_CDROM "'"$CDROM"'"' >&3
2395  echo '#define ROAR_HAVE_CDROM' >&3
2396 fi
2397elif $CROSS_COMPILE
2398then
2399 echo 'none (cross compiling, use --cdrom to enable CDROM support)'
2400else
2401 CDROM=$(ls /dev/cdrom /dev/rcd0c 2> /dev/null | head -n 1);
2402 if [ -e "$CDROM" ]
2403 then
2404  echo "$CDROM"
2405  echo '#define ROAR_DEFAULT_CDROM "'"$CDROM"'"' >&3
2406  echo '#define ROAR_HAVE_CDROM' >&3
2407 else
2408  echo 'none'
2409  echo '#define ROAR_HAVE_CDROM' >&3
2410 fi
2411fi
2412
2413echo -n 'checking for default tty device... '
2414if [ -n "$TTY_DEV" ]
2415then
2416 if [ "$TTY_DEV" = '(none)' ]
2417 then
2418  echo "none (disabled by user)"
2419 else
2420  if $CROSS_COMPILE
2421  then
2422   echo "$TTY_DEV (cross compile)"
2423  elif [ -e "$TTY_DEV" ]
2424  then
2425   echo "$TTY_DEV (forced by user)"
2426  else
2427   echo "$TTY_DEV (not existing, forced by user)"
2428  fi
2429  echo '#define ROAR_DEFAULT_TTY "'"$TTY_DEV"'"' >&3
2430 fi
2431elif $CROSS_COMPILE
2432then
2433 echo 'none (cross compiling, use --tty to set default device)'
2434else
2435 TTY_DEV=$(ls /dev/tty 2> /dev/null | head -n 1);
2436 if [ -e "$TTY_DEV" ]
2437 then
2438  echo "$TTY_DEV"
2439  echo '#define ROAR_DEFAULT_TTY "'"$TTY_DEV"'"' >&3
2440 else
2441  echo 'none'
2442 fi
2443fi
2444
2445echo -n 'checking for OSS device... '
2446if [ -n "$OSS_DEV" ]
2447then
2448 if [ "$OSS_DEV" = '(none)' ]
2449 then
2450  echo "none (disabled by user)"
2451 else
2452  if $CROSS_COMPILE
2453  then
2454   echo "$OSS_DEV (cross compile)"
2455  elif [ -e "$OSS_DEV" ]
2456  then
2457   echo "$OSS_DEV (forced by user)"
2458  else
2459   echo "$OSS_DEV (not existing, forced by user)"
2460  fi
2461  echo '#define ROAR_DEFAULT_OSS_DEV "'"$OSS_DEV"'"' >&3
2462 fi
2463elif $CROSS_COMPILE
2464then
2465 echo 'none (cross compiling, use --oss-dev to set default device)'
2466else
2467 OSS_DEV=$(ls /dev/dsp /dev/audio 2> /dev/null | head -n 1);
2468 if [ -e "$OSS_DEV" ]
2469 then
2470  echo "$OSS_DEV"
2471  echo '#define ROAR_DEFAULT_OSS_DEV "'"$OSS_DEV"'"' >&3
2472 else
2473  echo 'none'
2474 fi
2475fi
2476
2477echo -n 'checking for OSS mixer device... '
2478if [ -n "$OSS_MIX_DEV" ]
2479then
2480 if [ "$OSS_MIX_DEV" = '(none)' ]
2481 then
2482  echo "none (disabled by user)"
2483 else
2484  if $CROSS_COMPILE
2485  then
2486   echo "$OSS_MIX_DEV (cross compile)"
2487  elif [ -e "$OSS_MIX_DEV" ]
2488  then
2489   echo "$OSS_MIX_DEV (forced by user)"
2490  else
2491   echo "$OSS_MIX_DEV (not existing, forced by user)"
2492  fi
2493  echo '#define ROAR_DEFAULT_OSS_MIX_DEV "'"$OSS_MIX_DEV"'"' >&3
2494 fi
2495elif $CROSS_COMPILE
2496then
2497 echo 'none (cross compiling, use --oss-mixer-dev to set default device)'
2498else
2499 OSS_MIX_DEV=$(ls /dev/mixer 2> /dev/null | head -n 1);
2500 if [ -e "$OSS_MIX_DEV" ]
2501 then
2502  echo "$OSS_MIX_DEV"
2503  echo '#define ROAR_DEFAULT_OSS_MIX_DEV "'"$OSS_MIX_DEV"'"' >&3
2504 else
2505  echo 'none'
2506 fi
2507fi
2508
2509echo 'checking for DECnet status file... '"$PROC_NET_DECNET"
2510echo '#define ROAR_PROC_NET_DECNET "'"$PROC_NET_DECNET"'"' >&3
2511
2512echo -n 'checking for DECnet neighbour file... '
2513if [ -n "$PROC_NET_DECNET_NEIGH" ]
2514then
2515 if [ "$PROC_NET_DECNET_NEIGH" = '(none)' ]
2516 then
2517  echo "none (disabled by user)"
2518 else
2519  if $CROSS_COMPILE
2520  then
2521   echo "$PROC_NET_DECNET_NEIGH (cross compile)"
2522  elif [ -e "$PROC_NET_DECNET_NEIGH" ]
2523  then
2524   echo "$PROC_NET_DECNET_NEIGH (forced by user)"
2525  else
2526   echo "$PROC_NET_DECNET_NEIGH (not existing, forced by user)"
2527  fi
2528  echo '#define ROAR_PROC_NET_DECNET_NEIGH "'"$PROC_NET_DECNET_NEIGH"'"' >&3
2529 fi
2530elif $CROSS_COMPILE
2531then
2532 echo 'none (cross compiling, use --proc-net-decnet-neigh to set default device)'
2533else
2534 PROC_NET_DECNET_NEIGH=$(ls /proc/net/decnet_neigh 2> /dev/null | head -n 1);
2535 if [ -e "$PROC_NET_DECNET_NEIGH" ]
2536 then
2537  echo "$PROC_NET_DECNET_NEIGH"
2538  echo '#define ROAR_PROC_NET_DECNET_NEIGH "'"$PROC_NET_DECNET_NEIGH"'"' >&3
2539 else
2540  echo 'none'
2541 fi
2542fi
2543
2544echo -n 'checking for IP neighbour (ARP) file... '
2545if [ -n "$PROC_NET_ARP" ]
2546then
2547 if [ "$PROC_NET_ARP" = '(none)' ]
2548 then
2549  echo "none (disabled by user)"
2550 else
2551  if $CROSS_COMPILE
2552  then
2553   echo "$PROC_NET_ARP (cross compile)"
2554  elif [ -e "$PROC_NET_ARP" ]
2555  then
2556   echo "$PROC_NET_ARP (forced by user)"
2557  else
2558   echo "$PROC_NET_ARP (not existing, forced by user)"
2559  fi
2560  echo '#define ROAR_PROC_NET_ARP "'"$PROC_NET_ARP"'"' >&3
2561 fi
2562elif $CROSS_COMPILE
2563then
2564 echo 'none (cross compiling, use --proc-net-arp to set default device)'
2565else
2566 PROC_NET_ARP=$(ls /proc/net/arp 2> /dev/null | head -n 1);
2567 if [ -e "$PROC_NET_ARP" ]
2568 then
2569  echo "$PROC_NET_ARP"
2570  echo '#define ROAR_PROC_NET_ARP "'"$PROC_NET_ARP"'"' >&3
2571 else
2572  echo 'none'
2573 fi
2574fi
2575
2576echo -n 'checking for default audio group... '
2577if [ "$DEFAULT_GRP" = '(none)' ]
2578then
2579 echo "none (disabled by user)"
2580else
2581 echo "$DEFAULT_GRP"
2582 echo '#define ROAR_DEFAULT_SOCKGRP "'"$DEFAULT_GRP"'"' >&3
2583fi
2584
2585echo -n 'checking for user id of root/superuser... '
2586if [ "$ROOT_UID" = '(none)' ]
2587then
2588 echo "none (disabled by user)"
2589elif [ "$ROOT_UID" = '' ]
2590then
2591 ROOT_USER='root'
2592 ROOT_UID=`id -u $ROOT_USER`
2593 if [ "$ROOT_UID" = '' ]
2594 then
2595  echo "none (please report this)"
2596 else
2597  echo "$ROOT_UID($ROOT_USER)"
2598  echo '#define ROAR_ROOT_UID '"$ROOT_UID" >&3
2599 fi
2600else
2601 echo "$ROOT_UID"
2602 echo '#define ROAR_ROOT_UID '"$ROOT_UID" >&3
2603fi
2604
2605$NEED_GNU_SOURCE && echo '#define ROAR_NEED_GNU_SOURCE' >&3
2606
2607cat >&3 << EOF
2608
2609#if defined(ROAR_HAVE_LIBCELT0) && !defined(ROAR_HAVE_LIBCELT)
2610#define ROAR_HAVE_LIBCELT
2611#endif
2612
2613#endif
2614
2615//ll
2616EOF
2617
2618echo >&5
2619echo '//ll' >&5
2620
2621echo >&4
2622echo >&4
2623
2624cd plugins
2625
2626#if $LIBAO
2627#then
2628# echo 'running libao plugin configure...'
2629#  cd ao/
2630# if [ "$AO_INST_DIR" = '' ]
2631# then
2632#  ./configure --force-have-roar --pkg-config "$PKG_CONFIG"                           && \
2633#    echo "subdir_plugins_ao=plugins/ao" >&4
2634# else
2635#  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$AO_INST_DIR" && \
2636#    echo "subdir_plugins_ao=plugins/ao" >&4
2637# fi
2638# cd ..
2639#else
2640# echo "running libao plugin configure... disabled by user"
2641#fi
2642
2643if $XMMS
2644then
2645 echo 'running xmms plugin configure...'
2646 cd xmms/
2647  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$XMMS_INST_DIR" && \
2648    echo "subdir_plugins_xmms=plugins/xmms" >&4
2649 cd ..
2650else
2651 echo "running xmms plugin configure... disabled by user"
2652fi
2653
2654#if $AUDACIOUS
2655#then
2656# echo 'running Audacious plugin configure...'
2657# cd audacious/
2658#  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$AUDACIOUS_INST_DIR" && \
2659#    echo "subdir_plugins_audacious=plugins/audacious" >&4
2660# cd ..
2661#else
2662# echo "running Audacious plugin configure... disabled by user"
2663#fi
2664
2665cd ..
2666
2667rm -f $TF_C $TF_E
2668
2669mv config.h include/roaraudio/
2670echo 'config.h created and moved into include/roaraudio/'
2671
2672if $TARGET_CYGWIN
2673then
2674 rm -f $TF_E.exe
2675 echo 'patching Makefiles for cygwin...'
2676 find . -name Makefile -print0 | xargs -0 sed 's/\.so/.dll'/g -i
2677fi
2678
2679#ll
Note: See TracBrowser for help on using the repository browser.