source: roaraudio/configure @ 1313:c5681fd6e3c1

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

test of OpenSSL

  • Property exe set to *
File size: 20.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
11
[353]12#set -x
13
14TF_C=testit.c
[354]15TF_E=./testit
[484]16LDPATH=''
[553]17INCPATH=''
[484]18
[691]19SYSNAME='unknown'
20SHARED='-shared'
[730]21SHARED_CF=''
[725]22PKG_CONFIG=false
[750]23RUNTIME_DETECT=false
[691]24
[863]25PREFIX='/usr/local'
26PREFIX_BIN=''
27PREFIX_LIB=''
28PREFIX_INC=''
29PREFIX_MAN=''
30
[804]31CDROM="none"
[913]32OSS_DEV="none"
[827]33PROC_NET_DECNET="/proc/net/decnet"
[1237]34TTY_DEV="none"
[804]35
[927]36DEFAULT_GRP=''
37
[872]38AO_INST_DIR=''
[1062]39XMMS_INST_DIR=''
40
[1092]41LIBAO=true
42XMMS=true
43
[1062]44DEFAULT_RATE=''
45DEFAULT_CHANNELS=''
46DEFAULT_BITS=''
[872]47
[1065]48ALAW=true
49MULAW=true
50ALAW_RW=true
51MULAW_RW=true
52
[1086]53PROXY=true
54
[1199]55WITHOUT_CF=''
56
[1109]57MINIMAL=false
58
[1072]59TARGET_WIN32=false
60
[1092]61EXEC_HELPER=''
62
[1175]63ROAR_DRIVER_DEFAULT=''
[1208]64ROAR_DRIVER_CODEC=''
[1175]65
[484]66echo -n "checking for C compiler... "
[899]67if [ "$CC" != '' ]
[484]68then
[899]69 echo $CC
70else
71 CC=$(which gcc cc 2> /dev/null | grep ^/ | head -n 1)
72 if [ "$CC" = '' ]
73 then
74  echo 'none'
75  exit 1;
76 fi
77 echo $CC
[484]78fi
79
[725]80echo -n "checking for pkg-config... "
[727]81PKG_CONFIG=$(which pkg-config false 2> /dev/null | grep ^/ | head -n 1)
[725]82if $PKG_CONFIG --help > /dev/null 2> /dev/null
83then
84 echo $PKG_CONFIG
85else
86 echo no
87fi
88
[484]89#Makefile.conf not yet open, write it later
90
[691]91echo -n "checking for sysname... "
92SYSNAME=$(uname -s)
93echo "$SYSNAME"
[353]94
[484]95while [ "$1" != '' ]
96do
97 case "$1" in
98  '--help')
[862]99   echo '--help                      - This Help'
[1109]100   echo
[862]101   echo '--ldpath DIR                - Add DIR to (compile time) search list for libs'
102   echo '--incpath DIR               - Add DIR to search list for headers'
103   echo '--addpath DIR               - Add DIR/lib to lib, DIR/include to header search list'
[1109]104   echo
[862]105   echo '--cdrom DEV                 - Set default CDRum device'
[1237]106   echo '--tty DEV                   - Set default TTY'
[862]107   echo '--proc-net-decnet FILE      - Set DECnet file for DECnet support auto detecting'
108   echo '                              (ignore this on non-Linux)'
[1109]109   echo
110   echo '--no-LIB                    - disable library LIB'
[862]111   echo '--runtime-detect            - do as much as posible auto detecting on runtime (for distributors)'
[1109]112   echo
113   echo '--ao-install-dir DIR        - Set install dir for libao plugin'
114   echo '--xmms-install-dir DIR      - Set install dir for XMMS plugin'
115   echo
116   echo '--prefix DIR                - Set general prefix (default: '"$PREFIX"')'
117   echo '--prefix-bin DIR            - Set prefix for binarys (default: $PREFIX/bin)'
118   echo '--prefix-lib DIR            - Set prefix for librarys (default: $PREFIX/libs)'
119   echo '--prefix-inc DIR            - Set prefix for include files (default: $PREFIX/include)'
120   echo '--prefix-man DIR            - Set prefix for manpages (default: $PREFIX/man)'
121   echo
122   echo '--default-rate RATE         - Set default sample rate for roard and roarclients'
123   echo '--default-channels CHANNELS - Set default number of channels for roard and roarclients'
124   echo '--default-bits BITS         - Set default number of bits per sample for roard and roarclients'
[1175]125   echo '--default-driver DRIVER     - Set default driver for roard'
[1208]126   echo '--default-codec CODEC       - Set default codec used for the default driver'
[1109]127   echo
128   echo '--without-alaw              - Disable support of A-Law codec (de- and encoding)'
129   echo '--without-alaw-rw           - Disable support for writing A-Law (saves 8KB)'
130   echo '--without-mulaw             - Disable support of mu-Law codec (de- and encoding)'
131   echo '--without-mulaw-rw          - Disable support for writing mu-Law (saves 16KB)'
132   echo '--without-proxy             - Disable support for proxys'
133   echo
[1199]134   echo '--without-cf-cmd            - Disable support for command codecfilter'
135   echo
[1109]136   echo '--without-libao             - Disable build of libao plugin'
137   echo '--without-xmms              - Disable build of XMMS plugin'
138   echo
139   echo '--minimal                   - Disable all optional components'
140   echo '--target-win32              - Disable everything useful'
141   echo '--exec-helper HELPER        - Exec all test programms using this command (HELPER $cmd $args)'
142   echo '                              use '\''--exec-helper wine'\'' when building win32 binarys'
[484]143   exit 0;
144  ;;
145  '--ldpath')
146   LDPATH="$LDPATH -L$2"
147   shift;
148  ;;
[553]149  '--incpath')
150   INCPATH="$INCPATH -I$2"
151   shift;
152  ;;
153  '--addpath')
154   LDPATH="$LDPATH -L$2/lib/"
155   INCPATH="$INCPATH -I$2/include/"
156   shift;
157  ;;
[899]158  '--cc')
159   CC="$2"
160   shift;
161  ;;
[804]162  '--cdrom')
163   CDROM="$2"
164   shift;
165  ;;
[1237]166  '--tty')
167   TTY_DEV="$2"
168   shift;
169  ;;
[913]170  '--oss-dev')
171   OSS_DEV="$2"
172   shift;
173  ;;
[927]174  '--audio-group')
175   DEFAULT_GRP="$2"
176   shift;
177  ;;
[696]178  '--no-'*)
179   lib=$(echo "$1" | sed 's/^--no-//')
180   eval no_lib_$lib=true
181  ;;
[750]182  '--runtime-detect')
[864]183   RUNTIME_DETECT=true
184  ;;
[872]185  '--ao-install-dir')
186   AO_INST_DIR="$2"
187   shift;
188  ;;
[1057]189  '--xmms-install-dir')
190   XMMS_INST_DIR="$2"
191   shift;
192  ;;
[1062]193  '--default-rate')
194   DEFAULT_RATE="$2"
195   shift;
196  ;;
197  '--default-channels')
198   DEFAULT_CHANNELS="$2"
199   shift;
200  ;;
201  '--default-bits')
202   DEFAULT_BITS="$2"
203   shift;
204  ;;
[1175]205  '--default-driver')
206   ROAR_DRIVER_DEFAULT="$2"
207   shift;
208  ;;
[1208]209  '--default-codec')
210   ROAR_DRIVER_CODEC="$2"
211   shift;
212  ;;
[1065]213  '--without-alaw')
214   ALAW=false
215   ALAW_RW=false
216  ;;
217  '--without-alaw-rw')
218   ALAW_RW=false
219  ;;
220  '--without-mulaw')
221   MULAW=false
222   MULAW_RW=false
223  ;;
224  '--without-mulaw-rw')
225   MULAW_RW=false
226  ;;
[1086]227  '--without-proxy')
228   PROXY=false
229  ;;
[1199]230  '--without-cf-'*)
231   WITHOUT_CF="$WITHOUT_CF"' '$(echo "$1" | cut -d- -f5)
232  ;;
[1092]233  '--without-libao')
234   LIBAO=false
235   no_lib_ao=true
236  ;;
237  '--without-xmms')
238   XMMS=false
239  ;;
[1109]240  '--minimal')
241   MINIMAL=true
242   XMMS=false
243   LIBAO=false
244   PROXY=false
245   MULAW=false
246   MULAW_RW=false
247   ALAW=false
248   ALAW_RW=false
249  ;;
[864]250  '--prefix')
251   PREFIX="$2"
252   shift;
253  ;;
254  '--prefix-bin')
255   PREFIX_BIN="$2"
256   shift;
257  ;;
258  '--prefix-lib')
259   PREFIX_LIB="$2"
260   shift;
261  ;;
262  '--prefix-inc')
263   PREFIX_INC="$2"
264   shift;
265  ;;
266  '--prefix-man')
267   PREFIX_MAN="$2"
268   shift;
[750]269  ;;
[1092]270  '--exec-helper')
271   EXEC_HELPER="$2"
272   shift;
273  ;;
[1071]274  '--target-win32')
275   RUNTIME_DETECT=true
276   no_lib_dnet=true
[1072]277   TARGET_WIN32=true
[1088]278   PROXY=false
[1092]279   XMMS=false
[1071]280  ;;
[484]281 esac;
282
283 shift;
284done
285
286
[714]287CCTF="false"
[353]288
289test_lib () {
290 echo > $TF_C
291
292 echo -n "checking for $1... "
293 shift;
294
295 LIBS=''
296
297 while [ "$1" != '--' ]
298 do
299  LIBS="$LIBS -l$1"
300  shift;
301 done
302
303 shift;
304
[751]305 LIBS=$(echo "$LIBS" | sed 's/-l-l/-l/g; s/-l-L/-L/g;')
[725]306
[353]307 while [ "$1" != '' ]
308 do
309  echo "#include <$1>" >> $TF_C
310  shift;
311 done
312
313 echo 'int main (void) { return 0; }' >> $TF_C
314
315 $CCTF $LIBS 2> /dev/null;
316
317 R=$?
318
319 if [ "$R" = '0' ]
320 then
321  echo 'yes'
322 else
323  echo 'no'
324 fi
325
326 return $R
327}
328
[426]329test_lib_defmake () {
330 def="$1"
331 subdir="$2"
332 shift
333 shift
[725]334 name="$1"
[428]335 lib="$2"
[725]336 shift
[426]337
[429]338 [ "$subdir" = '%' ] && subdir=''
339
[698]340 if [ "$lib" != '--' ]
[696]341 then
[698]342  eval _no="\$no_lib_$lib";
[1109]343  $MINIMAL && _no='XXX'
[698]344
345  if [ "$_no" != '' ]
346  then
347    echo "checking for $1... disabled by user"
348   [ "$subdir" != '' ] && \
349    echo "subdir_$subdir=" >&4
350   echo "lib_$lib=" >&4
351   return;
352  fi
[696]353 fi
354
[725]355 LIBS=$($PKG_CONFIG --silence-errors --libs $lib)
356 if [ "$?" != '0' ]
357 then
358  LIBS="-l$lib"
359 fi
360
361 if test_lib "$name" $LIBS "$@"
[426]362 then
[1049]363  subdir_var='subdir_'"`echo $subdir | tr / _`"
[426]364  echo "#define $def"            >&3
365  [ "$subdir" != '' ] && \
[1049]366   echo "$subdir_var=$subdir" >&4
[725]367  echo "lib_$lib=$LIBS" >&4
[426]368 else
369  [ "$subdir" != '' ] && \
370   echo "subdir_$subdir=" >&4
[428]371  echo "lib_$lib=" >&4
[426]372 fi
373}
374
[748]375test_tool_defmake () {
376 DEF="$1"
377 NAME="$2"
378 shift;
379 shift;
380 echo -n "checking for $NAME... "
381
[750]382 if $RUNTIME_DETECT
[748]383 then
[750]384  echo "$1 (runtime detect)"
385 echo "#define $DEF "\""$1"\" >&3
[1109]386 elif $MINIMAL
387 then
388  echo "disabled by user (minimalstic build)"
[748]389 else
[750]390
391  LIST=$(which "$@" 2> /dev/null | grep ^/ | head -n 1)
392
393  if [ "$LIST" = '' ]
394  then
395   echo 'no'
396  else
397   echo $LIST
398   echo "#define $DEF "\""$LIST"\" >&3
399  fi
[748]400 fi
401}
402
[426]403exec 3> config.h 4> Makefile.conf
[353]404
[691]405if [ "$SYSNAME" = 'Darwin' ]
406then
407 echo "Adding $SYSNAME shared lib arguments..."
408 SHARED="$SHARED -fno-common -dynamiclib -compatibility_version 0.1 -current_version 0.1.0"
[730]409 SHARED_CF="$SHARED_CF -fno-common"
[713]410elif [ "$SYSNAME" = 'NetBSD' ]
411then
412 echo "Adding $SYSNAME libpath arguments..."
413 LDPATH="$LDPATH -L/usr/local/lib/"
[1170]414elif [ "$SYSNAME" = 'OpenBSD' ]
415then
416 echo "Adding $SYSNAME search path arguments..."
417 LDPATH="$LDPATH -L/usr/local/lib/"
418 INCPATH="$INCPATH -I/usr/local/include/"
[926]419elif [ "$SYSNAME" = 'FreeBSD' ]
420then
[927]421 echo "Adding $SYSNAME search path arguments..."
[926]422 LDPATH="$LDPATH -L/usr/local/lib/"
423 INCPATH="$INCPATH -I/usr/local/include/"
[927]424 [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='wheel'
[691]425fi
426
[863]427[ "$PREFIX_BIN" = '' ] && PREFIX_BIN="$PREFIX/bin/"
428[ "$PREFIX_LIB" = '' ] && PREFIX_LIB="$PREFIX/lib/"
429[ "$PREFIX_INC" = '' ] && PREFIX_INC="$PREFIX/include/"
430[ "$PREFIX_MAN" = '' ] && PREFIX_MAN="$PREFIX/share/man/"
431
[927]432[ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='audio'
433
[714]434# now write the cc name to Makefile.conf
[863]435{
436 echo "SHARED=$SHARED"
437 echo "SHARED_CF=$SHARED_CF"
438 echo "CC=$CC"
439 echo "LDPATH=$LDPATH"
440 echo "INCPATH=$INCPATH"
441 echo "PREFIX=$PREFIX"
442 echo "PREFIX_BIN=$PREFIX_BIN"
443 echo "PREFIX_LIB=$PREFIX_LIB"
444 echo "PREFIX_INC=$PREFIX_INC"
445 echo "PREFIX_MAN=$PREFIX_MAN"
446} >&4
[714]447
[1055]448CCTF="$CC $LDPATH $INCPATH -Iinclude/ -o $TF_E $TF_C"
[691]449
[353]450cat >&3 << EOF
451//config.h:
452
453#ifndef _ROARAUDIO_CONFIG_H_
454#define _ROARAUDIO_CONFIG_H_
455
456EOF
457
458{
459 echo '/* uname: ' $(uname -a) '*/'
460 echo '/* Date : ' $(date)  '*/'
461 echo
[1175]462 [ "$DEFAULT_RATE"        = '' ] || echo "#define ROAR_RATE_DEFAULT     $DEFAULT_RATE"
463 [ "$DEFAULT_CHANNELS"    = '' ] || echo "#define ROAR_CHANNELS_DEFAULT $DEFAULT_CHANNELS"
464 [ "$DEFAULT_BITS"        = '' ] || echo "#define ROAR_BITS_DEFAULT     $DEFAULT_BITS"
465 [ "$ROAR_DRIVER_DEFAULT" = '' ] || echo "#define ROAR_DRIVER_DEFAULT   \"$ROAR_DRIVER_DEFAULT\""
[1208]466 [ "$ROAR_DRIVER_CODEC"   = '' ] || echo "#define ROAR_DRIVER_CODEC     \"$ROAR_DRIVER_CODEC\""
[1062]467 echo
[1065]468 $ALAW     && echo '#define ROAR_SUPPORT_ALAW'
469 $ALAW_RW  && echo '#define ROAR_SUPPORT_ALAW_RW'
470 $MULAW    && echo '#define ROAR_SUPPORT_MULAW'
471 $MULAW_RW && echo '#define ROAR_SUPPORT_MULAW_RW'
[1086]472 $PROXY    && echo '#define ROAR_SUPPORT_PROXY'
473 echo
[1199]474
475 for i in $WITHOUT_CF
476 do
477  i=$(echo $i | tr /a-z/ /A-Z/);
478  echo '#define ROAR_WITHOUT_CF_'$i
479 done
480
481 echo
[1072]482 $TARGET_WIN32 && echo '#define ROAR_TARGET_WIN32'
[1176]483                  echo '#define ROAR_OS_'$(echo $SYSNAME | tr a-z A-Z)
[1065]484 echo
[353]485} >&3
486
[1286]487#                 #define                   name         cmds...
488test_tool_defmake ROAR_HAVE_BIN_OGG123      ogg123       ogg123
489test_tool_defmake ROAR_HAVE_BIN_FLAC        flac         flac
490test_tool_defmake ROAR_HAVE_BIN_TIMIDITY    TiMidity++   timidity
491test_tool_defmake ROAR_HAVE_BIN_CDPARANOIA  cdparanoia   cdparanoia
492test_tool_defmake ROAR_HAVE_BIN_WGET        Wget         wget
493test_tool_defmake ROAR_HAVE_BIN_GNUPLOT     gnuplot      gnuplot
494test_tool_defmake ROAR_HAVE_BIN_SSH         OpenSSH      ssh
495test_tool_defmake ROAR_HAVE_BIN_PINENTRY    PIN-Entry    pinentry
496test_tool_defmake ROAR_HAVE_BIN_SSH_ASKPASS SSH-AskPass  ssh-askpass
497test_tool_defmake ROAR_HAVE_BIN_GZIP        Gzip         gzip
498test_tool_defmake ROAR_HAVE_BIN_GPG         GnuPG        gpg
[748]499
500echo >&3
501
[1101]502#                #define                 subdir       name           -lxxx      -- header
503test_lib_defmake ROAR_HAVE_LIBM          %            'Math Library' m          -- math.h
[363]504if test_lib 'realtime Library' rt -- sys/mman.h mqueue.h semaphore.h
505then
506 {
507  echo '#define ROAR_HAVE_LIBRT'
508  echo '#define ROAR_NEED_LIBRT'
509 } >&3
510fi
511
512echo >&3
513
[500]514#                #define                 subdir       name          -lxxx      -- header
515test_lib_defmake ROAR_HAVE_ESD           libroaresd   EsounD        esd        -- esd.h
[1049]516test_lib_defmake ROAR_HAVE_LIBAO         plugins/ao   libao         ao         -- ao/ao.h ao/plugin.h
[500]517test_lib_defmake ROAR_HAVE_LIBVORBIS     %            libvorbis     vorbis     -- vorbis/codec.h
518test_lib_defmake ROAR_HAVE_LIBVORBISFILE %            libvorbisfile vorbisfile -- vorbis/vorbisfile.h
[568]519test_lib_defmake ROAR_HAVE_LIBVORBISENC  %            libvorbisenc  vorbisenc  -- vorbis/vorbisenc.h
[500]520test_lib_defmake ROAR_HAVE_LIBSPEEX      %            libspeex      speex      -- speex/speex.h speex/speex_stereo.h
[1136]521test_lib_defmake ROAR_HAVE_LIBSPEEXDSP   %            libspeexdsp   speexdsp   -- speex/speex.h speex/speex_stereo.h
[500]522test_lib_defmake ROAR_HAVE_LIBCELT       %            libcelt       celt       -- celt/celt.h celt/celt_header.h
523test_lib_defmake ROAR_HAVE_LIBOGGZ       %            liboggz       oggz       -- oggz/oggz.h
524test_lib_defmake ROAR_HAVE_LIBSNDFILE    %            libsndfile    sndfile    -- sndfile.h
525test_lib_defmake ROAR_HAVE_LIBFISHSOUND  roarfish     libfishsound  fishsound  -- fishsound/fishsound.h
[604]526test_lib_defmake ROAR_HAVE_LIBSHOUT      %            libshout      shout      -- shout/shout.h
[500]527test_lib_defmake ROAR_HAVE_LIBPULSE      libroarpulse libpulse      pulse      -- pulse/pulseaudio.h pulse/simple.h
528test_lib_defmake ROAR_HAVE_LIBY2         libroaryiff  libyiff       Y2         -- Y2/Y.h Y2/Ylib.h
529test_lib_defmake ROAR_HAVE_LIBARTSC      libroararts  libartsc      artsc      -- kde/artsc/artsc.h
[921]530test_lib_defmake ROAR_HAVE_LIBOSSAUDIO   %            libossaudio   ossaudio   -- sys/ioctl.h
[1313]531test_lib_defmake ROAR_HAVE_LIBSSL        %            OpenSSL       ssl        -- openssl/bio.h openssl/evp.h
[500]532test_lib_defmake ROAR_HAVE_LIBDNET       %            libdnet       dnet       -- sys/socket.h netdnet/dn.h netdnet/dnetdb.h
[1173]533test_lib_defmake ROAR_HAVE_UNIX          %            UNIX          c          -- sys/types.h sys/socket.h sys/un.h
[725]534test_lib_defmake ROAR_HAVE_IPX           %            IPX           c          -- netipx/ipx.h
[914]535test_lib_defmake ROAR_HAVE_OSS           %            OSS           c          -- sys/ioctl.h sys/soundcard.h
536test_lib_defmake ROAR_HAVE_OSS_BSD       %            BSDOSS        c          -- sys/ioctl.h soundcard.h
[1091]537test_lib_defmake ROAR_HAVE_LIBWSOCK32    %            WinSockP0     wsock32    -- winsock2.h
538test_lib_defmake ROAR_HAVE_LIBWS2_32     %            WinSockP1     ws2_32     -- winsock2.h
[353]539
[1180]540echo >&3
541
[353]542# add a better test here
543test_lib 'linux sendfile()'       -- sys/sendfile.h && echo '#define ROAR_HAVE_LINUX_SENDFILE' >&3
544
545
[890]546echo -n 'checking for IPv6... '
547
548echo '#include <sys/socket.h>'  > $TF_C
549echo '#include <netinet/in.h>' >> $TF_C
550echo 'int main (void) { struct sockaddr_in6 in6; return 0; }' >> $TF_C
551
552if $CCTF 2> /dev/null;
553then
554 echo '#define ROAR_HAVE_IPV6' >&3
555 echo yes
556else
557 echo no
558fi
559
560
[353]561echo -n 'checking for mlock()... '
562
563echo '#include <sys/mman.h>' > $TF_C
564echo 'int main (void) { mlock((void*)0, 0); return 0; }' >> $TF_C
565
566if $CCTF 2> /dev/null;
567then
568 echo '#define ROAR_HAVE_MLOCK' >&3
569 echo yes
570else
571 echo no
572fi
573
[1170]574echo -n 'checking for fdatasync()... '
575
576echo '#include <unistd.h>' > $TF_C
577echo 'int main (void) { fdatasync(0); return 0; }' >> $TF_C
578
579if $CCTF 2> /dev/null;
580then
581 echo '#define ROAR_HAVE_FDATASYNC' >&3
[1171]582 echo '#define ROAR_FDATASYNC fdatasync' >&3
[1170]583 echo yes
584else
[1171]585 echo '#define ROAR_FDATASYNC fsync' >&3
[1170]586 echo no
587fi
588
[1248]589echo -n 'checking for fopencookie()... '
590
591echo '#define _GNU_SOURCE' > $TF_C
592echo '#include <stdio.h>' >> $TF_C
593echo 'int main (void) { cookie_io_functions_t f; fopencookie(NULL, "", f); return 0; }' >> $TF_C
594
595if $CCTF 2> /dev/null;
596then
597 echo '#define ROAR_HAVE_FOPENCOOKIE' >&3
[1250]598 echo '#define ROAR_NEED_GNU_SOURCE' >&3
[1248]599 echo yes
600else
601 echo no
602fi
603
[1249]604echo -n 'checking for funopen()... '
605
606echo '#define __BSD_VISIBLE 1'  > $TF_C
607echo '#include <stdio.h>'      >> $TF_C
608echo 'int main (void) { funopen(NULL, NULL, NULL, NULL, NULL); return 0; }' >> $TF_C
609
610if $CCTF 2> /dev/null;
611then
612 echo '#define ROAR_HAVE_FUNOPEN' >&3
613 echo '#define ROAR_NEED_BSD_VISIBLE' >&3
614 echo yes
615else
616 echo no
617fi
618
[1019]619echo -n 'checking for square root func... '
620
[1034]621echo "$SYSNAME" | if grep CYGWIN > /dev/null
[1019]622then
[1034]623 echo 'sqrt() (cygwin)'
[1019]624else
[1034]625 echo '#include <math.h>' > $TF_C
626 echo 'int main (void) { sqrtl(0); return 0; }' >> $TF_C
627
628 if $CCTF -lm 2> /dev/null;
629 then
630  echo '#define ROAR_HAVE_SQRTL' >&3
631  echo 'sqrtl()'
632 else
633  echo 'sqrt()'
634 fi
[1019]635fi
636
[697]637echo -n 'checking for inline funcs... '
638
639echo 'inline int test (void) { return 0; }' > $TF_C
640echo 'int main (void) { return test(); }'  >> $TF_C
641
642if $CCTF 2> /dev/null;
643then
644 echo '#define ROAR_HAVE_INLINE' >&3
645 echo yes
646else
647 echo no
648fi
649
[1055]650echo -n 'checking for broken peercred... '
651echo '#include <roaraudio.h>' > $TF_C
652echo 'int main (void) { struct ucred cred; return 0; }'  >> $TF_C
653
654if $CCTF 2> /dev/null;
655then
656 echo working
657else
658 echo '#define ROAR_BROKEN_PEERCRED' >&3
659 echo broken
660fi
661
[1180]662echo -n 'checking for getpeereid()... '
663echo '#include <roaraudio.h>' > $TF_C
664echo 'int main (void) { getpeereid(0, NULL, NULL); return 0; }'  >> $TF_C
665
666if $CCTF 2> /dev/null;
667then
668 echo '#define ROAR_HAVE_GETPEEREID' >&3
669 echo yes
670else
671 echo no
672fi
673
[420]674echo -n 'checking for safe 32 bit integer overflow... '
[354]675
676cat > $TF_C << EOF
677#include <stdio.h>
678#include <stdint.h>
679#define TYPE uint32_t
680#define MAX  ((TYPE)4294967295U)
681
682int main (void) {
683 TYPE a = MAX;
684
685 a += 2;
686
687 if ( a == 1 ) {
688  printf("#define ROAR_HAVE_SAFE_OVERFLOW\n");
689  return 0;
690 }
691
692 return 1;
693}
694EOF
695
696if $CCTF 2> /dev/null;
697then
[1092]698 $EXEC_HELPER $TF_E >&3
[354]699 if [ "$?" = '0' ]
700 then
701  echo yes
702 else
703  echo no
704 fi
705else
706 echo 'no (can not compile!, no stdint.h?)'
707fi
708
[781]709echo -n 'checking for __LP64__... '
710cat > $TF_C << EOF
711#include <stdio.h>
712
713int main (void) {
714#ifdef __LP64__
715 fprintf(stderr, "set by compiler\n");
716#else
717 if ( sizeof(int) == sizeof(void*) ) {
718  fprintf(stderr, "no need to set\n");
719 } else {
720  fprintf(stderr, "need to set\n");
721  printf("\n#ifndef __LP64__\n#define __LP64__\n#endif\n\n");
722 }
723#endif
724 return 0;
725}
726EOF
727if $CCTF 2> /dev/null;
728then
[1092]729 $EXEC_HELPER $TF_E >&3
[781]730else
731 echo 'error, can not compile'
732 exit 1
733fi
734
[853]735echo -n 'checking for 64 bit types... '
736cat > $TF_C << EOF
737#include <stdio.h>
738#include <stdint.h>
739
740int main (void) {
741 char * i64 = NULL, * ui64 = NULL;
742
743 if ( sizeof(int) == 8 ) {
744  i64 = "int"; ui64 = "unsigned int";
745 } else if ( sizeof(long int) == 8 ) {
746  i64 = "long int"; ui64 = "unsigned long int";
747 } else if ( sizeof(long long int) == 8 ) {
748  i64 = "long long int"; ui64 = "unsigned long long int";
749 } else if ( sizeof(int64_t) == 8 ) {
750  i64 = "int64_t"; ui64 = "uint64_t";
751 } else {
752  fprintf(stderr, "none\n");
753  return 0;
754 }
755
756 fprintf(stderr, "%s, %s\n", i64, ui64);
757 printf("#define ROAR_NATIVE_INT64 %s\n#define ROAR_NATIVE_UINT64 %s\n", i64, ui64);
758
759 return 0;
760}
761EOF
762if $CCTF 2> /dev/null;
763then
[1092]764 $EXEC_HELPER $TF_E >&3
[853]765else
766 echo 'error, can not compile'
767 exit 1
768fi
769
770
[475]771echo -n 'checking if cp supports -v... '
772if cp -v --help > /dev/null 2> /dev/null
773then
774 echo "cp_v=-v" >&4
775 echo yes
776else
777 echo "cp_v=" >&4
778 echo no
779fi
780
[804]781echo -n 'checking for cdrom device... '
782if [ -e "$CDROM" ]
783then
784 echo "$CDROM"
[924]785 echo '#define ROAR_DEFAULT_CDROM "'"$CDROM"'"' >&3
[804]786else
787 CDROM=$(ls /dev/cdrom /dev/rcd0c 2> /dev/null | head -n 1);
788 if [ -e "$CDROM" ]
789 then
790  echo "$CDROM"
791  echo '#define ROAR_DEFAULT_CDROM "'"$CDROM"'"' >&3
792 else
793  echo 'none'
794 fi
795fi
[475]796
[1237]797echo -n 'checking for default tty device... '
798if [ -e "$TTY_DEV" ]
799then
800 echo "$TTY_DEV"
801 echo '#define ROAR_DEFAULT_TTY "'"$TTY_DEV"'"' >&3
802else
803 TTY_DEV=$(ls /dev/tty 2> /dev/null | head -n 1);
804 if [ -e "$TTY_DEV" ]
805 then
806  echo "$TTY_DEV"
807  echo '#define ROAR_DEFAULT_TTY "'"$TTY_DEV"'"' >&3
808 else
809  echo 'none'
810 fi
811fi
812
[913]813echo -n 'checking for OSS device... '
814if [ -e "$OSS_DEV" ]
815then
816 echo "$OSS_DEV"
[924]817 echo '#define ROAR_DEFAULT_OSS_DEV "'"$OSS_DEV"'"' >&3
[913]818else
819 OSS_DEV=$(ls /dev/dsp /dev/audio 2> /dev/null | head -n 1);
820 if [ -e "$OSS_DEV" ]
821 then
822  echo "$OSS_DEV"
823  echo '#define ROAR_DEFAULT_OSS_DEV "'"$OSS_DEV"'"' >&3
824 else
825  echo 'none'
826 fi
827fi
828
[843]829echo 'checking for decnet status file... '"$PROC_NET_DECNET"
[827]830echo '#define ROAR_PROC_NET_DECNET "'"$PROC_NET_DECNET"'"' >&3
831
[927]832
833echo 'checking for default audio group... '"$DEFAULT_GRP"
834echo '#define ROAR_DEFAULT_SOCKGRP "'"$DEFAULT_GRP"'"' >&3
835
[353]836cat >&3 << EOF
837
838#endif
839
840//ll
841EOF
842
[1092]843cd plugins
844
845if $LIBAO
[872]846then
[1092]847 echo 'running libao plugin configure...'
848  cd ao/
849 if [ "$AO_INST_DIR" = '' ]
850 then
851  ./configure --force-have-roar
852 else
853  ./configure --force-have-roar --inst-dir "$AO_INST_DIR"
854 fi
855 cd ..
[872]856else
[1092]857 echo "running libao plugin configure... disabled by user"
[872]858fi
[1057]859
[1092]860if $XMMS
[1057]861then
[1092]862 echo 'running xmms plugin configure...'
863  cd xmms/
864 if [ "$XMMS_INST_DIR" = '' ]
865 then
866  ./configure --force-have-roar
867 else
868  ./configure --force-have-roar --inst-dir "$XMMS_INST_DIR"
869 fi
870 cd ..
[1057]871else
[1092]872 echo "running xmms plugin configure... disabled by user"
[1057]873fi
874
[1092]875cd ..
[872]876
[354]877rm -f $TF_C $TF_E
[353]878
[359]879mv config.h include/roaraudio/
880echo 'config.h created and moved into include/roaraudio/'
881
[898]882echo "$SYSNAME" | if grep CYGWIN > /dev/null
883then
[1034]884 rm -f $TF_E.exe
[898]885 echo 'patching Makefiles for cygwin...'
886 find . -name Makefile -print0 | xargs -0 sed 's/\.so/.dll'/g -i
887fi
888
[353]889#ll
Note: See TracBrowser for help on using the repository browser.