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
RevLine 
[353]1#!/bin/sh
2
[693]3# check for bash...
4
5if [ "$(echo -n)" = '-n' ]
6then
[1230]7 SHELL=$(which bash ksh sh 2> /dev/null | grep ^/ | head -n 1)
[693]8 exec $SHELL $0 "$@"
9fi
10
[1357]11PATH="$PATH":/sbin:/usr/sbin:/usr/local/sbin:/usr/pkg/sbin # Ensure superuser paths
[693]12
[353]13#set -x
14
15TF_C=testit.c
[354]16TF_E=./testit
[484]17LDPATH=''
[553]18INCPATH=''
[484]19
[1394]20CROSS_COMPILE=false
21
[691]22SYSNAME='unknown'
23SHARED='-shared'
[730]24SHARED_CF=''
[2049]25SHARED_SUFFIX='.so'
[1389]26fPIC=true
[1468]27MMCU=''
[725]28PKG_CONFIG=false
[750]29RUNTIME_DETECT=false
[691]30
[1685]31NEED_GNU_SOURCE=false
32
[863]33PREFIX='/usr/local'
34PREFIX_BIN=''
35PREFIX_LIB=''
36PREFIX_INC=''
37PREFIX_MAN=''
[1618]38PREFIX_COMP=''
[863]39
[1394]40CDROM_IS_DEV=true
[2421]41CDROM=""
42OSS_DEV=""
[827]43PROC_NET_DECNET="/proc/net/decnet"
[2421]44TTY_DEV=""
[804]45
[2105]46VORBIS_BITS=32
47
[1397]48FSYNC=false
49
[927]50DEFAULT_GRP=''
51
[872]52AO_INST_DIR=''
[1062]53XMMS_INST_DIR=''
[1704]54AUDACIOUS_INST_DIR=''
[1062]55
[1607]56SNDIO_EMUL=true
57
[1092]58LIBAO=true
59XMMS=true
[1704]60AUDACIOUS=true
[1092]61
[1062]62DEFAULT_RATE=''
63DEFAULT_CHANNELS=''
64DEFAULT_BITS=''
[872]65
[1737]66COMP_LIBS=true
67COMP_ROARD=true
68COMP_CLIENTS=true
69COMP_DOC=true
70
[1065]71ALAW=true
72MULAW=true
73ALAW_RW=true
74MULAW_RW=true
75
[1086]76PROXY=true
77
[1398]78PASSWORD_API=true
79
[1491]80NO_LISTEN=false
81
82META_DATA=true
83
[1199]84WITHOUT_CF=''
85
[1363]86WITHOUT_VIO=''
87
[2484]88WITHOUT_DCOMP=''
89
[1503]90HAVE_MAIN_ARGS=true
91
[1109]92MINIMAL=false
93
[1072]94TARGET_WIN32=false
[1420]95TARGET_MICROCONTROLLER=false
[1519]96TARGET_CYGWIN=false
[1072]97
[1092]98EXEC_HELPER=''
99
[1175]100ROAR_DRIVER_DEFAULT=''
[1208]101ROAR_DRIVER_CODEC=''
[1175]102
[1739]103ROARD_CFREQ='' # cycle frequens for roard, normaly 100Hz
104
[2581]105_CARGS="$@";
106
[484]107echo -n "checking for C compiler... "
[899]108if [ "$CC" != '' ]
[484]109then
[899]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
[484]119fi
120
[1772]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
[725]135echo -n "checking for pkg-config... "
[727]136PKG_CONFIG=$(which pkg-config false 2> /dev/null | grep ^/ | head -n 1)
[725]137if $PKG_CONFIG --help > /dev/null 2> /dev/null
138then
139 echo $PKG_CONFIG
140else
141 echo no
142fi
143
[484]144#Makefile.conf not yet open, write it later
145
[691]146echo -n "checking for sysname... "
147SYSNAME=$(uname -s)
148echo "$SYSNAME"
[353]149
[484]150while [ "$1" != '' ]
151do
152 case "$1" in
153  '--help')
[862]154   echo '--help                      - This Help'
[1109]155   echo
[862]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'
[1109]159   echo
[862]160   echo '--cdrom DEV                 - Set default CDRum device'
[1237]161   echo '--tty DEV                   - Set default TTY'
[2421]162   echo '--oss-dev DEV               - Set default OSS device'
[862]163   echo '--proc-net-decnet FILE      - Set DECnet file for DECnet support auto detecting'
164   echo '                              (ignore this on non-Linux)'
[2405]165   echo '--audio-group GROUP         - Sets group of audio permitted users'
[1109]166   echo
167   echo '--no-LIB                    - disable library LIB'
[862]168   echo '--runtime-detect            - do as much as posible auto detecting on runtime (for distributors)'
[1109]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'
[1704]172   echo '--audacious-install-dir DIR - Set install dir for Audacious plugin'
[1109]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)'
[1618]179   echo '--prefix-comp DIR           - Set prefix for compatibility librarys (default: $PREFIX_LIB/roaraudio/complibs)'
[1109]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'
[1175]184   echo '--default-driver DRIVER     - Set default driver for roard'
[1208]185   echo '--default-codec CODEC       - Set default codec used for the default driver'
[1109]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
[1737]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
[1491]198   echo '--without-meta-data         - Disable support for Meta Data'
199   echo
[1199]200   echo '--without-cf-cmd            - Disable support for command codecfilter'
201   echo
[1363]202   echo '--without-vio-MODULE        - Disable support for VIO module MODULE'
203   echo
[1399]204   echo '--without-password-api      - Disable build of Password API'
205   echo
[1491]206   echo '--without-listen            - Disable listening sockets in roard'
207   echo '                              This is the same as allways using --no-listen'
208   echo
[1739]209   echo '--roard-cfreq FREQ          - Sets the cycle frequency of roard in Hz.'
[2350]210   echo '--vorbis-bits BITS          - Sets bits per sample used by Vorbis code'
[1739]211   echo
[1109]212   echo '--without-libao             - Disable build of libao plugin'
213   echo '--without-xmms              - Disable build of XMMS plugin'
[1704]214   echo '--without-audacious         - Disable build of Audacious plugin'
[1109]215   echo
[1468]216   echo '--mmcu MMCU                 - Sets -mmcu compiler/linker option'
[1109]217   echo '--minimal                   - Disable all optional components'
[1394]218   echo '--cross-compile             - Enable cross compiler workarounds'
[1420]219   echo '--target-microcontroller    - Set Options for mircocontrollers without a OS'
220   echo '                              Implys --cross-compile'
[1109]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'
[484]224   exit 0;
225  ;;
226  '--ldpath')
227   LDPATH="$LDPATH -L$2"
228   shift;
229  ;;
[553]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  ;;
[899]239  '--cc')
240   CC="$2"
241   shift;
242  ;;
[1772]243  '--ranlib')
244   RANLIB="$2"
245   shift;
246  ;;
[804]247  '--cdrom')
248   CDROM="$2"
249   shift;
250  ;;
[1237]251  '--tty')
252   TTY_DEV="$2"
253   shift;
254  ;;
[913]255  '--oss-dev')
256   OSS_DEV="$2"
257   shift;
258  ;;
[927]259  '--audio-group')
260   DEFAULT_GRP="$2"
261   shift;
262  ;;
[696]263  '--no-'*)
264   lib=$(echo "$1" | sed 's/^--no-//')
265   eval no_lib_$lib=true
266  ;;
[750]267  '--runtime-detect')
[864]268   RUNTIME_DETECT=true
269  ;;
[872]270  '--ao-install-dir')
271   AO_INST_DIR="$2"
272   shift;
273  ;;
[1057]274  '--xmms-install-dir')
275   XMMS_INST_DIR="$2"
276   shift;
277  ;;
[1704]278  '--audacious-install-dir')
279   AUDACIOUS_INST_DIR="$2"
280   shift;
281  ;;
[1062]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  ;;
[1175]294  '--default-driver')
295   ROAR_DRIVER_DEFAULT="$2"
296   shift;
297  ;;
[1208]298  '--default-codec')
299   ROAR_DRIVER_CODEC="$2"
300   shift;
301  ;;
[1065]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  ;;
[1086]316  '--without-proxy')
317   PROXY=false
318  ;;
[1737]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  ;;
[1491]331  '--without-meta-data')
332   META_DATA=false
333  ;;
[1199]334  '--without-cf-'*)
335   WITHOUT_CF="$WITHOUT_CF"' '$(echo "$1" | cut -d- -f5)
336  ;;
[1363]337  '--without-vio-'*)
338   WITHOUT_VIO="$WITHOUT_VIO"' '$(echo "$1" | cut -d- -f5)
339  ;;
[2484]340  '--without-dcomp-'*)
341   WITHOUT_DCOMP="$WITHOUT_DCOMP"' '$(echo "$1" | cut -d- -f5)
342  ;;
[1398]343  '--without-password-api')
344   PASSWORD_API=false
345  ;;
[1491]346  '--without-listen')
347   NO_LISTEN=true
348  ;;
[1739]349  '--roard-cfreq')
350   ROARD_CFREQ="$2"
351   shift;
352  ;;
[2105]353  '--vorbis-bits')
354   VORBIS_BITS="$2"
355   shift;
356  ;;
[1092]357  '--without-libao')
358   LIBAO=false
359   no_lib_ao=true
360  ;;
361  '--without-xmms')
362   XMMS=false
363  ;;
[1704]364  '--without-audacious')
365   AUDACIOUS=false
366  ;;
[1109]367  '--minimal')
368   MINIMAL=true
[1391]369   RUNTIME_DETECT=false
[1109]370   XMMS=false
[1704]371   AUDACIOUS=false
[1109]372   LIBAO=false
373   PROXY=false
374   MULAW=false
375   MULAW_RW=false
376   ALAW=false
377   ALAW_RW=false
[1491]378   META_DATA=false
[1398]379   PASSWORD_API=false
[1377]380   WITHOUT_VIO="$WITHOUT_VIO"' dstr cmd stdio'
[2506]381   WITHOUT_CF="$WITHOUT_CF"' wave'
[2520]382   WITHOUT_DCOMP="$WITHOUT_DCOMP"' sources ssynth cb midi light raw cdriver emul_esd'
[1109]383  ;;
[864]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;
[750]403  ;;
[1618]404  '--prefix-comp')
405   PREFIX_COMP="$2"
406   shift;
407  ;;
[1468]408  '--mmcu')
409   MMCU="$2"
410   shift;
411  ;;
[1394]412  '--cross-compile')
413   CROSS_COMPILE=true
414  ;;
[1092]415  '--exec-helper')
416   EXEC_HELPER="$2"
417   shift;
418  ;;
[1420]419  '--target-microcontroller')
420   TARGET_MICROCONTROLLER=true
421   CROSS_COMPILE=true
[1503]422   HAVE_MAIN_ARGS=false
[1420]423  ;;
[1071]424  '--target-win32')
[1421]425   TARGET_WIN32=true
426   CROSS_COMPILE=true
[1071]427   RUNTIME_DETECT=true
428   no_lib_dnet=true
[1088]429   PROXY=false
[1792]430   LIBAO=false
[1092]431   XMMS=false
[1704]432   AUDACIOUS=false
[1791]433   WITHOUT_VIO="$WITHOUT_VIO"' pipe cmd' # hope that with buffered pipes we can remove this soon
[2484]434   WITHOUT_DCOMP="$WITHOUT_DCOMP"' cb'
[2781]435#   [ "$ROARD_CFREQ" = '' ] && ROARD_CFREQ=20
[1071]436  ;;
[484]437 esac;
438
439 shift;
440done
441
442
[714]443CCTF="false"
[353]444
445test_lib () {
446 echo > $TF_C
447
[1686]448 name="$1"
449 echo -n "checking for $name... "
450 echo "TEST LIB: $name" >&5
[353]451 shift;
452
453 LIBS=''
454
455 while [ "$1" != '--' ]
456 do
[2032]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
[353]468  shift;
469 done
470
471 shift;
472
[1686]473 echo "LIB($name) IS TESTED USING LIBS: $LIBS" >&5
474
[353]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
[1686]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;
[1688]491 R=$?
[1686]492 echo "--- END OF CHILD OUTPUT BLOCK ---" >&5
[353]493
494 if [ "$R" = '0' ]
495 then
496  echo 'yes'
[1686]497  echo "LIB($name) WAS FOUND" >&5
[353]498 else
499  echo 'no'
[1686]500  echo "LIB($name) NOT FOUND" >&5
[353]501 fi
502
503 return $R
504}
505
[426]506test_lib_defmake () {
507 def="$1"
508 subdir="$2"
509 shift
510 shift
[725]511 name="$1"
[428]512 lib="$2"
[725]513 shift
[426]514
[1686]515 echo "TEST LIB: $name" >&5
516
[429]517 [ "$subdir" = '%' ] && subdir=''
518
[698]519 if [ "$lib" != '--' ]
[696]520 then
[698]521  eval _no="\$no_lib_$lib";
[1109]522  $MINIMAL && _no='XXX'
[698]523
524  if [ "$_no" != '' ]
525  then
[1362]526    echo "checking for $name... disabled by user"
[1686]527    echo "LIB($name) IS DISABLED BY USER" >&5
[698]528   [ "$subdir" != '' ] && \
529    echo "subdir_$subdir=" >&4
530   echo "lib_$lib=" >&4
531   return;
532  fi
[696]533 fi
534
[1417]535 LIBS=$($PKG_CONFIG --silence-errors --libs $lib 2> /dev/null)
[725]536 if [ "$?" != '0' ]
537 then
538  LIBS="-l$lib"
539 fi
540
[1686]541 echo "LIB($name) HAS LIBS: $LIBS" >&5
542
[725]543 if test_lib "$name" $LIBS "$@"
[426]544 then
[1049]545  subdir_var='subdir_'"`echo $subdir | tr / _`"
[426]546  echo "#define $def"            >&3
547  [ "$subdir" != '' ] && \
[1049]548   echo "$subdir_var=$subdir" >&4
[1607]549  [ "$lib" != 'c' ] && \
550   echo "lib_$lib=$LIBS" >&4
[2760]551  [ "$lib" != 'c' ] && \
552   eval "lib_$lib='$LIBS'"
[426]553 else
554  [ "$subdir" != '' ] && \
555   echo "subdir_$subdir=" >&4
[1607]556  [ "$lib" != 'c' ] && \
557   echo "lib_$lib=" >&4
[426]558 fi
[1686]559 echo >&5
560 echo >&5
[426]561}
562
[748]563test_tool_defmake () {
564 DEF="$1"
565 NAME="$2"
566 shift;
567 shift;
568 echo -n "checking for $NAME... "
569
[1686]570 echo "TEST TOOL: $NAME" >&5
571
[750]572 if $RUNTIME_DETECT
[748]573 then
[750]574  echo "$1 (runtime detect)"
[1686]575  echo "TOOL($NAME) WILL BE RUNTIME DETECTED" >&5
576  echo "#define $DEF "\""$1"\" >&3
[1109]577 elif $MINIMAL
578 then
579  echo "disabled by user (minimalstic build)"
[1686]580  echo "TOOL($NAME) IS DISABLED BY USER" >&5
[748]581 else
[750]582
583  LIST=$(which "$@" 2> /dev/null | grep ^/ | head -n 1)
584
585  if [ "$LIST" = '' ]
586  then
587   echo 'no'
[1686]588   echo "TOOL($NAME) NOT FOUND" >&5
[750]589  else
590   echo $LIST
591   echo "#define $DEF "\""$LIST"\" >&3
[1686]592   echo "TOOL($NAME) IS AT $LIST" >&5
[750]593  fi
[748]594 fi
595}
596
[1793]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
[1795]613   echo "#include <$1>"
[1793]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
[1686]646exec 3> config.h 4> Makefile.conf 5> config.log
[353]647
[1520]648TARGET_CYGWIN=`echo "$SYSNAME" | if grep CYGWIN > /dev/null; then echo true; else echo false; fi`
[1519]649
[691]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"
[730]654 SHARED_CF="$SHARED_CF -fno-common"
[713]655elif [ "$SYSNAME" = 'NetBSD' ]
656then
657 echo "Adding $SYSNAME libpath arguments..."
658 LDPATH="$LDPATH -L/usr/local/lib/"
[1170]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/"
[1667]664# echo "Adding $SYSNAME build arguments..."
665# SNDIO_EMUL=false
[926]666elif [ "$SYSNAME" = 'FreeBSD' ]
667then
[927]668 echo "Adding $SYSNAME search path arguments..."
[926]669 LDPATH="$LDPATH -L/usr/local/lib/"
670 INCPATH="$INCPATH -I/usr/local/include/"
[927]671 [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='wheel'
[1389]672elif $TARGET_WIN32
[1390]673then
[1389]674 echo "Adding win32 build arguments..."
675 fPIC=false
[2049]676 SHARED_SUFFIX='.dll'
[1519]677elif $TARGET_CYGWIN
678then
679 echo "Adding cygwin build arguments..."
680 fPIC=false
[2049]681 SHARED_SUFFIX='.dll'
[691]682fi
683
[1788]684echo -n 'checking if we cross compile... '
685if $CROSS_COMPILE
686then
687 echo yes
688
[1792]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
[1788]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
[1618]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/"
[863]728
[927]729[ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='audio'
730
[1468]731if [ "$MMCU" != '' ]
732then
733 CC="$CC -mmcu=$MMCU"
734fi
735
[714]736# now write the cc name to Makefile.conf
[863]737{
738 echo "SHARED=$SHARED"
739 echo "SHARED_CF=$SHARED_CF"
[2049]740 echo "SHARED_SUFFIX=$SHARED_SUFFIX"
[1389]741 $fPIC && echo 'fPIC=-fPIC'
[1607]742 echo
[863]743 echo "CC=$CC"
[1772]744 echo "RANLIB=$RANLIB"
[863]745 echo "LDPATH=$LDPATH"
746 echo "INCPATH=$INCPATH"
[1607]747 echo
[2223]748 echo "EXEC_HELPER=$EXEC_HELPER"
749 echo
[863]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"
[1618]755 echo "PREFIX_COMP=$PREFIX_COMP"
[1607]756 echo
[2280]757 $COMP_LIBS     && echo "comp_libs=libroar libroardsp libroarmidi libroarlight libroareio"
[1737]758 $COMP_ROARD    && echo "comp_roard=roard"
759 $COMP_CLIENTS  && echo "comp_clients=roarclients"
760 $COMP_DOC      && echo "comp_doc=doc"
761 echo
[1607]762 $SNDIO_EMUL && echo "subdir_libroarsndio=libroarsndio"
[863]763} >&4
[714]764
[1055]765CCTF="$CC $LDPATH $INCPATH -Iinclude/ -o $TF_E $TF_C"
[691]766
[1686]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
[2033]782
[2581]783 echo "ARGS(): $_CARGS"
784
785 for i in PATH SHELL CC RANLIB PKG_CONFIG SYSNAME TARGET_CYGWIN
[2033]786 do
787  eval echo "BASICCONF\($i\): \$$i";
788 done
789
790 echo
791 echo
[1686]792} >&5
793
[353]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
[1175]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\""
[1208]810 [ "$ROAR_DRIVER_CODEC"   = '' ] || echo "#define ROAR_DRIVER_CODEC     \"$ROAR_DRIVER_CODEC\""
[1062]811 echo
[1739]812 [ "$ROARD_CFREQ"         = '' ] || echo "#define ROAR_OUTPUT_CFREQ     $ROARD_CFREQ"
[2105]813 echo "#define ROAR_VORBIS_BITS     $VORBIS_BITS"
[1739]814 echo
[1501]815 $MINIMAL      && echo '#define ROAR_MINIMAL'
[1398]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'
[1491]822 $NO_LISTEN    || echo '#define ROAR_SUPPORT_LISTEN'
823 $META_DATA    && echo '#define ROAR_SUPPORT_META'
[1086]824 echo
[1199]825
[1503]826 $HAVE_MAIN_ARGS && echo '#define ROAR_HAVE_MAIN_ARGS'
827
828 echo
829
[1199]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
[1363]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
[2484]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
[1199]848 echo
[1423]849 $TARGET_MICROCONTROLLER && echo '#define ROAR_TARGET_MICROCONTROLLER'
[1420]850 $TARGET_WIN32           && echo '#define ROAR_TARGET_WIN32'
[1446]851                            echo '#define ROAR_OS_'$(echo $SYSNAME | tr a-z-. A-Z__)
[1065]852 echo
[353]853} >&3
854
[1286]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
[1357]866test_tool_defmake ROAR_HAVE_BIN_BZIP2       bzip2        bzip2
[1286]867test_tool_defmake ROAR_HAVE_BIN_GPG         GnuPG        gpg
[1357]868test_tool_defmake ROAR_HAVE_BIN_CHAT        chat         chat
[748]869
870echo >&3
[1686]871echo >&5
872echo >&5
873echo >&5
[748]874
[1101]875#                #define                 subdir       name           -lxxx      -- header
876test_lib_defmake ROAR_HAVE_LIBM          %            'Math Library' m          -- math.h
[363]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
[500]887#                #define                 subdir       name          -lxxx      -- header
888test_lib_defmake ROAR_HAVE_ESD           libroaresd   EsounD        esd        -- esd.h
[1705]889test_lib_defmake ROAR_HAVE_LIBAO         %            libao         ao         -- ao/ao.h ao/plugin.h
[2335]890test_lib_defmake ROAR_HAVE_LIBRAUM       %            RAUM          raum       -- raum.h
[1645]891test_lib_defmake ROAR_HAVE_LIBOGG        %            libogg        ogg        -- ogg/ogg.h
[500]892test_lib_defmake ROAR_HAVE_LIBVORBIS     %            libvorbis     vorbis     -- vorbis/codec.h
893test_lib_defmake ROAR_HAVE_LIBVORBISFILE %            libvorbisfile vorbisfile -- vorbis/vorbisfile.h
[568]894test_lib_defmake ROAR_HAVE_LIBVORBISENC  %            libvorbisenc  vorbisenc  -- vorbis/vorbisenc.h
[500]895test_lib_defmake ROAR_HAVE_LIBSPEEX      %            libspeex      speex      -- speex/speex.h speex/speex_stereo.h
[2578]896test_lib_defmake ROAR_HAVE_LIBSPEEXDSP   %            libspeexdsp   speexdsp   -- speex/speex.h speex/speex_echo.h
[500]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
[2385]901test_lib_defmake ROAR_HAVE_LIBSAMPLERATE %            libsamplerate samplerate -- samplerate.h
[604]902test_lib_defmake ROAR_HAVE_LIBSHOUT      %            libshout      shout      -- shout/shout.h
[500]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
[921]906test_lib_defmake ROAR_HAVE_LIBOSSAUDIO   %            libossaudio   ossaudio   -- sys/ioctl.h
[1542]907test_lib_defmake ROAR_HAVE_LIBSNDIO      %            libsndio      sndio      -- sndio.h
[1313]908test_lib_defmake ROAR_HAVE_LIBSSL        %            OpenSSL       ssl        -- openssl/bio.h openssl/evp.h
[1992]909test_lib_defmake ROAR_HAVE_LIBSLP        %            OpenSLP       slp        -- slp.h
[500]910test_lib_defmake ROAR_HAVE_LIBDNET       %            libdnet       dnet       -- sys/socket.h netdnet/dn.h netdnet/dnetdb.h
[1415]911test_lib_defmake ROAR_HAVE_BSDSOCKETS    %            BSDSockets    c          -- sys/types.h sys/socket.h
[1173]912test_lib_defmake ROAR_HAVE_UNIX          %            UNIX          c          -- sys/types.h sys/socket.h sys/un.h
[725]913test_lib_defmake ROAR_HAVE_IPX           %            IPX           c          -- netipx/ipx.h
[1415]914test_lib_defmake ROAR_HAVE_IPV4          %            IPv4          c          -- sys/types.h sys/socket.h 'netinet/in.h'
[914]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
[2776]917test_lib_defmake ROAR_HAVE_LIBWINMM      %            WinMM         winmm      -- windows.h mmsystem.h
[1641]918test_lib_defmake ROAR_HAVE_LIBSENDFILE   %            sendfile      sendfile   -- sys/sendfile.h
[1646]919test_lib_defmake ROAR_HAVE_LIBSOCKET     %            libsocket     socket     -- sys/socket.h
[1091]920test_lib_defmake ROAR_HAVE_LIBWSOCK32    %            WinSockP0     wsock32    -- winsock2.h
921test_lib_defmake ROAR_HAVE_LIBWS2_32     %            WinSockP1     ws2_32     -- winsock2.h
[353]922
[1180]923echo >&3
924
[1427]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
[1425]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
[1426]931test_lib_defmake ROAR_HAVE_H_UNISTD      %            unistd.h      c          -- unistd.h
[1553]932test_lib_defmake ROAR_HAVE_H_POLL        %            poll.h        c          -- poll.h
[2772]933test_lib_defmake ROAR_HAVE_H_MMSYSTEM    %            mmsystem.h    c          -- windows.h mmsystem.h
[2790]934test_lib_defmake ROAR_HAVE_H_ESD         %            esd.h         c          -- esd.h
[1427]935MINIMAL=$OLD_MINIMAL
[1425]936
937echo >&3
938
[353]939# add a better test here
940test_lib 'linux sendfile()'       -- sys/sendfile.h && echo '#define ROAR_HAVE_LINUX_SENDFILE' >&3
941
942
[890]943echo -n 'checking for IPv6... '
944
[1360]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
[890]952
[1360]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
[890]960fi
961
962
[1471]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
[1794]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
[1797]981test_func_defmake ROAR_HAVE_STRTOK_R  strtok_r  'strtok_r("","",(char**)0)'  -- string.h
[1794]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
[2110]991test_func_defmake ROAR_HAVE_KILL      kill      'kill(0,0)'                  -- sys/types.h signal.h
[1783]992
[1471]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
[1794]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
[1441]1045
[1397]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
[1170]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
[1171]1069 echo '#define ROAR_FDATASYNC fdatasync' >&3
[1170]1070 echo yes
1071else
[1397]1072 $FSYNC && echo '#define ROAR_FDATASYNC fsync' >&3
[1170]1073 echo no
1074fi
1075
[1248]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
[1685]1085 NEED_GNU_SOURCE=true
[1248]1086 echo yes
1087else
1088 echo no
1089fi
1090
[1249]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
[1794]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
[1385]1109
[1019]1110echo -n 'checking for square root func... '
1111
[1519]1112if $TARGET_CYGWIN
[1019]1113then
[1034]1114 echo 'sqrt() (cygwin)'
[1419]1115elif [ "$SYSNAME" = 'FreeBSD' ]
1116then
1117 echo 'sqrt() (FreeBSD, fix your gcc)'
[1589]1118elif [ "$SYSNAME" = 'Linux' ]
1119then
[1034]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
[1638]1130else
1131 echo 'sqrt()'
[1019]1132fi
1133
[697]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
[1055]1147echo -n 'checking for broken peercred... '
[1664]1148echo '#include <sys/types.h>'      >  $TF_C
1149echo '#include <sys/socket.h>'     >> $TF_C
1150echo '#include <sys/un.h>'         >> $TF_C
[1055]1151echo 'int main (void) { struct ucred cred; return 0; }'  >> $TF_C
1152
1153if $CCTF 2> /dev/null;
1154then
1155 echo working
1156else
[1685]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
[1055]1165fi
1166
[1180]1167
[1794]1168test_func_defmake ROAR_HAVE_GETPEEREID getpeereid 'getpeereid(0, NULL, NULL)' -- sys/types.h sys/socket.h
[1180]1169
[1468]1170echo -n 'checking for select()... '
1171cat <<EOF > $TF_C
[2761]1172#ifndef WITHOUT_SYS_SELECT_H
[1468]1173#include <sys/select.h>
[1537]1174#endif
[2761]1175#ifdef WITH_WINSOCK_H
1176#include <winsock.h>
1177#endif
[1468]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
[1537]1201 echo '#define ROAR_HAVE_H_SYS_SELECT' >&3
1202 echo yes, POSIX.1-2001
[2761]1203elif $CCTF -DWITHOUT_SYS_SELECT_H 2> /dev/null;
[1537]1204then
1205 echo '#define ROAR_HAVE_SELECT' >&3
1206 echo yes, old style
[2761]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
[1468]1211else
1212 echo no
1213fi
1214
[1469]1215echo -n 'checking for shutdown()... '
[2762]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
[1469]1227
[1646]1228if [ "$SYSNAME" = 'SunOS' ]
1229then
1230 _l='-lsocket'
1231else
1232 _l=''
1233fi
1234
1235if $CCTF $_l 2> /dev/null;
[1469]1236then
1237 echo '#define ROAR_HAVE_SHUTDOWN'     >&3
1238 echo '#define ROAR_SHUTDOWN shutdown' >&3
1239 echo yes
[2762]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
[2763]1244 echo yes, WinSock
[1469]1245else
1246 echo '#define ROAR_SHUTDOWN(x,y) (-1)' >&3
1247 echo no
1248fi
1249
[2336]1250test_func_defmake ROAR_HAVE_GETOBJECTBYNAME getobjectbyname 'getobjectbyname(NULL)' -- stdlib.h netdnet/dn.h netdnet/dnetdb.h
[1794]1251test_func_defmake ROAR_HAVE_GETSERVBYNAME   getservbyname   'getservbyname((void*)0, (void*)0)' -- netdb.h
[1459]1252
[2579]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
[420]1268echo -n 'checking for safe 32 bit integer overflow... '
[354]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
[1789]1292 $EXEC_HELPER $TF_E >&3 2> /dev/null
[354]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
[781]1303echo -n 'checking for __LP64__... '
[1381]1304if $TARGET_WIN32
[1382]1305then
[1381]1306 echo 'need to set (win32 build)'
1307else
[781]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
[1381]1325 if $CCTF 2> /dev/null;
1326 then
[1789]1327  $EXEC_HELPER $TF_E >&3 2> /dev/null
[1381]1328 else
1329  echo 'error, can not compile'
1330  exit 1
1331 fi
[781]1332fi
1333
[853]1334echo -n 'checking for 64 bit types... '
[1384]1335if $TARGET_WIN32
[1383]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
[853]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
[1383]1367 if $CCTF 2> /dev/null;
1368 then
[1789]1369  $EXEC_HELPER $TF_E >&3 2> /dev/null
[1383]1370 else
1371  echo 'error, can not compile'
1372  exit 1
1373 fi
[853]1374fi
1375
1376
[475]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
[804]1387echo -n 'checking for cdrom device... '
[2421]1388if [ -n "$CDROM" ]
[804]1389then
[2421]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
[1394]1406elif $CROSS_COMPILE
1407then
1408 echo 'none (cross compiling, use --cdrom to enable CDROM support)'
[804]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
[1394]1415  echo '#define ROAR_HAVE_CDROM' >&3
[804]1416 else
1417  echo 'none'
[1394]1418  echo '#define ROAR_HAVE_CDROM' >&3
[804]1419 fi
1420fi
[475]1421
[1237]1422echo -n 'checking for default tty device... '
[2421]1423if [ -n "$TTY_DEV" ]
[1237]1424then
[2421]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
[1237]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
[913]1451echo -n 'checking for OSS device... '
[2421]1452if [ -n "$OSS_DEV" ]
[913]1453then
[2421]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)"
[2466]1461  elif [ -e "$OSS_DEV" ]
[2421]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
[913]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
[843]1480echo 'checking for decnet status file... '"$PROC_NET_DECNET"
[827]1481echo '#define ROAR_PROC_NET_DECNET "'"$PROC_NET_DECNET"'"' >&3
1482
[927]1483
[2769]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
[927]1492
[1685]1493
1494$NEED_GNU_SOURCE && echo '#define ROAR_NEED_GNU_SOURCE' >&3
1495
[353]1496cat >&3 << EOF
1497
1498#endif
1499
1500//ll
1501EOF
1502
[1686]1503echo >&5
1504echo '//ll' >&5
1505
[1705]1506echo >&4
1507echo >&4
1508
[1092]1509cd plugins
1510
1511if $LIBAO
[872]1512then
[1092]1513 echo 'running libao plugin configure...'
1514  cd ao/
1515 if [ "$AO_INST_DIR" = '' ]
1516 then
[1730]1517  ./configure --force-have-roar --pkg-config "$PKG_CONFIG"                           && \
[1705]1518    echo "subdir_plugins_ao=plugins/ao" >&4
[1092]1519 else
[1729]1520  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$AO_INST_DIR" && \
[1705]1521    echo "subdir_plugins_ao=plugins/ao" >&4
[1092]1522 fi
1523 cd ..
[872]1524else
[1092]1525 echo "running libao plugin configure... disabled by user"
[872]1526fi
[1057]1527
[1092]1528if $XMMS
[1057]1529then
[1092]1530 echo 'running xmms plugin configure...'
[1704]1531 cd xmms/
[1705]1532  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$XMMS_INST_DIR" && \
1533    echo "subdir_plugins_xmms=plugins/xmms" >&4
[1092]1534 cd ..
[1057]1535else
[1092]1536 echo "running xmms plugin configure... disabled by user"
[1057]1537fi
1538
[1704]1539if $AUDACIOUS
1540then
1541 echo 'running Audacious plugin configure...'
1542 cd audacious/
[1705]1543  ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$AUDACIOUS_INST_DIR" && \
1544    echo "subdir_plugins_audacious=plugins/audacious" >&4
[1704]1545 cd ..
1546else
1547 echo "running Audacious plugin configure... disabled by user"
1548fi
1549
[1092]1550cd ..
[872]1551
[354]1552rm -f $TF_C $TF_E
[353]1553
[359]1554mv config.h include/roaraudio/
1555echo 'config.h created and moved into include/roaraudio/'
1556
[1519]1557if $TARGET_CYGWIN
[898]1558then
[1034]1559 rm -f $TF_E.exe
[898]1560 echo 'patching Makefiles for cygwin...'
1561 find . -name Makefile -print0 | xargs -0 sed 's/\.so/.dll'/g -i
1562fi
1563
[353]1564#ll
Note: See TracBrowser for help on using the repository browser.