source: roaraudio/configure @ 2790:a9e009ee729d

Last change on this file since 2790:a9e009ee729d was 2790:a9e009ee729d, checked in by phi, 15 years ago

test for esd.h in addition to test for complet libesd, as esd.h is used by the esd emulation but no complet libesd is required for that

  • Property exe set to *
File size: 37.3 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
12
13#set -x
14
15TF_C=testit.c
16TF_E=./testit
17LDPATH=''
18INCPATH=''
19
20CROSS_COMPILE=false
21
22SYSNAME='unknown'
23SHARED='-shared'
24SHARED_CF=''
25SHARED_SUFFIX='.so'
26fPIC=true
27MMCU=''
28PKG_CONFIG=false
29RUNTIME_DETECT=false
30
31NEED_GNU_SOURCE=false
32
33PREFIX='/usr/local'
34PREFIX_BIN=''
35PREFIX_LIB=''
36PREFIX_INC=''
37PREFIX_MAN=''
38PREFIX_COMP=''
39
40CDROM_IS_DEV=true
41CDROM=""
42OSS_DEV=""
43PROC_NET_DECNET="/proc/net/decnet"
44TTY_DEV=""
45
46VORBIS_BITS=32
47
48FSYNC=false
49
50DEFAULT_GRP=''
51
52AO_INST_DIR=''
53XMMS_INST_DIR=''
54AUDACIOUS_INST_DIR=''
55
56SNDIO_EMUL=true
57
58LIBAO=true
59XMMS=true
60AUDACIOUS=true
61
62DEFAULT_RATE=''
63DEFAULT_CHANNELS=''
64DEFAULT_BITS=''
65
66COMP_LIBS=true
67COMP_ROARD=true
68COMP_CLIENTS=true
69COMP_DOC=true
70
71ALAW=true
72MULAW=true
73ALAW_RW=true
74MULAW_RW=true
75
76PROXY=true
77
78PASSWORD_API=true
79
80NO_LISTEN=false
81
82META_DATA=true
83
84WITHOUT_CF=''
85
86WITHOUT_VIO=''
87
88WITHOUT_DCOMP=''
89
90HAVE_MAIN_ARGS=true
91
92MINIMAL=false
93
94TARGET_WIN32=false
95TARGET_MICROCONTROLLER=false
96TARGET_CYGWIN=false
97
98EXEC_HELPER=''
99
100ROAR_DRIVER_DEFAULT=''
101ROAR_DRIVER_CODEC=''
102
103ROARD_CFREQ='' # cycle frequens for roard, normaly 100Hz
104
105_CARGS="$@";
106
107echo -n "checking for C compiler... "
108if [ "$CC" != '' ]
109then
110 echo $CC
111else
112 CC=$(which gcc cc 2> /dev/null | grep ^/ | head -n 1)
113 if [ "$CC" = '' ]
114 then
115  echo 'none'
116  exit 1;
117 fi
118 echo $CC
119fi
120
121echo -n "checking for ranlib... "
122if [ "$RANLIB" != '' ]
123then
124 echo $RANLIB
125else
126 _guess=`echo $CC | sed 's/[gp]*cc\(-.*\)*//'`
127 RANLIB=$(which ${_guess}ranlib ranlib 2> /dev/null | grep ^/ | head -n 1)
128 if [ "$RANLIB" = '' ]
129 then
130  echo 'none'
131 fi
132 echo $RANLIB
133fi
134
135echo -n "checking for pkg-config... "
136PKG_CONFIG=$(which pkg-config false 2> /dev/null | grep ^/ | head -n 1)
137if $PKG_CONFIG --help > /dev/null 2> /dev/null
138then
139 echo $PKG_CONFIG
140else
141 echo no
142fi
143
144#Makefile.conf not yet open, write it later
145
146echo -n "checking for sysname... "
147SYSNAME=$(uname -s)
148echo "$SYSNAME"
149
150while [ "$1" != '' ]
151do
152 case "$1" in
153  '--help')
154   echo '--help                      - This Help'
155   echo
156   echo '--ldpath DIR                - Add DIR to (compile time) search list for libs'
157   echo '--incpath DIR               - Add DIR to search list for headers'
158   echo '--addpath DIR               - Add DIR/lib to lib, DIR/include to header search list'
159   echo
160   echo '--cdrom DEV                 - Set default CDRum device'
161   echo '--tty DEV                   - Set default TTY'
162   echo '--oss-dev DEV               - Set default OSS device'
163   echo '--proc-net-decnet FILE      - Set DECnet file for DECnet support auto detecting'
164   echo '                              (ignore this on non-Linux)'
165   echo '--audio-group GROUP         - Sets group of audio permitted users'
166   echo
167   echo '--no-LIB                    - disable library LIB'
168   echo '--runtime-detect            - do as much as posible auto detecting on runtime (for distributors)'
169   echo
170   echo '--ao-install-dir DIR        - Set install dir for libao plugin'
171   echo '--xmms-install-dir DIR      - Set install dir for XMMS plugin'
172   echo '--audacious-install-dir DIR - Set install dir for Audacious plugin'
173   echo
174   echo '--prefix DIR                - Set general prefix (default: '"$PREFIX"')'
175   echo '--prefix-bin DIR            - Set prefix for binarys (default: $PREFIX/bin)'
176   echo '--prefix-lib DIR            - Set prefix for librarys (default: $PREFIX/libs)'
177   echo '--prefix-inc DIR            - Set prefix for include files (default: $PREFIX/include)'
178   echo '--prefix-man DIR            - Set prefix for manpages (default: $PREFIX/man)'
179   echo '--prefix-comp DIR           - Set prefix for compatibility librarys (default: $PREFIX_LIB/roaraudio/complibs)'
180   echo
181   echo '--default-rate RATE         - Set default sample rate for roard and roarclients'
182   echo '--default-channels CHANNELS - Set default number of channels for roard and roarclients'
183   echo '--default-bits BITS         - Set default number of bits per sample for roard and roarclients'
184   echo '--default-driver DRIVER     - Set default driver for roard'
185   echo '--default-codec CODEC       - Set default codec used for the default driver'
186   echo
187   echo '--without-alaw              - Disable support of A-Law codec (de- and encoding)'
188   echo '--without-alaw-rw           - Disable support for writing A-Law (saves 8KB)'
189   echo '--without-mulaw             - Disable support of mu-Law codec (de- and encoding)'
190   echo '--without-mulaw-rw          - Disable support for writing mu-Law (saves 16KB)'
191   echo '--without-proxy             - Disable support for proxys'
192   echo
193   echo '--without-comp-libs         - Disable build of librarys'
194   echo '--without-comp-roard        - Disable build of roard'
195   echo '--without-comp-clients      - Disable build of clients'
196   echo '--without-comp-doc          - Disable build of documentation'
197   echo
198   echo '--without-meta-data         - Disable support for Meta Data'
199   echo
200   echo '--without-cf-cmd            - Disable support for command codecfilter'
201   echo
202   echo '--without-vio-MODULE        - Disable support for VIO module MODULE'
203   echo
204   echo '--without-password-api      - Disable build of Password API'
205   echo
206   echo '--without-listen            - Disable listening sockets in roard'
207   echo '                              This is the same as allways using --no-listen'
208   echo
209   echo '--roard-cfreq FREQ          - Sets the cycle frequency of roard in Hz.'
210   echo '--vorbis-bits BITS          - Sets bits per sample used by Vorbis code'
211   echo
212   echo '--without-libao             - Disable build of libao plugin'
213   echo '--without-xmms              - Disable build of XMMS plugin'
214   echo '--without-audacious         - Disable build of Audacious plugin'
215   echo
216   echo '--mmcu MMCU                 - Sets -mmcu compiler/linker option'
217   echo '--minimal                   - Disable all optional components'
218   echo '--cross-compile             - Enable cross compiler workarounds'
219   echo '--target-microcontroller    - Set Options for mircocontrollers without a OS'
220   echo '                              Implys --cross-compile'
221   echo '--target-win32              - Disable everything useful'
222   echo '--exec-helper HELPER        - Exec all test programms using this command (HELPER $cmd $args)'
223   echo '                              use '\''--exec-helper wine'\'' when building win32 binarys'
224   exit 0;
225  ;;
226  '--ldpath')
227   LDPATH="$LDPATH -L$2"
228   shift;
229  ;;
230  '--incpath')
231   INCPATH="$INCPATH -I$2"
232   shift;
233  ;;
234  '--addpath')
235   LDPATH="$LDPATH -L$2/lib/"
236   INCPATH="$INCPATH -I$2/include/"
237   shift;
238  ;;
239  '--cc')
240   CC="$2"
241   shift;
242  ;;
243  '--ranlib')
244   RANLIB="$2"
245   shift;
246  ;;
247  '--cdrom')
248   CDROM="$2"
249   shift;
250  ;;
251  '--tty')
252   TTY_DEV="$2"
253   shift;
254  ;;
255  '--oss-dev')
256   OSS_DEV="$2"
257   shift;
258  ;;
259  '--audio-group')
260   DEFAULT_GRP="$2"
261   shift;
262  ;;
263  '--no-'*)
264   lib=$(echo "$1" | sed 's/^--no-//')
265   eval no_lib_$lib=true
266  ;;
267  '--runtime-detect')
268   RUNTIME_DETECT=true
269  ;;
270  '--ao-install-dir')
271   AO_INST_DIR="$2"
272   shift;
273  ;;
274  '--xmms-install-dir')
275   XMMS_INST_DIR="$2"
276   shift;
277  ;;
278  '--audacious-install-dir')
279   AUDACIOUS_INST_DIR="$2"
280   shift;
281  ;;
282  '--default-rate')
283   DEFAULT_RATE="$2"
284   shift;
285  ;;
286  '--default-channels')
287   DEFAULT_CHANNELS="$2"
288   shift;
289  ;;
290  '--default-bits')
291   DEFAULT_BITS="$2"
292   shift;
293  ;;
294  '--default-driver')
295   ROAR_DRIVER_DEFAULT="$2"
296   shift;
297  ;;
298  '--default-codec')
299   ROAR_DRIVER_CODEC="$2"
300   shift;
301  ;;
302  '--without-alaw')
303   ALAW=false
304   ALAW_RW=false
305  ;;
306  '--without-alaw-rw')
307   ALAW_RW=false
308  ;;
309  '--without-mulaw')
310   MULAW=false
311   MULAW_RW=false
312  ;;
313  '--without-mulaw-rw')
314   MULAW_RW=false
315  ;;
316  '--without-proxy')
317   PROXY=false
318  ;;
319  '--without-comp-libs')
320   COMP_LIBS=false
321  ;;
322  '--without-comp-roard')
323   COMP_ROARD=false
324  ;;
325  '--without-comp-clients')
326   COMP_CLIENTS=false
327  ;;
328  '--without-comp-doc')
329   COMP_DOC=false
330  ;;
331  '--without-meta-data')
332   META_DATA=false
333  ;;
334  '--without-cf-'*)
335   WITHOUT_CF="$WITHOUT_CF"' '$(echo "$1" | cut -d- -f5)
336  ;;
337  '--without-vio-'*)
338   WITHOUT_VIO="$WITHOUT_VIO"' '$(echo "$1" | cut -d- -f5)
339  ;;
340  '--without-dcomp-'*)
341   WITHOUT_DCOMP="$WITHOUT_DCOMP"' '$(echo "$1" | cut -d- -f5)
342  ;;
343  '--without-password-api')
344   PASSWORD_API=false
345  ;;
346  '--without-listen')
347   NO_LISTEN=true
348  ;;
349  '--roard-cfreq')
350   ROARD_CFREQ="$2"
351   shift;
352  ;;
353  '--vorbis-bits')
354   VORBIS_BITS="$2"
355   shift;
356  ;;
357  '--without-libao')
358   LIBAO=false
359   no_lib_ao=true
360  ;;
361  '--without-xmms')
362   XMMS=false
363  ;;
364  '--without-audacious')
365   AUDACIOUS=false
366  ;;
367  '--minimal')
368   MINIMAL=true
369   RUNTIME_DETECT=false
370   XMMS=false
371   AUDACIOUS=false
372   LIBAO=false
373   PROXY=false
374   MULAW=false
375   MULAW_RW=false
376   ALAW=false
377   ALAW_RW=false
378   META_DATA=false
379   PASSWORD_API=false
380   WITHOUT_VIO="$WITHOUT_VIO"' dstr cmd stdio'
381   WITHOUT_CF="$WITHOUT_CF"' wave'
382   WITHOUT_DCOMP="$WITHOUT_DCOMP"' sources ssynth cb midi light raw cdriver emul_esd'
383  ;;
384  '--prefix')
385   PREFIX="$2"
386   shift;
387  ;;
388  '--prefix-bin')
389   PREFIX_BIN="$2"
390   shift;
391  ;;
392  '--prefix-lib')
393   PREFIX_LIB="$2"
394   shift;
395  ;;
396  '--prefix-inc')
397   PREFIX_INC="$2"
398   shift;
399  ;;
400  '--prefix-man')
401   PREFIX_MAN="$2"
402   shift;
403  ;;
404  '--prefix-comp')
405   PREFIX_COMP="$2"
406   shift;
407  ;;
408  '--mmcu')
409   MMCU="$2"
410   shift;
411  ;;
412  '--cross-compile')
413   CROSS_COMPILE=true
414  ;;
415  '--exec-helper')
416   EXEC_HELPER="$2"
417   shift;
418  ;;
419  '--target-microcontroller')
420   TARGET_MICROCONTROLLER=true
421   CROSS_COMPILE=true
422   HAVE_MAIN_ARGS=false
423  ;;
424  '--target-win32')
425   TARGET_WIN32=true
426   CROSS_COMPILE=true
427   RUNTIME_DETECT=true
428   no_lib_dnet=true
429   PROXY=false
430   LIBAO=false
431   XMMS=false
432   AUDACIOUS=false
433   WITHOUT_VIO="$WITHOUT_VIO"' pipe cmd' # hope that with buffered pipes we can remove this soon
434   WITHOUT_DCOMP="$WITHOUT_DCOMP"' cb'
435#   [ "$ROARD_CFREQ" = '' ] && ROARD_CFREQ=20
436  ;;
437 esac;
438
439 shift;
440done
441
442
443CCTF="false"
444
445test_lib () {
446 echo > $TF_C
447
448 name="$1"
449 echo -n "checking for $name... "
450 echo "TEST LIB: $name" >&5
451 shift;
452
453 LIBS=''
454
455 while [ "$1" != '--' ]
456 do
457  case "$1" in
458   'c'|'-lc')
459    :; # no need to do anything
460   ;;
461   '-'*)
462    LIBS="$LIBS $1"
463   ;;
464   *)
465    LIBS="-l$1"
466   ;;
467  esac
468  shift;
469 done
470
471 shift;
472
473 echo "LIB($name) IS TESTED USING LIBS: $LIBS" >&5
474
475 while [ "$1" != '' ]
476 do
477  echo "#include <$1>" >> $TF_C
478  shift;
479 done
480
481 echo 'int main (void) { return 0; }' >> $TF_C
482
483 echo "LIB($name) IS TESTED USING TEST CODE:" >&5
484 echo "--- BEGIN OF CODE BLOCK ---" >&5
485 cat $TF_C >&5
486 echo "--- END OF CODE BLOCK ---" >&5
487
488 echo "LIB($name) HAS COMPILER/LINKER OUTPUT:" >&5
489 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
490 $CCTF $LIBS >&5 2>&5;
491 R=$?
492 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
493
494 if [ "$R" = '0' ]
495 then
496  echo 'yes'
497  echo "LIB($name) WAS FOUND" >&5
498 else
499  echo 'no'
500  echo "LIB($name) NOT FOUND" >&5
501 fi
502
503 return $R
504}
505
506test_lib_defmake () {
507 def="$1"
508 subdir="$2"
509 shift
510 shift
511 name="$1"
512 lib="$2"
513 shift
514
515 echo "TEST LIB: $name" >&5
516
517 [ "$subdir" = '%' ] && subdir=''
518
519 if [ "$lib" != '--' ]
520 then
521  eval _no="\$no_lib_$lib";
522  $MINIMAL && _no='XXX'
523
524  if [ "$_no" != '' ]
525  then
526    echo "checking for $name... disabled by user"
527    echo "LIB($name) IS DISABLED BY USER" >&5
528   [ "$subdir" != '' ] && \
529    echo "subdir_$subdir=" >&4
530   echo "lib_$lib=" >&4
531   return;
532  fi
533 fi
534
535 LIBS=$($PKG_CONFIG --silence-errors --libs $lib 2> /dev/null)
536 if [ "$?" != '0' ]
537 then
538  LIBS="-l$lib"
539 fi
540
541 echo "LIB($name) HAS LIBS: $LIBS" >&5
542
543 if test_lib "$name" $LIBS "$@"
544 then
545  subdir_var='subdir_'"`echo $subdir | tr / _`"
546  echo "#define $def"            >&3
547  [ "$subdir" != '' ] && \
548   echo "$subdir_var=$subdir" >&4
549  [ "$lib" != 'c' ] && \
550   echo "lib_$lib=$LIBS" >&4
551  [ "$lib" != 'c' ] && \
552   eval "lib_$lib='$LIBS'"
553 else
554  [ "$subdir" != '' ] && \
555   echo "subdir_$subdir=" >&4
556  [ "$lib" != 'c' ] && \
557   echo "lib_$lib=" >&4
558 fi
559 echo >&5
560 echo >&5
561}
562
563test_tool_defmake () {
564 DEF="$1"
565 NAME="$2"
566 shift;
567 shift;
568 echo -n "checking for $NAME... "
569
570 echo "TEST TOOL: $NAME" >&5
571
572 if $RUNTIME_DETECT
573 then
574  echo "$1 (runtime detect)"
575  echo "TOOL($NAME) WILL BE RUNTIME DETECTED" >&5
576  echo "#define $DEF "\""$1"\" >&3
577 elif $MINIMAL
578 then
579  echo "disabled by user (minimalstic build)"
580  echo "TOOL($NAME) IS DISABLED BY USER" >&5
581 else
582
583  LIST=$(which "$@" 2> /dev/null | grep ^/ | head -n 1)
584
585  if [ "$LIST" = '' ]
586  then
587   echo 'no'
588   echo "TOOL($NAME) NOT FOUND" >&5
589  else
590   echo $LIST
591   echo "#define $DEF "\""$LIST"\" >&3
592   echo "TOOL($NAME) IS AT $LIST" >&5
593  fi
594 fi
595}
596
597test_func_defmake () {
598 DEF="$1"
599 NAME="$2"
600 shift;
601 shift;
602 echo -n "checking for $NAME()... "
603
604 CALL="$1"
605 shift;
606 shift; # skip '--'
607
608 echo "TEST FUNCTION: $NAME" >&5
609
610 {
611  while [ "$1" != '' ]
612  do
613   echo "#include <$1>"
614   shift;
615  done
616
617  echo 'int main (void) {'
618  echo " $CALL;"
619  echo ' return 0;'
620  echo '}'
621
622 } > $TF_C
623
624 echo "--- BEGIN OF CODE BLOCK ---" >&5
625 cat $TF_C >&5
626 echo "--- END OF CODE BLOCK ---" >&5
627
628 echo "FUNCTION($NAME) HAS COMPILER/LINKER OUTPUT:" >&5
629 echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5
630 $CCTF >&5 2>&5;
631 R=$?
632 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
633
634 if [ "$R" = '0' ]
635 then
636  echo "#define $DEF" >&3
637  echo "FUNCTION($NAME) IS OK" >&5
638  echo yes
639 else
640  echo "FUNCTION($NAME) IS NOT OK" >&5
641  echo no
642 fi
643
644}
645
646exec 3> config.h 4> Makefile.conf 5> config.log
647
648TARGET_CYGWIN=`echo "$SYSNAME" | if grep CYGWIN > /dev/null; then echo true; else echo false; fi`
649
650if [ "$SYSNAME" = 'Darwin' ]
651then
652 echo "Adding $SYSNAME shared lib arguments..."
653 SHARED="$SHARED -fno-common -dynamiclib -compatibility_version 0.1 -current_version 0.1.0"
654 SHARED_CF="$SHARED_CF -fno-common"
655elif [ "$SYSNAME" = 'NetBSD' ]
656then
657 echo "Adding $SYSNAME libpath arguments..."
658 LDPATH="$LDPATH -L/usr/local/lib/"
659elif [ "$SYSNAME" = 'OpenBSD' ]
660then
661 echo "Adding $SYSNAME search path arguments..."
662 LDPATH="$LDPATH -L/usr/local/lib/"
663 INCPATH="$INCPATH -I/usr/local/include/"
664# echo "Adding $SYSNAME build arguments..."
665# SNDIO_EMUL=false
666elif [ "$SYSNAME" = 'FreeBSD' ]
667then
668 echo "Adding $SYSNAME search path arguments..."
669 LDPATH="$LDPATH -L/usr/local/lib/"
670 INCPATH="$INCPATH -I/usr/local/include/"
671 [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='wheel'
672elif $TARGET_WIN32
673then
674 echo "Adding win32 build arguments..."
675 fPIC=false
676 SHARED_SUFFIX='.dll'
677elif $TARGET_CYGWIN
678then
679 echo "Adding cygwin build arguments..."
680 fPIC=false
681 SHARED_SUFFIX='.dll'
682fi
683
684echo -n 'checking if we cross compile... '
685if $CROSS_COMPILE
686then
687 echo yes
688
689 echo -n "checking for exec helper... "
690 if [ "$EXEC_HELPER" = '' ]
691 then
692  if $TARGET_WIN32
693  then
694   EXEC_HELPER=$(which wine 2> /dev/null | grep ^/ | head -n 1)
695   if [ "$EXEC_HELPER" = '' ]
696   then
697    echo 'none (please install wine)'
698   else
699    echo "$EXEC_HELPER"
700   fi
701  else
702   echo 'none (unknown)'
703  fi
704 else
705  echo "$EXEC_HELPER"
706 fi
707
708 echo -n "checking for sysname... "
709 if $TARGET_CYGWIN
710 then
711  SYSNAME=cygwin
712 elif $TARGET_WIN32
713 then
714  SYSNAME=win32
715 else
716  SYSNAME=unknown
717 fi
718 echo "$SYSNAME"
719else
720 echo no
721fi
722
723[ "$PREFIX_BIN"  = '' ] && PREFIX_BIN="$PREFIX/bin/"
724[ "$PREFIX_LIB"  = '' ] && PREFIX_LIB="$PREFIX/lib/"
725[ "$PREFIX_INC"  = '' ] && PREFIX_INC="$PREFIX/include/"
726[ "$PREFIX_MAN"  = '' ] && PREFIX_MAN="$PREFIX/share/man/"
727[ "$PREFIX_COMP" = '' ] && PREFIX_COMP="$PREFIX_LIB/roaraudio/complibs/"
728
729[ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='audio'
730
731if [ "$MMCU" != '' ]
732then
733 CC="$CC -mmcu=$MMCU"
734fi
735
736# now write the cc name to Makefile.conf
737{
738 echo "SHARED=$SHARED"
739 echo "SHARED_CF=$SHARED_CF"
740 echo "SHARED_SUFFIX=$SHARED_SUFFIX"
741 $fPIC && echo 'fPIC=-fPIC'
742 echo
743 echo "CC=$CC"
744 echo "RANLIB=$RANLIB"
745 echo "LDPATH=$LDPATH"
746 echo "INCPATH=$INCPATH"
747 echo
748 echo "EXEC_HELPER=$EXEC_HELPER"
749 echo
750 echo "PREFIX=$PREFIX"
751 echo "PREFIX_BIN=$PREFIX_BIN"
752 echo "PREFIX_LIB=$PREFIX_LIB"
753 echo "PREFIX_INC=$PREFIX_INC"
754 echo "PREFIX_MAN=$PREFIX_MAN"
755 echo "PREFIX_COMP=$PREFIX_COMP"
756 echo
757 $COMP_LIBS     && echo "comp_libs=libroar libroardsp libroarmidi libroarlight libroareio"
758 $COMP_ROARD    && echo "comp_roard=roard"
759 $COMP_CLIENTS  && echo "comp_clients=roarclients"
760 $COMP_DOC      && echo "comp_doc=doc"
761 echo
762 $SNDIO_EMUL && echo "subdir_libroarsndio=libroarsndio"
763} >&4
764
765CCTF="$CC $LDPATH $INCPATH -Iinclude/ -o $TF_E $TF_C"
766
767{
768 cat <<'EOF'
769//config.log:
770
771/*
772 * Logfile for configure script $Revision$ of RoarAudio
773 */
774
775EOF
776 echo '/* uname: ' $(uname -a) '*/'
777 echo '/* Date : ' $(date)  '*/'
778 echo
779
780 echo
781 echo
782
783 echo "ARGS(): $_CARGS"
784
785 for i in PATH SHELL CC RANLIB PKG_CONFIG SYSNAME TARGET_CYGWIN
786 do
787  eval echo "BASICCONF\($i\): \$$i";
788 done
789
790 echo
791 echo
792} >&5
793
794cat >&3 << EOF
795//config.h:
796
797#ifndef _ROARAUDIO_CONFIG_H_
798#define _ROARAUDIO_CONFIG_H_
799
800EOF
801
802{
803 echo '/* uname: ' $(uname -a) '*/'
804 echo '/* Date : ' $(date)  '*/'
805 echo
806 [ "$DEFAULT_RATE"        = '' ] || echo "#define ROAR_RATE_DEFAULT     $DEFAULT_RATE"
807 [ "$DEFAULT_CHANNELS"    = '' ] || echo "#define ROAR_CHANNELS_DEFAULT $DEFAULT_CHANNELS"
808 [ "$DEFAULT_BITS"        = '' ] || echo "#define ROAR_BITS_DEFAULT     $DEFAULT_BITS"
809 [ "$ROAR_DRIVER_DEFAULT" = '' ] || echo "#define ROAR_DRIVER_DEFAULT   \"$ROAR_DRIVER_DEFAULT\""
810 [ "$ROAR_DRIVER_CODEC"   = '' ] || echo "#define ROAR_DRIVER_CODEC     \"$ROAR_DRIVER_CODEC\""
811 echo
812 [ "$ROARD_CFREQ"         = '' ] || echo "#define ROAR_OUTPUT_CFREQ     $ROARD_CFREQ"
813 echo "#define ROAR_VORBIS_BITS     $VORBIS_BITS"
814 echo
815 $MINIMAL      && echo '#define ROAR_MINIMAL'
816 $ALAW         && echo '#define ROAR_SUPPORT_ALAW'
817 $ALAW_RW      && echo '#define ROAR_SUPPORT_ALAW_RW'
818 $MULAW        && echo '#define ROAR_SUPPORT_MULAW'
819 $MULAW_RW     && echo '#define ROAR_SUPPORT_MULAW_RW'
820 $PROXY        && echo '#define ROAR_SUPPORT_PROXY'
821 $PASSWORD_API && echo '#define ROAR_SUPPORT_PASSWORD_API'
822 $NO_LISTEN    || echo '#define ROAR_SUPPORT_LISTEN'
823 $META_DATA    && echo '#define ROAR_SUPPORT_META'
824 echo
825
826 $HAVE_MAIN_ARGS && echo '#define ROAR_HAVE_MAIN_ARGS'
827
828 echo
829
830 for i in $WITHOUT_CF
831 do
832  i=$(echo $i | tr /a-z/ /A-Z/);
833  echo '#define ROAR_WITHOUT_CF_'$i
834 done
835
836 for i in $WITHOUT_VIO
837 do
838  i=$(echo $i | tr /a-z/ /A-Z/);
839  echo '#define ROAR_WITHOUT_VIO_'$i
840 done
841
842 for i in $WITHOUT_DCOMP
843 do
844  i=$(echo $i | tr /a-z/ /A-Z/);
845  echo '#define ROAR_WITHOUT_DCOMP_'$i
846 done
847
848 echo
849 $TARGET_MICROCONTROLLER && echo '#define ROAR_TARGET_MICROCONTROLLER'
850 $TARGET_WIN32           && echo '#define ROAR_TARGET_WIN32'
851                            echo '#define ROAR_OS_'$(echo $SYSNAME | tr a-z-. A-Z__)
852 echo
853} >&3
854
855#                 #define                   name         cmds...
856test_tool_defmake ROAR_HAVE_BIN_OGG123      ogg123       ogg123
857test_tool_defmake ROAR_HAVE_BIN_FLAC        flac         flac
858test_tool_defmake ROAR_HAVE_BIN_TIMIDITY    TiMidity++   timidity
859test_tool_defmake ROAR_HAVE_BIN_CDPARANOIA  cdparanoia   cdparanoia
860test_tool_defmake ROAR_HAVE_BIN_WGET        Wget         wget
861test_tool_defmake ROAR_HAVE_BIN_GNUPLOT     gnuplot      gnuplot
862test_tool_defmake ROAR_HAVE_BIN_SSH         OpenSSH      ssh
863test_tool_defmake ROAR_HAVE_BIN_PINENTRY    PIN-Entry    pinentry
864test_tool_defmake ROAR_HAVE_BIN_SSH_ASKPASS SSH-AskPass  ssh-askpass
865test_tool_defmake ROAR_HAVE_BIN_GZIP        Gzip         gzip
866test_tool_defmake ROAR_HAVE_BIN_BZIP2       bzip2        bzip2
867test_tool_defmake ROAR_HAVE_BIN_GPG         GnuPG        gpg
868test_tool_defmake ROAR_HAVE_BIN_CHAT        chat         chat
869
870echo >&3
871echo >&5
872echo >&5
873echo >&5
874
875#                #define                 subdir       name           -lxxx      -- header
876test_lib_defmake ROAR_HAVE_LIBM          %            'Math Library' m          -- math.h
877if test_lib 'realtime Library' rt -- sys/mman.h mqueue.h semaphore.h
878then
879 {
880  echo '#define ROAR_HAVE_LIBRT'
881  echo '#define ROAR_NEED_LIBRT'
882 } >&3
883fi
884
885echo >&3
886
887#                #define                 subdir       name          -lxxx      -- header
888test_lib_defmake ROAR_HAVE_ESD           libroaresd   EsounD        esd        -- esd.h
889test_lib_defmake ROAR_HAVE_LIBAO         %            libao         ao         -- ao/ao.h ao/plugin.h
890test_lib_defmake ROAR_HAVE_LIBRAUM       %            RAUM          raum       -- raum.h
891test_lib_defmake ROAR_HAVE_LIBOGG        %            libogg        ogg        -- ogg/ogg.h
892test_lib_defmake ROAR_HAVE_LIBVORBIS     %            libvorbis     vorbis     -- vorbis/codec.h
893test_lib_defmake ROAR_HAVE_LIBVORBISFILE %            libvorbisfile vorbisfile -- vorbis/vorbisfile.h
894test_lib_defmake ROAR_HAVE_LIBVORBISENC  %            libvorbisenc  vorbisenc  -- vorbis/vorbisenc.h
895test_lib_defmake ROAR_HAVE_LIBSPEEX      %            libspeex      speex      -- speex/speex.h speex/speex_stereo.h
896test_lib_defmake ROAR_HAVE_LIBSPEEXDSP   %            libspeexdsp   speexdsp   -- speex/speex.h speex/speex_echo.h
897test_lib_defmake ROAR_HAVE_LIBCELT       %            libcelt       celt       -- celt/celt.h celt/celt_header.h
898test_lib_defmake ROAR_HAVE_LIBOGGZ       %            liboggz       oggz       -- oggz/oggz.h
899test_lib_defmake ROAR_HAVE_LIBSNDFILE    %            libsndfile    sndfile    -- sndfile.h
900test_lib_defmake ROAR_HAVE_LIBFISHSOUND  roarfish     libfishsound  fishsound  -- fishsound/fishsound.h
901test_lib_defmake ROAR_HAVE_LIBSAMPLERATE %            libsamplerate samplerate -- samplerate.h
902test_lib_defmake ROAR_HAVE_LIBSHOUT      %            libshout      shout      -- shout/shout.h
903test_lib_defmake ROAR_HAVE_LIBPULSE      libroarpulse libpulse      pulse      -- pulse/pulseaudio.h pulse/simple.h
904test_lib_defmake ROAR_HAVE_LIBY2         libroaryiff  libyiff       Y2         -- Y2/Y.h Y2/Ylib.h
905test_lib_defmake ROAR_HAVE_LIBARTSC      libroararts  libartsc      artsc      -- kde/artsc/artsc.h
906test_lib_defmake ROAR_HAVE_LIBOSSAUDIO   %            libossaudio   ossaudio   -- sys/ioctl.h
907test_lib_defmake ROAR_HAVE_LIBSNDIO      %            libsndio      sndio      -- sndio.h
908test_lib_defmake ROAR_HAVE_LIBSSL        %            OpenSSL       ssl        -- openssl/bio.h openssl/evp.h
909test_lib_defmake ROAR_HAVE_LIBSLP        %            OpenSLP       slp        -- slp.h
910test_lib_defmake ROAR_HAVE_LIBDNET       %            libdnet       dnet       -- sys/socket.h netdnet/dn.h netdnet/dnetdb.h
911test_lib_defmake ROAR_HAVE_BSDSOCKETS    %            BSDSockets    c          -- sys/types.h sys/socket.h
912test_lib_defmake ROAR_HAVE_UNIX          %            UNIX          c          -- sys/types.h sys/socket.h sys/un.h
913test_lib_defmake ROAR_HAVE_IPX           %            IPX           c          -- netipx/ipx.h
914test_lib_defmake ROAR_HAVE_IPV4          %            IPv4          c          -- sys/types.h sys/socket.h 'netinet/in.h'
915test_lib_defmake ROAR_HAVE_OSS           %            OSS           c          -- sys/ioctl.h sys/soundcard.h
916test_lib_defmake ROAR_HAVE_OSS_BSD       %            BSDOSS        c          -- sys/ioctl.h soundcard.h
917test_lib_defmake ROAR_HAVE_LIBWINMM      %            WinMM         winmm      -- windows.h mmsystem.h
918test_lib_defmake ROAR_HAVE_LIBSENDFILE   %            sendfile      sendfile   -- sys/sendfile.h
919test_lib_defmake ROAR_HAVE_LIBSOCKET     %            libsocket     socket     -- sys/socket.h
920test_lib_defmake ROAR_HAVE_LIBWSOCK32    %            WinSockP0     wsock32    -- winsock2.h
921test_lib_defmake ROAR_HAVE_LIBWS2_32     %            WinSockP1     ws2_32     -- winsock2.h
922
923echo >&3
924
925# Those tests should not be disbaled as they do not reduce the lib size just
926# break --minimal on full systems
927OLD_MINIMAL=$MINIMAL
928MINIMAL=false
929test_lib_defmake ROAR_HAVE_H_SYS_TYPES   %            sys/types.h   c          -- sys/types.h
930test_lib_defmake ROAR_HAVE_H_FCNTL       %            fcntl.h       c          -- fcntl.h
931test_lib_defmake ROAR_HAVE_H_UNISTD      %            unistd.h      c          -- unistd.h
932test_lib_defmake ROAR_HAVE_H_POLL        %            poll.h        c          -- poll.h
933test_lib_defmake ROAR_HAVE_H_MMSYSTEM    %            mmsystem.h    c          -- windows.h mmsystem.h
934test_lib_defmake ROAR_HAVE_H_ESD         %            esd.h         c          -- esd.h
935MINIMAL=$OLD_MINIMAL
936
937echo >&3
938
939# add a better test here
940test_lib 'linux sendfile()'       -- sys/sendfile.h && echo '#define ROAR_HAVE_LINUX_SENDFILE' >&3
941
942
943echo -n 'checking for IPv6... '
944
945if $MINIMAL
946then
947 echo "disabled by user (minimalstic build)"
948else
949 echo '#include <sys/socket.h>'  > $TF_C
950 echo '#include <netinet/in.h>' >> $TF_C
951 echo 'int main (void) { struct sockaddr_in6 in6; return 0; }' >> $TF_C
952
953 if $CCTF 2> /dev/null;
954 then
955  echo '#define ROAR_HAVE_IPV6' >&3
956  echo yes
957 else
958  echo no
959 fi
960fi
961
962
963echo -n 'checking for _exit()... '
964
965echo '#include <unistd.h>'    > $TF_C
966echo 'int main (void) { _exit(0); return 0; }' >> $TF_C
967
968if $CCTF 2> /dev/null;
969then
970 echo '#define ROAR_HAVE_U_EXIT' >&3
971 echo '#define ROAR_U_EXIT _exit' >&3
972 echo yes
973else
974 echo '#define ROAR_U_EXIT exit' >&3
975 echo no
976fi
977
978#                 def                 name      call                         -- header
979test_func_defmake ROAR_HAVE_SETENV    setenv    'setenv("", "", 0)'          -- stdlib.h
980test_func_defmake ROAR_HAVE_PUTENV    putenv    'putenv("")'                 -- stdlib.h
981test_func_defmake ROAR_HAVE_STRTOK_R  strtok_r  'strtok_r("","",(char**)0)'  -- string.h
982test_func_defmake ROAR_HAVE_NICE      nice      'nice(0)'                    -- unistd.h
983test_func_defmake ROAR_HAVE_GETGID    getgid    'getgid()'                   -- sys/types.h unistd.h
984test_func_defmake ROAR_HAVE_GETUID    getuid    'getuid()'                   -- sys/types.h unistd.h
985test_func_defmake ROAR_HAVE_SETGID    setgid    'setgid(0)'                  -- sys/types.h unistd.h
986test_func_defmake ROAR_HAVE_SETUID    setuid    'setuid(0)'                  -- sys/types.h unistd.h
987test_func_defmake ROAR_HAVE_SETSID    setsid    'setsid()'                   -- sys/types.h unistd.h
988test_func_defmake ROAR_HAVE_GETTIMEOFDAY gettimeofday 'struct timeval tv; gettimeofday(&tv, NULL)' -- sys/time.h time.h
989test_func_defmake ROAR_HAVE_USLEEP    usleep    'usleep(0)'                  -- sys/types.h unistd.h
990test_func_defmake ROAR_HAVE_ALARM     alarm     'alarm(0)'                   -- sys/types.h unistd.h
991test_func_defmake ROAR_HAVE_KILL      kill      'kill(0,0)'                  -- sys/types.h signal.h
992
993echo -n 'checking for basic IO calls... '
994
995cat <<EOF > $TF_C
996#include <sys/types.h>
997#include <sys/stat.h>
998#include <fcntl.h>
999#include <string.h>
1000#include <unistd.h>
1001
1002int main(void) {
1003 open(NULL, 0, 0);
1004 close(0);
1005 read(0, NULL, 0);
1006 write(0, NULL, 0);
1007 lseek(0, 0, 0);
1008 return 0;
1009}
1010EOF
1011
1012if $CCTF 2> /dev/null;
1013then
1014 echo '#define ROAR_HAVE_IO_POSIX' >&3
1015 echo posix
1016else
1017 echo none
1018fi
1019
1020echo -n 'checking for basic FS calls... '
1021
1022cat <<EOF > $TF_C
1023#include <string.h>
1024#include <unistd.h>
1025
1026int main(void) {
1027 chdir(NULL);
1028 unlink(NULL);
1029 return 0;
1030}
1031EOF
1032
1033if $CCTF 2> /dev/null;
1034then
1035 echo '#define ROAR_HAVE_FS_POSIX' >&3
1036 echo posix
1037else
1038 echo none
1039fi
1040
1041
1042test_func_defmake ROAR_HAVE_CHROOT    chroot    'chroot((void*)0)'           -- unistd.h
1043test_func_defmake ROAR_HAVE_MLOCK     mlock     'mlock((void*)0, 0)'         -- sys/mman.h
1044test_func_defmake ROAR_HAVE_MMAP      mmap      'mmap((void*)0,0,0,0,0,0)'   -- sys/mman.h
1045
1046echo -n 'checking for fsync()... '
1047
1048echo '#include <unistd.h>' > $TF_C
1049echo 'int main (void) { fsync(0); return 0; }' >> $TF_C
1050
1051if $CCTF 2> /dev/null;
1052then
1053 echo '#define ROAR_HAVE_FSYNC' >&3
1054 FSYNC=true
1055 echo yes
1056else
1057 FSYNC=false
1058 echo no
1059fi
1060
1061echo -n 'checking for fdatasync()... '
1062
1063echo '#include <unistd.h>' > $TF_C
1064echo 'int main (void) { fdatasync(0); return 0; }' >> $TF_C
1065
1066if $CCTF 2> /dev/null;
1067then
1068 echo '#define ROAR_HAVE_FDATASYNC' >&3
1069 echo '#define ROAR_FDATASYNC fdatasync' >&3
1070 echo yes
1071else
1072 $FSYNC && echo '#define ROAR_FDATASYNC fsync' >&3
1073 echo no
1074fi
1075
1076echo -n 'checking for fopencookie()... '
1077
1078echo '#define _GNU_SOURCE' > $TF_C
1079echo '#include <stdio.h>' >> $TF_C
1080echo 'int main (void) { cookie_io_functions_t f; fopencookie(NULL, "", f); return 0; }' >> $TF_C
1081
1082if $CCTF 2> /dev/null;
1083then
1084 echo '#define ROAR_HAVE_FOPENCOOKIE' >&3
1085 NEED_GNU_SOURCE=true
1086 echo yes
1087else
1088 echo no
1089fi
1090
1091echo -n 'checking for funopen()... '
1092
1093echo '#define __BSD_VISIBLE 1'  > $TF_C
1094echo '#include <stdio.h>'      >> $TF_C
1095echo 'int main (void) { funopen(NULL, NULL, NULL, NULL, NULL); return 0; }' >> $TF_C
1096
1097if $CCTF 2> /dev/null;
1098then
1099 echo '#define ROAR_HAVE_FUNOPEN' >&3
1100 echo '#define ROAR_NEED_BSD_VISIBLE' >&3
1101 echo yes
1102else
1103 echo no
1104fi
1105
1106test_func_defmake ROAR_HAVE_PIPE      pipe      'pipe(NULL)'                 -- unistd.h
1107test_func_defmake ROAR_HAVE_FORK      fork      'fork()'                     -- unistd.h
1108test_func_defmake ROAR_HAVE_WAIT      wait      'wait(NULL)'                 -- string.h sys/wait.h
1109
1110echo -n 'checking for square root func... '
1111
1112if $TARGET_CYGWIN
1113then
1114 echo 'sqrt() (cygwin)'
1115elif [ "$SYSNAME" = 'FreeBSD' ]
1116then
1117 echo 'sqrt() (FreeBSD, fix your gcc)'
1118elif [ "$SYSNAME" = 'Linux' ]
1119then
1120 echo '#include <math.h>' > $TF_C
1121 echo 'int main (void) { sqrtl(0); return 0; }' >> $TF_C
1122
1123 if $CCTF -lm 2> /dev/null;
1124 then
1125  echo '#define ROAR_HAVE_SQRTL' >&3
1126  echo 'sqrtl()'
1127 else
1128  echo 'sqrt()'
1129 fi
1130else
1131 echo 'sqrt()'
1132fi
1133
1134echo -n 'checking for inline funcs... '
1135
1136echo 'inline int test (void) { return 0; }' > $TF_C
1137echo 'int main (void) { return test(); }'  >> $TF_C
1138
1139if $CCTF 2> /dev/null;
1140then
1141 echo '#define ROAR_HAVE_INLINE' >&3
1142 echo yes
1143else
1144 echo no
1145fi
1146
1147echo -n 'checking for broken peercred... '
1148echo '#include <sys/types.h>'      >  $TF_C
1149echo '#include <sys/socket.h>'     >> $TF_C
1150echo '#include <sys/un.h>'         >> $TF_C
1151echo 'int main (void) { struct ucred cred; return 0; }'  >> $TF_C
1152
1153if $CCTF 2> /dev/null;
1154then
1155 echo working
1156else
1157 if $CCTF -D_GNU_SOURCE 2> /dev/null;
1158 then
1159  NEED_GNU_SOURCE=true
1160  echo need to set _GNU_SOURCE
1161 else
1162  echo '#define ROAR_BROKEN_PEERCRED' >&3
1163  echo broken
1164 fi
1165fi
1166
1167
1168test_func_defmake ROAR_HAVE_GETPEEREID getpeereid 'getpeereid(0, NULL, NULL)' -- sys/types.h sys/socket.h
1169
1170echo -n 'checking for select()... '
1171cat <<EOF > $TF_C
1172#ifndef WITHOUT_SYS_SELECT_H
1173#include <sys/select.h>
1174#endif
1175#ifdef WITH_WINSOCK_H
1176#include <winsock.h>
1177#endif
1178#include <sys/time.h>
1179#include <sys/types.h>
1180#include <unistd.h>
1181
1182int main (void) {
1183 fd_set rfds;
1184 struct timeval tv;
1185
1186 FD_ZERO(&rfds);
1187 FD_SET(0, &rfds);
1188
1189 tv.tv_sec  = 0;
1190 tv.tv_usec = 0;
1191
1192 select(1, &rfds, NULL, NULL, &tv);
1193
1194 return 0;
1195}
1196EOF
1197
1198if $CCTF 2> /dev/null;
1199then
1200 echo '#define ROAR_HAVE_SELECT' >&3
1201 echo '#define ROAR_HAVE_H_SYS_SELECT' >&3
1202 echo yes, POSIX.1-2001
1203elif $CCTF -DWITHOUT_SYS_SELECT_H 2> /dev/null;
1204then
1205 echo '#define ROAR_HAVE_SELECT' >&3
1206 echo yes, old style
1207elif $CCTF -DWITHOUT_SYS_SELECT_H -DWITH_WINSOCK_H $lib_wsock32 >&5 2>&5;
1208then
1209 echo '#define ROAR_HAVE_SELECT' >&3
1210 echo yes, WinSock
1211else
1212 echo no
1213fi
1214
1215echo -n 'checking for shutdown()... '
1216cat <<EOF > $TF_C
1217#include <sys/types.h>
1218#ifndef WITHOUT_SYS_SOCKET_H
1219#include <sys/socket.h>
1220#endif
1221#ifdef WITH_WINSOCK_H
1222#include <winsock.h>
1223#endif
1224
1225int main (void) { shutdown(0, 0); return 0; }
1226EOF
1227
1228if [ "$SYSNAME" = 'SunOS' ]
1229then
1230 _l='-lsocket'
1231else
1232 _l=''
1233fi
1234
1235if $CCTF $_l 2> /dev/null;
1236then
1237 echo '#define ROAR_HAVE_SHUTDOWN'     >&3
1238 echo '#define ROAR_SHUTDOWN shutdown' >&3
1239 echo yes
1240elif $CCTF -DWITHOUT_SYS_SOCKET_H -DWITH_WINSOCK_H $lib_wsock32 2> /dev/null;
1241then
1242 echo '#define ROAR_HAVE_SHUTDOWN'     >&3
1243 echo '#define ROAR_SHUTDOWN shutdown' >&3
1244 echo yes, WinSock
1245else
1246 echo '#define ROAR_SHUTDOWN(x,y) (-1)' >&3
1247 echo no
1248fi
1249
1250test_func_defmake ROAR_HAVE_GETOBJECTBYNAME getobjectbyname 'getobjectbyname(NULL)' -- stdlib.h netdnet/dn.h netdnet/dnetdb.h
1251test_func_defmake ROAR_HAVE_GETSERVBYNAME   getservbyname   'getservbyname((void*)0, (void*)0)' -- netdb.h
1252
1253echo -n 'checking for type of pa_path_get_filename()... '
1254echo '#include <pulse/pulseaudio.h>'  >  $TF_C
1255echo '#include <pulse/simple.h>'     >> $TF_C
1256echo '#include <string.h>'           >> $TF_C
1257echo 'int main (void) { return 0; } const char *pa_path_get_filename(const char *p) { return NULL; }'  >> $TF_C
1258
1259if $CCTF 2> /dev/null;
1260then
1261 echo '#define ROAR_HAVE_TYPE_PA_PATH_GET_FILENAME const char *' >&3
1262 echo 'const char *'
1263else
1264 echo '#define ROAR_HAVE_TYPE_PA_PATH_GET_FILENAME char *' >&3
1265 echo 'char *'
1266fi
1267
1268echo -n 'checking for safe 32 bit integer overflow... '
1269
1270cat > $TF_C << EOF
1271#include <stdio.h>
1272#include <stdint.h>
1273#define TYPE uint32_t
1274#define MAX  ((TYPE)4294967295U)
1275
1276int main (void) {
1277 TYPE a = MAX;
1278
1279 a += 2;
1280
1281 if ( a == 1 ) {
1282  printf("#define ROAR_HAVE_SAFE_OVERFLOW\n");
1283  return 0;
1284 }
1285
1286 return 1;
1287}
1288EOF
1289
1290if $CCTF 2> /dev/null;
1291then
1292 $EXEC_HELPER $TF_E >&3 2> /dev/null
1293 if [ "$?" = '0' ]
1294 then
1295  echo yes
1296 else
1297  echo no
1298 fi
1299else
1300 echo 'no (can not compile!, no stdint.h?)'
1301fi
1302
1303echo -n 'checking for __LP64__... '
1304if $TARGET_WIN32
1305then
1306 echo 'need to set (win32 build)'
1307else
1308cat > $TF_C << EOF
1309#include <stdio.h>
1310
1311int main (void) {
1312#ifdef __LP64__
1313 fprintf(stderr, "set by compiler\n");
1314#else
1315 if ( sizeof(int) == sizeof(void*) ) {
1316  fprintf(stderr, "no need to set\n");
1317 } else {
1318  fprintf(stderr, "need to set\n");
1319  printf("\n#ifndef __LP64__\n#define __LP64__\n#endif\n\n");
1320 }
1321#endif
1322 return 0;
1323}
1324EOF
1325 if $CCTF 2> /dev/null;
1326 then
1327  $EXEC_HELPER $TF_E >&3 2> /dev/null
1328 else
1329  echo 'error, can not compile'
1330  exit 1
1331 fi
1332fi
1333
1334echo -n 'checking for 64 bit types... '
1335if $TARGET_WIN32
1336then
1337 echo 'int64_t, uint64_t (win32 build)'
1338 echo '#define ROAR_NATIVE_INT64  int64_t'  >&3
1339 echo '#define ROAR_NATIVE_UINT64 uint64_t' >&3
1340else
1341cat > $TF_C << EOF
1342#include <stdio.h>
1343#include <stdint.h>
1344
1345int main (void) {
1346 char * i64 = NULL, * ui64 = NULL;
1347
1348 if ( sizeof(int) == 8 ) {
1349  i64 = "int"; ui64 = "unsigned int";
1350 } else if ( sizeof(long int) == 8 ) {
1351  i64 = "long int"; ui64 = "unsigned long int";
1352 } else if ( sizeof(long long int) == 8 ) {
1353  i64 = "long long int"; ui64 = "unsigned long long int";
1354 } else if ( sizeof(int64_t) == 8 ) {
1355  i64 = "int64_t"; ui64 = "uint64_t";
1356 } else {
1357  fprintf(stderr, "none\n");
1358  return 0;
1359 }
1360
1361 fprintf(stderr, "%s, %s\n", i64, ui64);
1362 printf("#define ROAR_NATIVE_INT64 %s\n#define ROAR_NATIVE_UINT64 %s\n", i64, ui64);
1363
1364 return 0;
1365}
1366EOF
1367 if $CCTF 2> /dev/null;
1368 then
1369  $EXEC_HELPER $TF_E >&3 2> /dev/null
1370 else
1371  echo 'error, can not compile'
1372  exit 1
1373 fi
1374fi
1375
1376
1377echo -n 'checking if cp supports -v... '
1378if cp -v --help > /dev/null 2> /dev/null
1379then
1380 echo "cp_v=-v" >&4
1381 echo yes
1382else
1383 echo "cp_v=" >&4
1384 echo no
1385fi
1386
1387echo -n 'checking for cdrom device... '
1388if [ -n "$CDROM" ]
1389then
1390 if [ "$CDROM" = '(none)' ]
1391 then
1392  echo "none (disabled by user)"
1393 else
1394  if $CROSS_COMPILE
1395  then
1396   echo "$CDROM (cross compile)"
1397  elif [ -e "$CDROM" ]
1398  then
1399   echo "$CDROM (forced by user)"
1400  else
1401   echo "$CDROM (not existing, forced by user)"
1402  fi
1403  echo '#define ROAR_DEFAULT_CDROM "'"$CDROM"'"' >&3
1404  echo '#define ROAR_HAVE_CDROM' >&3
1405 fi
1406elif $CROSS_COMPILE
1407then
1408 echo 'none (cross compiling, use --cdrom to enable CDROM support)'
1409else
1410 CDROM=$(ls /dev/cdrom /dev/rcd0c 2> /dev/null | head -n 1);
1411 if [ -e "$CDROM" ]
1412 then
1413  echo "$CDROM"
1414  echo '#define ROAR_DEFAULT_CDROM "'"$CDROM"'"' >&3
1415  echo '#define ROAR_HAVE_CDROM' >&3
1416 else
1417  echo 'none'
1418  echo '#define ROAR_HAVE_CDROM' >&3
1419 fi
1420fi
1421
1422echo -n 'checking for default tty device... '
1423if [ -n "$TTY_DEV" ]
1424then
1425 if [ "$TTY_DEV" = '(none)' ]
1426 then
1427  echo "none (disabled by user)"
1428 else
1429  if $CROSS_COMPILE
1430  then
1431   echo "$TTY_DEV (cross compile)"
1432  elif [ -e "$TTY_DEV" ]
1433  then
1434   echo "$TTY_DEV (forced by user)"
1435  else
1436   echo "$TTY_DEV (not existing, forced by user)"
1437  fi
1438  echo '#define ROAR_DEFAULT_TTY "'"$TTY_DEV"'"' >&3
1439 fi
1440else
1441 TTY_DEV=$(ls /dev/tty 2> /dev/null | head -n 1);
1442 if [ -e "$TTY_DEV" ]
1443 then
1444  echo "$TTY_DEV"
1445  echo '#define ROAR_DEFAULT_TTY "'"$TTY_DEV"'"' >&3
1446 else
1447  echo 'none'
1448 fi
1449fi
1450
1451echo -n 'checking for OSS device... '
1452if [ -n "$OSS_DEV" ]
1453then
1454 if [ "$OSS_DEV" = '(none)' ]
1455 then
1456  echo "none (disabled by user)"
1457 else
1458  if $CROSS_COMPILE
1459  then
1460   echo "$OSS_DEV (cross compile)"
1461  elif [ -e "$OSS_DEV" ]
1462  then
1463   echo "$OSS_DEV (forced by user)"
1464  else
1465   echo "$OSS_DEV (not existing, forced by user)"
1466  fi
1467  echo '#define ROAR_DEFAULT_OSS_DEV "'"$OSS_DEV"'"' >&3
1468 fi
1469else
1470 OSS_DEV=$(ls /dev/dsp /dev/audio 2> /dev/null | head -n 1);
1471 if [ -e "$OSS_DEV" ]
1472 then
1473  echo "$OSS_DEV"
1474  echo '#define ROAR_DEFAULT_OSS_DEV "'"$OSS_DEV"'"' >&3
1475 else
1476  echo 'none'
1477 fi
1478fi
1479
1480echo 'checking for decnet status file... '"$PROC_NET_DECNET"
1481echo '#define ROAR_PROC_NET_DECNET "'"$PROC_NET_DECNET"'"' >&3
1482
1483
1484echo -n 'checking for default audio group... '
1485if [ "$DEFAULT_GRP" = '(none)' ]
1486then
1487 echo "none (disabled by user)"
1488else
1489 echo "$DEFAULT_GRP"
1490 echo '#define ROAR_DEFAULT_SOCKGRP "'"$DEFAULT_GRP"'"' >&3
1491fi
1492
1493
1494$NEED_GNU_SOURCE && echo '#define ROAR_NEED_GNU_SOURCE' >&3
1495
1496cat >&3 << EOF
1497
1498#endif
1499
1500//ll
1501EOF
1502
1503echo >&5
1504echo '//ll' >&5
1505
1506echo >&4
1507echo >&4
1508
1509cd plugins
1510
1511if $LIBAO
1512then
1513 echo 'running libao plugin configure...'
1514  cd ao/
1515 if [ "$AO_INST_DIR" = '' ]
1516 then
1517  ./configure --force-have-roar --pkg-config "$PKG_CONFIG"                           && \
1518    echo "subdir_plugins_ao=plugins/ao" >&4
1519 else
1520  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$AO_INST_DIR" && \
1521    echo "subdir_plugins_ao=plugins/ao" >&4
1522 fi
1523 cd ..
1524else
1525 echo "running libao plugin configure... disabled by user"
1526fi
1527
1528if $XMMS
1529then
1530 echo 'running xmms plugin configure...'
1531 cd xmms/
1532  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$XMMS_INST_DIR" && \
1533    echo "subdir_plugins_xmms=plugins/xmms" >&4
1534 cd ..
1535else
1536 echo "running xmms plugin configure... disabled by user"
1537fi
1538
1539if $AUDACIOUS
1540then
1541 echo 'running Audacious plugin configure...'
1542 cd audacious/
1543  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$AUDACIOUS_INST_DIR" && \
1544    echo "subdir_plugins_audacious=plugins/audacious" >&4
1545 cd ..
1546else
1547 echo "running Audacious plugin configure... disabled by user"
1548fi
1549
1550cd ..
1551
1552rm -f $TF_C $TF_E
1553
1554mv config.h include/roaraudio/
1555echo 'config.h created and moved into include/roaraudio/'
1556
1557if $TARGET_CYGWIN
1558then
1559 rm -f $TF_E.exe
1560 echo 'patching Makefiles for cygwin...'
1561 find . -name Makefile -print0 | xargs -0 sed 's/\.so/.dll'/g -i
1562fi
1563
1564#ll
Note: See TracBrowser for help on using the repository browser.