#!/bin/sh CWD="`pwd`" ROAR_BUILDSYSTEM_DIR="$CWD/build-system" ROAR_BUILDSYSTEM_DEFPREFIX="ROAR_" . "$ROAR_BUILDSYSTEM_DIR/configure.all" PATH="$PATH":/sbin:/usr/sbin:/usr/local/sbin:/usr/pkg/sbin # Ensure superuser paths PATH="$PATH":/usr/lib/ssh:/usr/lib/openssh # Ensure SSH paths #set -x # IDs officaly assigned set_dev_vendor 0 'RoarAudio' set_std_vendor 0 'RoarAudio' #-------- COMPBIN_SUFFIX='.r' RUNTIME_DETECT=false PREFIX_COMP_LIBS='' PREFIX_COMP_BINS='' PREFIX_PLUGINS='' PREFIX_BUILDSYSTEM='' CDROM_IS_DEV=true CDROM="" OSS_DEV="" OSS_MIX_DEV="" PROC_NET_DECNET="/proc/net/decnet" PROC_NET_DECNET_NEIGH="" PROC_NET_ARP="" TTY_DEV="" VORBIS_BITS=32 FSYNC=false DEFAULT_GRP='' AO_INST_DIR='' XMMS_INST_DIR='' AUDACIOUS_INST_DIR='' SNDIO_EMUL=true LIBAO=true XMMS=true AUDACIOUS=true DEFAULT_RATE='' DEFAULT_CHANNELS='' DEFAULT_BITS='' COMP_LIBS=true COMP_ROARD=true COMP_CLIENTS=true COMP_DOC=true COMP_COMP_BINS=true COMP_PLUGINS=true ALAW=true MULAW=true ALAW_RW=true MULAW_RW=true PROXY=true PASSWORD_API=true NO_LISTEN=false META_DATA=true SUPPORT_TRAP=false USE_MEMMGR=false WITHOUT_CF='cmd' WITHOUT_VIO='' WITHOUT_DCOMP='' ROAR_DRIVER_DEFAULT='' ROAR_DRIVER_DEVICE='' ROAR_DRIVER_CODEC='' ROARD_BITS='' # Bits per sample used by roard. ROARD_CFREQ='' # cycle frequens for roard, normally 100Hz # Libs which are per default disabled: no_lib_ssl=true no_lib_gcrypt=true test_pkgversion test_buildstamp test_cc test_ranlib test_pkgconfig test_sysname #Makefile.conf not yet open, write it later while [ "$1" != '' ] do parse_option "$@" shift $SHIFT_COUNT $HANDLED && continue; case "$1" in '--help') write_help echo 'OPTIONS:' echo echo '--help - This Help' echo echo '--cdrom DEV - Set default CDRum device' echo '--tty DEV - Set default TTY' echo '--oss-dev DEV - Set default OSS device' echo '--oss-mixer-dev DEV - Set default OSS mixer device' echo '--proc-net-decnet FILE - Set DECnet file for DECnet support auto detecting' echo ' (ignore this on non-Linux)' echo '--proc-net-decnet-neigh FILE' echo ' - Set file for DECnet neighbour table' echo '--proc-net-arp FILE - Set file for IP neighbour (ARP) table' echo '--audio-group GROUP - Sets group of audio permitted users' echo echo '--runtime-detect - do as much as posible auto detecting on runtime (for distributors)' echo echo '--ao-install-dir DIR - Set install dir for libao plugin' echo '--xmms-install-dir DIR - Set install dir for XMMS plugin' echo '--audacious-install-dir DIR - Set install dir for Audacious plugin' echo echo '--prefix-comp-libs DIR - Set prefix for compatibility libraries (default: $PREFIX_LIB/roaraudio/complibs)' echo '--prefix-comp-bins DIR - Set prefix for compatibility binaries (default: $PREFIX_LIB/roaraudio/compbins)' echo '--prefix-plugins DIR - Set prefix for plugin search path (default: $PREFIX_LIB/roaraudio/plugins)' echo '--prefix-buildsystem DIR - Set prefix for plugin search path (default: $PREFIX_LIB/roaraudio/build-system)' echo echo '--default-rate RATE - Set default sample rate for roard and roarclients' echo '--default-channels CHANNELS - Set default number of channels for roard and roarclients' echo '--default-bits BITS - Set default number of bits per sample for roarclients' echo '--default-driver DRIVER - Set default driver for roard' echo '--default-device DEVICE - Set default device for roard. Should only be used with --default-driver' echo '--default-codec CODEC - Set default codec used for the default driver' echo echo '--without-alaw - Disable support of A-Law codec (de- and encoding)' echo '--without-alaw-rw - Disable support for writing A-Law (saves 8KB)' echo '--without-mulaw - Disable support of mu-Law codec (de- and encoding)' echo '--without-mulaw-rw - Disable support for writing mu-Law (saves 16KB)' echo '--without-proxy - Disable support for proxies' echo echo '--without-comp-libs - Disable build of libraries' echo '--without-comp-roard - Disable build of roard' echo '--without-comp-clients - Disable build of clients' echo '--without-comp-doc - Disable build of documentation' echo '--without-comp-comp-bins - Disable build of compatibility binaries' echo echo '--without-dcomp-COMP - Disable build of roard'\''s component COMP' echo echo '--without-meta-data - Disable support for Meta Data' echo echo '--without-cf-cmd - Disable support for command codecfilter' echo echo '--without-vio-MODULE - Disable support for VIO module MODULE' echo echo '--without-password-api - Disable build of Password API' echo '--with-trap-api - Build with Trap support' echo echo '--with-memory-api - Use internal memory API (memmgr)' echo '--without-memory-api - Do not use internal memory API (memmgr)' echo echo '--without-listen - Disable listening sockets in roard' echo ' This is the same as allways using --no-listen' echo echo '--roard-cfreq FREQ - Sets the cycle frequency of roard in Hz' echo '--roard-bits BITS - Sets the number of bits per sample used by roard' echo '--vorbis-bits BITS - Sets bits per sample used by Vorbis code' echo # echo '--without-libao - Disable build of libao plugin' echo '--without-xmms - Disable build of XMMS plugin' # echo '--without-audacious - Disable build of Audacious plugin' echo echo '--minimal - Disable all optional components' echo '--cross-compile - Enable cross compiler workarounds' echo '--target-microcontroller - Set Options for mircocontrollers without a OS' echo ' Implys --cross-compile' echo echo echo 'LIBRARY NAMES (to be used with --no-* and --maybe-*):' echo grep '^test_lib_defmake ROAR_' configure | awk '{print $5 == "c" ? $4 : $5}' | grep -v '\.h'\''*$' | \ cut -d/ -f1 | sort | uniq | grep -v ^c$ | \ while read lib do envlib=`echo "$lib" | to_escaped` eval _no="\$no_lib_$envlib"; if [ "$_no" != '' ] then echo -n "$lib (disabled) " else echo -n "$lib " fi done echo '' # print \n exit 0; ;; '--cdrom') CDROM="$2" shift; ;; '--tty') TTY_DEV="$2" shift; ;; '--oss-dev') OSS_DEV="$2" shift; ;; '--oss-mixer-dev') OSS_MIX_DEV="$2" shift; ;; '--proc-net-decnet') PROC_NET_DECNET="$2" shift; ;; '--proc-net-decnet-neigh') PROC_NET_DECNET_NEIGH="$2" shift; ;; '--proc-net-arp') PROC_NET_ARP="$2" shift; ;; '--audio-group') DEFAULT_GRP="$2" shift; ;; '--runtime-detect') RUNTIME_DETECT=true ;; '--ao-install-dir') AO_INST_DIR="$2" shift; ;; '--xmms-install-dir') XMMS_INST_DIR="$2" shift; ;; '--audacious-install-dir') AUDACIOUS_INST_DIR="$2" shift; ;; '--default-rate') DEFAULT_RATE="$2" shift; ;; '--default-channels') DEFAULT_CHANNELS="$2" shift; ;; '--default-bits') DEFAULT_BITS="$2" shift; ;; '--default-driver') ROAR_DRIVER_DEFAULT="$2" shift; ;; '--default-device') ROAR_DRIVER_DEVICE="$2" shift; ;; '--default-codec') ROAR_DRIVER_CODEC="$2" shift; ;; '--without-alaw') ALAW=false ALAW_RW=false ;; '--without-alaw-rw') ALAW_RW=false ;; '--without-mulaw') MULAW=false MULAW_RW=false ;; '--without-mulaw-rw') MULAW_RW=false ;; '--without-proxy') PROXY=false ;; '--without-comp-libs') COMP_LIBS=false ;; '--without-comp-roard') COMP_ROARD=false ;; '--without-comp-clients') COMP_CLIENTS=false ;; '--without-comp-doc') COMP_DOC=false ;; '--without-comp-comp-bins') COMP_COMP_BINS=false ;; '--without-comp-plugins') COMP_PLUGINS=false ;; '--without-meta-data') META_DATA=false ;; '--without-cf-'*) WITHOUT_CF="$WITHOUT_CF"' '$(echo "$1" | cut -d- -f5) ;; '--without-vio-'*) WITHOUT_VIO="$WITHOUT_VIO"' '$(echo "$1" | cut -d- -f5) ;; '--without-dcomp-'*) WITHOUT_DCOMP="$WITHOUT_DCOMP"' '$(echo "$1" | cut -d- -f5) ;; '--without-password-api') PASSWORD_API=false ;; '--with-trap-api') SUPPORT_TRAP=true ;; '--with-memory-api'|'--use-memory-api') USE_MEMMGR=true ;; '--without-memory-api') USE_MEMMGR=false ;; '--without-listen') NO_LISTEN=true ;; '--roard-cfreq') ROARD_CFREQ="$2" shift; ;; '--roard-bits') ROARD_BITS="$2" shift; ;; '--vorbis-bits') VORBIS_BITS="$2" shift; ;; '--without-libao') LIBAO=false no_lib_ao=true ;; '--without-xmms') XMMS=false ;; '--without-audacious') AUDACIOUS=false ;; '--minimal') MINIMAL=true RUNTIME_DETECT=false XMMS=false AUDACIOUS=false LIBAO=false PROXY=false MULAW=false MULAW_RW=false ALAW=false ALAW_RW=false META_DATA=false PASSWORD_API=false SUPPORT_TRAP=false USE_MEMMGR=false COMP_PLUGINS=false WITHOUT_VIO="$WITHOUT_VIO"' cmd stdio' WITHOUT_CF="$WITHOUT_CF"' wave cmd cf au' WITHOUT_DCOMP="$WITHOUT_DCOMP"' sources ssynth cb midi light raw rdtcs cdriver emul_esd emul_simple emul_rsound emul_rplay emul_gopher mixer' ;; # we should remove --prefix-comp soon '--prefix-comp'|'--prefix-comp-libs') PREFIX_COMP_LIBS="$2" shift; ;; '--prefix-comp-bins') PREFIX_COMP_BINS="$2" shift; ;; '--prefix-plugins') PREFIX_PLUGINS="$2" shift; ;; '--prefix-buildsystem') PREFIX_BUILDSYSTEM="$2" shift; ;; #################################### # autof* options block: '--prefix-comp-libs='*) PREFIX_COMP_LIBS=$(echo "$1" | cut -d= -f2) ;; '--prefix-comp-bins='*) PREFIX_COMP_BINS=$(echo "$1" | cut -d= -f2) ;; '--prefix-plugins='*) PREFIX_PLUGINS=$(echo "$1" | cut -d= -f2) ;; '--prefix-buildsystem='*) PREFIX_BUILDSYSTEM=$(echo "$1" | cut -d= -f2) ;; #################################### '--cross-compile') CROSS_COMPILE=true RUNTIME_DETECT=true ;; '--target-microcontroller') TARGET_MICROCONTROLLER=true CROSS_COMPILE=true RUNTIME_DETECT=true HAVE_MAIN_ARGS=false XMMS=false AUDACIOUS=false LIBAO=false WITHOUT_VIO="$WITHOUT_VIO"' cmd' ;; esac; shift; done [ "$no_lib_yiff" != '' ] && no_lib_y2=true if $BETA then : else WITHOUT_DCOMP="$WITHOUT_DCOMP"' rdtcs' no_lib_gcrypt=true no_lib_jack=true no_lib_dbus_1=true no_lib_flac=true fi if $EXPERIMENTAL then : else : # Add list of experimental things here. fi open_configure_files update_target if $TARGET_WIN32 then CROSS_COMPILE=true RUNTIME_DETECT=true no_lib_dnet=true PROXY=false LIBAO=false XMMS=false AUDACIOUS=false WITHOUT_VIO="$WITHOUT_VIO"' pipe cmd' # hope that with buffered pipes we can remove this soon WITHOUT_DCOMP="$WITHOUT_DCOMP"' cb' # [ "$ROARD_CFREQ" = '' ] && ROARD_CFREQ=20 [ "$ROARD_BITS" = '' ] && ROARD_BITS=16 fi if [ "$SYSNAME" = 'FreeBSD' ] then echo "Adding $SYSNAME search path arguments..." [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='wheel' elif $TARGET_WIN32 then echo "Adding win32 build arguments..." COMPBIN_SUFFIX='.bat' elif $TARGET_CYGWIN then echo "Adding cygwin build arguments..." COMPBIN_SUFFIX='.bat' fi test_crosscompile update_prefixes [ "$PREFIX_COMP_LIBS" = '' ] && PREFIX_COMP_LIBS="$PREFIX_LIB/roaraudio/complibs/" [ "$PREFIX_COMP_BINS" = '' ] && PREFIX_COMP_BINS="$PREFIX_LIB/roaraudio/compbins/" [ "$PREFIX_PLUGINS" = '' ] && PREFIX_PLUGINS="$PREFIX_LIB/roaraudio/plugins/" [ "$PREFIX_BUILDSYSTEM" = '' ] && PREFIX_BUILDSYSTEM="$PREFIX_LIB/roaraudio/build-system/" [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='audio' update_ccft update_cc test_wextra # now write the cc name to Makefile.conf write_header_makefileconf { echo "COMPBIN_SUFFIX=$COMPBIN_SUFFIX" echo echo "PREFIX_COMP_LIBS=$PREFIX_COMP_LIBS" echo "PREFIX_COMP_BINS=$PREFIX_COMP_BINS" echo "PREFIX_PLUGINS=$PREFIX_PLUGINS" echo "PREFIX_BUILDSYSTEM=$PREFIX_BUILDSYSTEM" echo $COMP_LIBS && echo "comp_libs=libroar libroardsp libroarmidi libroarlight libroareio" $COMP_ROARD && echo "comp_roard=roard" $COMP_CLIENTS && echo "comp_clients=roarclients" $COMP_DOC && echo "comp_doc=doc" $COMP_COMP_BINS && echo "comp_comp_bins=compbins" echo $SNDIO_EMUL && echo "subdir_libroarsndio=libroarsndio" echo "subdir_libroaross=libroaross" # this builds an empty file in case of not supported } >&4 write_header_configlog RUNTIME_DETECT write_header_configh _ROARAUDIO_CONFIG_H_ { echo "#define ROAR_VERSION_STRING \"$VERSION\"" grep -E '^COMMON_V_(MAJOR|MINOR|REV) *= [0-9]*$' Makefile.inc | sed 's/^COMMON_V_/#define ROAR_VERSION_/; s/=//' echo '#define ROAR_VERSION_COMMON_REAL0(a,b,c) (#a "." #b "." #c)' echo '#define ROAR_VERSION_COMMON_REAL1(a,b,c) ROAR_VERSION_COMMON_REAL0(a,b,c)' echo '#define ROAR_VERSION_COMMON ROAR_VERSION_COMMON_REAL1(ROAR_VERSION_MAJOR, ROAR_VERSION_MINOR, ROAR_VERSION_REV)' echo "#define ROAR_VERSION_DISTRIBUTION_STRING \"$DISTRIBUTION_VERSION_STRING\"" echo "#define ROAR_BUILD_STAMP \"$BUILD_STAMP\"" echo echo "#define ROAR_DEV_VENDOR $DEV_VENDOR" echo "#define ROAR_DEV_VENDOR_NAME \"$DEV_VENDOR_NAME\"" echo "#define ROAR_DEV_VENDOR_STRING \"$DEV_VENDOR_STRING\"" echo [ "$DEFAULT_RATE" = '' ] || echo "#define ROAR_RATE_DEFAULT $DEFAULT_RATE" [ "$DEFAULT_CHANNELS" = '' ] || echo "#define ROAR_CHANNELS_DEFAULT $DEFAULT_CHANNELS" [ "$DEFAULT_BITS" = '' ] || echo "#define ROAR_BITS_DEFAULT $DEFAULT_BITS" [ "$ROAR_DRIVER_DEFAULT" = '' ] || echo "#define ROAR_DRIVER_DEFAULT \"$ROAR_DRIVER_DEFAULT\"" [ "$ROAR_DRIVER_DEVICE" = '' ] || echo "#define ROAR_DRIVER_DEVICE \"$ROAR_DRIVER_DEVICE\"" [ "$ROAR_DRIVER_CODEC" = '' ] || echo "#define ROAR_DRIVER_CODEC \"$ROAR_DRIVER_CODEC\"" echo [ "$ROARD_CFREQ" = '' ] || echo "#define ROAR_OUTPUT_CFREQ $ROARD_CFREQ" [ "$ROARD_BITS" = '' ] || echo "#define ROAR_ROARD_BITS $ROARD_BITS" echo "#define ROAR_VORBIS_BITS $VORBIS_BITS" echo echo "#define ROAR_SHARED_SUFFIX \"$SHARED_SUFFIX\"" echo echo "#define ROAR_PREFIX \"$PREFIX\"" echo "#define ROAR_PREFIX_BIN \"$PREFIX_BIN\"" echo "#define ROAR_PREFIX_SBIN \"$PREFIX_SBIN\"" echo "#define ROAR_PREFIX_LIB \"$PREFIX_LIB\"" echo "#define ROAR_PREFIX_INC \"$PREFIX_INC\"" echo "#define ROAR_PREFIX_MAN \"$PREFIX_MAN\"" echo "#define ROAR_PREFIX_PC \"$PREFIX_PC\"" echo "#define ROAR_PREFIX_CKPORT \"$PREFIX_CKPORT\"" echo "#define ROAR_PREFIX_SYSCONF \"$PREFIX_SYSCONF\"" echo "#define ROAR_PREFIX_DEV \"$PREFIX_DEV\"" echo "#define ROAR_PREFIX_DOC \"$PREFIX_DOC\"" echo "#define ROAR_PREFIX_TMP \"$PREFIX_TMP\"" echo "#define ROAR_PREFIX_VAR \"$PREFIX_VAR\"" echo "#define ROAR_PREFIX_CACHE \"$PREFIX_CACHE\"" echo "#define ROAR_PREFIX_DATA \"$PREFIX_DATA\"" echo "#define ROAR_PREFIX_LOCK \"$PREFIX_LOCK\"" echo "#define ROAR_PREFIX_LOG \"$PREFIX_LOG\"" echo "#define ROAR_PREFIX_MAIL \"$PREFIX_MAIL\"" echo "#define ROAR_PREFIX_RUN \"$PREFIX_RUN\"" echo "#define ROAR_PREFIX_SPOOL \"$PREFIX_SPOOL\"" echo "#define ROAR_PREFIX_COMP_LIBS \"$PREFIX_COMP_LIBS\"" echo "#define ROAR_PREFIX_COMP_BINS \"$PREFIX_COMP_BINS\"" echo "#define ROAR_PREFIX_PLUGINS \"$PREFIX_PLUGINS\"" echo "#define ROAR_PREFIX_BUILDSYSTEM \"$PREFIX_BUILDSYSTEM\"" echo $MINIMAL && echo '#define ROAR_MINIMAL' $BETA && echo '#define ROAR_BETA' $EXPERIMENTAL && echo '#define ROAR_EXPERIMENTAL' $ALAW && echo '#define ROAR_SUPPORT_ALAW' $ALAW_RW && echo '#define ROAR_SUPPORT_ALAW_RW' $MULAW && echo '#define ROAR_SUPPORT_MULAW' $MULAW_RW && echo '#define ROAR_SUPPORT_MULAW_RW' $PROXY && echo '#define ROAR_SUPPORT_PROXY' $PASSWORD_API && echo '#define ROAR_SUPPORT_PASSWORD_API' $SUPPORT_TRAP && echo '#define ROAR_SUPPORT_TRAP' $USE_MEMMGR && echo '#define ROAR_USE_MEMMGR' $NO_LISTEN || echo '#define ROAR_SUPPORT_LISTEN' $META_DATA && echo '#define ROAR_SUPPORT_META' echo $HAVE_MAIN_ARGS && echo '#define ROAR_HAVE_MAIN_ARGS' echo for i in $WITHOUT_CF do i=$(echo $i | to_upper); echo '#define ROAR_WITHOUT_CF_'$i done for i in $WITHOUT_VIO do i=$(echo $i | to_upper); echo '#define ROAR_WITHOUT_VIO_'$i done for i in $WITHOUT_DCOMP do i=$(echo $i | to_upper); echo '#define ROAR_WITHOUT_DCOMP_'$i done echo $TARGET_MICROCONTROLLER && echo '#define ROAR_TARGET_MICROCONTROLLER' $TARGET_WIN32 && echo '#define ROAR_TARGET_WIN32' $TARGET_CYGWIN && echo '#define ROAR_TARGET_CYGWIN' echo '#define ROAR_OS_'$(echo $SYSNAME | to_escaped | to_upper) echo } >&3 # test binary format. test_bin_format test_linkdeps # #define name cmds... test_tool_defmake ROAR_HAVE_BIN_SH sh sh test_tool_defmake ROAR_HAVE_BIN_OGG123 ogg123 ogg123 test_tool_defmake ROAR_HAVE_BIN_FLAC flac flac test_tool_defmake ROAR_HAVE_BIN_TIMIDITY TiMidity++ timidity test_tool_defmake ROAR_HAVE_BIN_CDPARANOIA cdparanoia cdparanoia test_tool_defmake ROAR_HAVE_BIN_GNUPLOT gnuplot gnuplot test_tool_defmake ROAR_HAVE_BIN_SSH OpenSSH ssh test_tool_defmake ROAR_HAVE_BIN_PINENTRY PIN-Entry pinentry test_tool_defmake ROAR_HAVE_BIN_SSH_ASKPASS SSH-AskPass ssh-askpass test_tool_defmake ROAR_HAVE_BIN_GTK_LED_ASKPASS GTK-LED-AskPass gtk-led-askpass test_tool_defmake ROAR_HAVE_BIN_X11_SSH_ASKPASS X11-SSH-AskPass x11-ssh-askpass test_tool_defmake ROAR_HAVE_BIN_GNOME_SSH_ASKPASS GNOME-SSH-AskPass gnome-ssh-askpass test_tool_defmake ROAR_HAVE_BIN_GPG GnuPG gpg test_tool_defmake ROAR_HAVE_BIN_EJECT eject eject echo >&3 echo >&5 echo >&5 echo >&5 # Those tests should not be disabled as they do not reduce the lib size just # break --minimal on full systems OLD_MINIMAL=$MINIMAL MINIMAL=false # Test haders: test_lib_defmake ROAR_HAVE_H_STDINT % stdint.h c -- stdint.h test_lib_defmake ROAR_HAVE_H_STRING % string.h c -- string.h test_lib_defmake ROAR_HAVE_H_SYS_TYPES % sys/types.h c -- sys/types.h test_lib_defmake ROAR_HAVE_H_SYS_SOCKET % sys/socket.h c -- sys/types.h sys/socket.h test_lib_defmake ROAR_HAVE_H_SYS_TIME % sys/time.h c -- sys/time.h test_lib_defmake ROAR_HAVE_H_SYS_IOCTL % sys/ioctl.h c -- sys/ioctl.h test_lib_defmake ROAR_HAVE_H_SYS_STAT % sys/stat.h c -- sys/types.h sys/stat.h test_lib_defmake ROAR_HAVE_H_SYS_REBOOT % sys/reboot.h c -- sys/reboot.h test_lib_defmake ROAR_HAVE_H_TIME % time.h c -- time.h test_lib_defmake ROAR_HAVE_H_FCNTL % fcntl.h c -- fcntl.h test_lib_defmake ROAR_HAVE_H_UNISTD % unistd.h c -- unistd.h test_lib_defmake ROAR_HAVE_H_DIRENT % dirent.h c -- dirent.h test_lib_defmake ROAR_HAVE_H_STDLIB % stdlib.h c -- stdlib.h test_lib_defmake ROAR_HAVE_H_SIGNAL % signal.h c -- signal.h test_lib_defmake ROAR_HAVE_H_POLL % poll.h c -- poll.h test_lib_defmake ROAR_HAVE_H_MMSYSTEM % mmsystem.h c -- windows.h mmsystem.h test_lib_defmake ROAR_HAVE_H_ESD libroaresd esd.h c -- esd.h test_lib_defmake ROAR_HAVE_H_ARTSC libroararts artsc.h c -- kde/artsc/artsc.h test_lib_defmake ROAR_HAVE_H_ICONV % iconv.h c -- iconv.h test_lib_defmake ROAR_HAVE_H_NETINET_IN % 'netinet/in.h' c -- 'netinet/in.h' test_lib_defmake ROAR_HAVE_H_LINUX_REBOOT % linux/reboot.h c -- linux/reboot.h test_lib_defmake ROAR_HAVE_H_LINUX_SPI_SPIDEV % linux/spi/spidev.h c -- linux/spi/spidev.h test_lib_defmake ROAR_HAVE_H_LINUX_I2C % linux/i2c.h c -- linux/i2c.h test_lib_defmake ROAR_HAVE_H_LINUX_I2C_DEV % linux/i2c-dev.h c -- linux/i2c-dev.h test_lib_defmake ROAR_HAVE_H_WINDOWS % windows.h c -- windows.h test_lib_defmake ROAR_HAVE_H_WINSOCK % winsock.h c -- winsock.h test_lib_defmake ROAR_HAVE_H_WINSOCK2 % winsock2.h c -- winsock2.h MINIMAL=$OLD_MINIMAL #Those headers are checked with minimal mode as it is set by the user: test_lib_defmake ROAR_HAVE_H_DLFCN % dlfcn.h c -- dlfcn.h # #define subdir name -lxxx -- header test_lib_defmake ROAR_HAVE_LIBM % 'MathLibrary' m -- math.h rt='' libname_rt=false if test_lib 'realtime Library' rt -- sys/mman.h mqueue.h semaphore.h then { echo '#define ROAR_HAVE_LIBRT' echo '#define ROAR_NEED_LIBRT' libname_rt=true rt=rt } >&3 fi echo >&3 # #define subdir name -lxxx -- header test_lib_defmake ROAR_HAVE_ESD % EsounD esd -- esd.h test_lib_defmake ROAR_HAVE_LIBAO % libao ao -- ao/ao.h ao/plugin.h test_lib_defmake ROAR_HAVE_LIBRAUM % RAUM raum -- raum.h test_lib_defmake ROAR_HAVE_LIBUNIRAUM % uniraum uniraum -- uniraum/uniraum.h test_lib_defmake ROAR_HAVE_LIBOGG % libogg ogg -- ogg/ogg.h test_lib_defmake ROAR_HAVE_LIBVORBIS % libvorbis vorbis -- vorbis/codec.h test_lib_defmake ROAR_HAVE_LIBVORBISFILE % libvorbisfile vorbisfile -- vorbis/vorbisfile.h test_lib_defmake ROAR_HAVE_LIBVORBISENC % libvorbisenc vorbisenc -- vorbis/vorbisenc.h test_lib_defmake ROAR_HAVE_LIBSPEEX % libspeex speex -- speex/speex.h speex/speex_stereo.h test_lib_defmake ROAR_HAVE_LIBSPEEXDSP % libspeexdsp speexdsp -- speex/speex.h speex/speex_echo.h test_lib_defmake ROAR_HAVE_LIBCELT % libcelt celt -- celt/celt.h celt/celt_header.h test_lib_defmake ROAR_HAVE_LIBCELT0 % libcelt0 celt0 -- celt/celt.h celt/celt_header.h test_lib_defmake ROAR_HAVE_LIBOGGZ % liboggz oggz -- oggz/oggz.h test_lib_defmake ROAR_HAVE_LIBSNDFILE % libsndfile sndfile -- sndfile.h test_lib_defmake ROAR_HAVE_LIBFISHSOUND % libfishsound fishsound -- fishsound/fishsound.h test_lib_defmake ROAR_HAVE_LIBFLAC % libFLAC FLAC -- FLAC/all.h test_lib_defmake ROAR_HAVE_LIBSAMPLERATE % libsamplerate samplerate -- samplerate.h test_lib_defmake ROAR_HAVE_LIBSHOUT % libshout shout -- shout/shout.h test_lib_defmake ROAR_HAVE_LIBPULSE libroarpulse libpulse pulse -- pulse/pulseaudio.h pulse/simple.h test_lib_defmake ROAR_HAVE_LIBPULSESIMPLE % libpulse-simple pulse-simple -- pulse/simple.h test_lib_defmake ROAR_HAVE_LIBY2 libroaryiff libyiff Y2 -- Y2/Y.h Y2/Ylib.h test_lib_defmake ROAR_HAVE_LIBARTSC % libartsc artsc -- kde/artsc/artsc.h test_lib_defmake ROAR_HAVE_LIBOSSAUDIO % libossaudio ossaudio -- sys/ioctl.h test_lib_defmake ROAR_HAVE_LIBSNDIO % libsndio sndio -- sndio.h test_lib_defmake ROAR_HAVE_LIBRSOUND libroarrsound librsound rsound -- rsound.h test_lib_defmake ROAR_HAVE_LIBPORTAUDIO % PortAudio portaudio -- portaudio.h test_lib_defmake ROAR_HAVE_LIBPABLIO % PABLIO pablio -- pablio/pablio.h test_lib_defmake ROAR_HAVE_LIBSSL % OpenSSL ssl -- openssl/bio.h openssl/evp.h test_lib_defmake ROAR_HAVE_LIBSLP % OpenSLP slp -- slp.h test_lib_defmake ROAR_HAVE_LIBDNET % libdnet dnet -- sys/socket.h netdnet/dn.h netdnet/dnetdb.h OLD_MINIMAL=$MINIMAL MINIMAL=false test_lib_defmake ROAR_HAVE_BSDSOCKETS % BSDSockets c -- sys/types.h sys/socket.h test_lib_defmake ROAR_HAVE_UNIX % UNIX c -- sys/types.h sys/socket.h sys/un.h test_lib_defmake ROAR_HAVE_IPV4 % IPv4 c -- sys/types.h sys/socket.h 'netinet/in.h' winsock2.h MINIMAL=$OLD_MINIMAL test_lib_defmake ROAR_HAVE_IPX % IPX c -- netipx/ipx.h test_lib_defmake ROAR_HAVE_OSS % OSS c -- sys/ioctl.h sys/soundcard.h test_lib_defmake ROAR_HAVE_OSS_BSD % BSDOSS c -- sys/ioctl.h soundcard.h test_lib_defmake ROAR_HAVE_LIBWINMM % WinMM winmm -- windows.h mmsystem.h test_lib_defmake ROAR_HAVE_LIBASOUND % ALSA asound -- alsa/asoundlib.h alsa/pcm_external.h alsa/control_external.h test_lib_defmake ROAR_HAVE_LIBDL % DynLinkerLib dl -- dlfcn.h test_lib_defmake ROAR_HAVE_LIBZ % zlib z -- zlib.h test_lib_defmake ROAR_HAVE_LIBSENDFILE % sendfile sendfile -- sys/sendfile.h test_lib_defmake ROAR_HAVE_LIBSOCKET % libsocket socket -- sys/socket.h test_lib_defmake ROAR_HAVE_LIBX11 % X11 X11 -- X11/Xlib.h X11/Xatom.h test_lib_defmake ROAR_HAVE_GTK_P_2_0 % GTK+2.0 gtk+-2.0/t -- gtk/gtk.h gdk/gdkkeysyms.h test_lib_defmake ROAR_HAVE_LIBGCRYPT % libgcrypt gcrypt -- gcrypt.h test_lib_defmake ROAR_HAVE_LIBJACK % libjack jack/t -- jack/jack.h test_lib_defmake ROAR_HAVE_LIBUSTE % libuste uste -- uste.h test_netlibs echo >&3 test_version ROAR_HAVE_CELT_VERSION libcelt celt test_version ROAR_HAVE_SPEEX_VERSION libspeex speex test_version ROAR_HAVE_PULSE_VERSION libpulse libpulse test_version ROAR_HAVE_GTK_P_2_0_VERSION GTK+2.0 gtk+-2.0 test_version ROAR_HAVE_FLAC_VERSION libflac flac test_version ROAR_HAVE_PA19_VERSION portaudio-19 portaudio-2.0 echo >&3 # Those tests should not be disabled as they do not reduce the lib size just # break --minimal on full systems OLD_MINIMAL=$MINIMAL MINIMAL=false # Test types: # DEF type/name init value -- headers test_type ROAR_HAVE_T_ID_T id_t test_type ROAR_HAVE_T_PID_T pid_t test_type ROAR_HAVE_T_UID_T uid_t test_type ROAR_HAVE_T_GID_T gid_t test_type ROAR_HAVE_T_SOCKLEN_T socklen_t 0 -- sys/socket.h test_type ROAR_HAVE_T_MODE_T mode_t test_type ROAR_HAVE_T_OFF_T off_t test_type ROAR_HAVE_T_SSIZE_T ssize_t test_type ROAR_HAVE_T_TIME_T time_t test_type ROAR_HAVE_T_SA_FAMILY_T sa_family_t 0 -- sys/socket.h MINIMAL=$OLD_MINIMAL echo >&3 # add a better test here #test_lib 'linux sendfile()' -- sys/sendfile.h && echo '#define ROAR_HAVE_LINUX_SENDFILE' >&3 echo -n 'checking for IPv6... ' if $MINIMAL then echo "disabled by user (minimalstic build)" else echo '#include ' > $TF_C echo '#include ' >> $TF_C echo 'int main (void) { struct sockaddr_in6 in6; return 0; }' >> $TF_C if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_IPV6' >&3 echo yes else echo no fi fi echo -n 'checking for _exit()... ' echo '#include ' > $TF_C echo 'int main (void) { _exit(0); return 0; }' >> $TF_C if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_U_EXIT' >&3 echo '#define ROAR_U_EXIT _exit' >&3 echo yes else echo '#define ROAR_U_EXIT exit' >&3 echo no fi # def name call -- header test_func_defmake ROAR_HAVE_MALLOC malloc 'malloc(0)' -- stdlib.h test_func_defmake ROAR_HAVE_CALLOC calloc 'calloc(0, 0)' -- stdlib.h test_func_defmake ROAR_HAVE_REALLOC realloc 'realloc((void*)0, 0)' -- stdlib.h test_func_defmake ROAR_HAVE_FREE free 'free((void*)0)' -- stdlib.h test_func_defmake ROAR_HAVE_STRDUP strdup 'strdup((void*)0)' -- string.h test_func_defmake ROAR_HAVE_STRNDUP strndup 'strndup((void*)0)' -- string.h test_func_defmake ROAR_HAVE_STRLEN strlen 'strlen((void*)0)' -- string.h test_func_defmake ROAR_HAVE_STRNLEN strnlen 'strnlen((void*)0)' -- string.h test_func_defmake ROAR_HAVE_SETENV setenv 'setenv("", "", 0)' -- stdlib.h test_func_defmake ROAR_HAVE_PUTENV putenv 'putenv("")' -- stdlib.h test_func_defmake ROAR_HAVE_STRTOK_R strtok_r 'strtok_r("","",(char**)0)' -- string.h test_func_defmake ROAR_HAVE_STRLCPY strlcpy 'strlcpy((char*)0, "", 0)' -- string.h test_func_defmake ROAR_HAVE_STRLCAT strlcat 'strlcat((char*)0, "", 0)' -- string.h test_func_defmake ROAR_HAVE_QSORT qsort 'qsort((void*)0, 0, 0, (int(*)(const void *, const void *))0)' -- stdlib.h test_func_defmake ROAR_HAVE_NICE nice 'nice(0)' -- unistd.h test_func_defmake ROAR_HAVE_GETHOSTID gethostid 'gethostid()' -- unistd.h test_func_defmake ROAR_HAVE_GETGID getgid 'getgid()' -- sys/types.h unistd.h test_func_defmake ROAR_HAVE_GETUID getuid 'getuid()' -- sys/types.h unistd.h test_func_defmake ROAR_HAVE_SETGID setgid 'setgid(0)' -- sys/types.h unistd.h test_func_defmake ROAR_HAVE_SETUID setuid 'setuid(0)' -- sys/types.h unistd.h test_func_defmake ROAR_HAVE_SETSID setsid 'setsid()' -- sys/types.h unistd.h test_func_defmake ROAR_HAVE_GETPWNAM getpwnam 'getpwnam("")' -- sys/types.h pwd.h test_func_defmake ROAR_HAVE_GETGRNAM getgrnam 'getgrnam("")' -- sys/types.h grp.h test_func_defmake ROAR_HAVE_GETTIMEOFDAY gettimeofday 'struct timeval tv; gettimeofday(&tv, NULL)' -- sys/time.h time.h test_func_defmake ROAR_HAVE_USLEEP usleep 'usleep(0)' -- sys/types.h unistd.h test_func_defmake ROAR_HAVE_SLEEP sleep 'sleep(0)' -- unistd.h test_func_defmake ROAR_HAVE_NANOSLEEP nanosleep 'nanosleep((void*)0, (void*)0)' -- time.h test_func_defmake ROAR_HAVE_ALARM alarm 'alarm(0)' -- sys/types.h unistd.h test_func_defmake ROAR_HAVE_TIME time 'time((void*)0)' -- time.h test_func_defmake ROAR_HAVE_CTIME ctime 'ctime((void*)0)' -- time.h test_func_defmake ROAR_HAVE_CTIME_R ctime_r 'ctime_r((void*)0,(char*)0)' -- time.h test_func_defmake ROAR_HAVE_KILL kill 'kill(0,0)' -- sys/types.h signal.h test_func_defmake ROAR_HAVE_UNAME uname 'uname((void*)0)' -- sys/utsname.h test_func_defmake ROAR_HAVE_GETHOSTNAME gethostname 'gethostname((void*)0, 0)' -- unistd.h test_func_defmake ROAR_HAVE_SYSLOG syslog 'syslog(0, "")' -- syslog.h test_func_defmake ROAR_HAVE_OPENLOG openlog 'openlog("", 0, 0)' -- syslog.h test_func_defmake ROAR_HAVE_CLOSELOG closelog 'closelog()' -- syslog.h test_func_defmake ROAR_HAVE_FOPEN fopen 'fopen("","")' -- stdio.h test_func_defmake ROAR_HAVE_FDOPEN fdopen 'fdopen(0,"")' -- stdio.h test_func_defmake ROAR_HAVE_FREOPEN freopen 'freopen("","",(void*)0)' -- stdio.h test_func_defmake ROAR_HAVE_FCLOSE fclose 'fclose(0)' -- stdio.h test_func_defmake ROAR_HAVE_FILENO fileno 'fileno(0)' -- stdio.h test_func_defmake ROAR_HAVE_FTELL ftell 'ftell(0)' -- stdio.h test_func_defmake ROAR_HAVE_FSEEK fseek 'fseek(0, 0, 0)' -- stdio.h test_func_defmake ROAR_HAVE_POPEN popen 'popen("", "")' -- stdio.h test_func_defmake ROAR_HAVE_PCLOSE pclose 'pclose(0)' -- stdio.h test_func_defmake ROAR_HAVE_STAT stat 'stat((char*)0, (void*)0)' -- sys/types.h sys/stat.h unistd.h test_func_defmake ROAR_HAVE_SYSTEM system 'system("")' -- stdlib.h test_func_defmake ROAR_HAVE_GETSOCKNAME getsockname 'getsockname(0, 0, 0)' $lib_wsock32 -- sys/socket.h winsock.h test_func_defmake ROAR_HAVE_GETPEERNAME getpeername 'getpeername(0, 0, 0)' $lib_wsock32 -- sys/socket.h winsock.h test_func_defmake ROAR_HAVE_GETSOCKOPT getsockopt 'getsockopt(0, 0, 0, (void*)0, (void*)0)' -- sys/types.h sys/socket.h test_func_defmake ROAR_HAVE_SETSOCKOPT setsockopt 'setsockopt(0, 0, 0, (void*)0, (void*)0)' -- sys/types.h sys/socket.h test_func_defmake ROAR_HAVE_GETADDRINFO getaddrinfo 'getaddrinfo((void*)0, (void*)0, (void*)0, (void**)0)' -- sys/types.h sys/socket.h netdb.h test_func_defmake ROAR_HAVE_RAND rand 'rand()' -- stdlib.h test_func_defmake ROAR_HAVE_RAND_R rand_r 'rand_r((unsigned int*)0)' -- stdlib.h test_func_defmake ROAR_HAVE_SRAND srand 'srand((unsigned int)0)' -- stdlib.h test_func_defmake ROAR_HAVE_FCNTL fcntl 'fcntl(0, 0)' -- unistd.h fcntl.h test_func_defmake ROAR_HAVE_POSIX_OPENPT posix_openpt 'posix_openpt(0)' -- stdlib.h fcntl.h test_func_defmake ROAR_HAVE_GRANTPT grantpt 'grantpt(0)' -- stdlib.h test_func_defmake ROAR_HAVE_UNLOCKPT unlockpt 'unlockpt(0)' -- stdlib.h test_func_defmake ROAR_HAVE_TCGETATTR tcgetattr 'tcgetattr(0, (struct termios *)0)' -- termios.h unistd.h test_func_defmake ROAR_HAVE_TCSETATTR tcsetattr 'tcsetattr(0, TCSANOW, (struct termios *)0)' -- termios.h unistd.h test_func_defmake ROAR_HAVE_CFMAKERAW cfmakeraw 'cfmakeraw((struct termios *)0)' -- termios.h unistd.h test_func_defmake ROAR_HAVE_REBOOT reboot 'reboot(LINUX_REBOOT_CMD_RESTART|LINUX_REBOOT_CMD_HALT|LINUX_REBOOT_CMD_POWER_OFF|LINUX_REBOOT_CMD_CAD_ON|LINUX_REBOOT_CMD_CAD_OFF)' -- unistd.h linux/reboot.h sys/reboot.h test_func_defmake ROAR_HAVE_LINUX_SENDFILE sendfile 'sendfile(-1, -1, (void*)0, 0)' -- sys/sendfile.h test_func_defmake ROAR_HAVE_GETVERSIONEX GetVersionEx 'OSVERSIONINFO osinfo; osinfo.dwOSVersionInfoSize = sizeof(osinfo);GetVersionEx(&osinfo);' -- windows.h test_func_defmake ROAR_HAVE_AO_APPEND_GLOBAL_OPTION ao_append_global_option 'ao_append_global_option("","")' ao -- ao/ao.h test_func_defmake ROAR_HAVE_DLADDR dladdr 'dladdr((void*)0, (Dl_info*)0)' dl -- dlfcn.h echo "STATE: funcname_dladdr=$funcname_dladdr" >&5 if [ "$funcname_dladdr" = 'false' ] then infotext='retested with _GNU_SOURCE' _old="$NEED_GNU_SOURCE" NEED_GNU_SOURCE=true test_func_defmake ROAR_HAVE_DLADDR dladdr 'dladdr((void*)0, (Dl_info*)0)' dl -- dlfcn.h [ "$funcname_dladdr" = 'false' ] && NEED_GNU_SOURCE="$_old" infotext='' fi test_func_defmake ROAR_HAVE_CLOCK_GETRES clock_getres 'struct timespec ts; clock_getres((clockid_t)0, &ts)' -- time.h test_func_defmake ROAR_HAVE_CLOCK_GETTIME clock_gettime 'struct timespec ts; clock_gettime((clockid_t)0, &ts)' -- time.h test_func_defmake ROAR_HAVE_CLOCK_SETTIME clock_settime 'struct timespec ts; clock_settime((clockid_t)0, &ts)' -- time.h echo "STATE: funcname_clock_getres=$funcname_clock_getres" >&5 echo "STATE: libname_rt=$libname_rt" >&5 if [ "$funcname_clock_getres" = 'false' ] then if $libname_rt then infotext='retested using realtime library' test_func_defmake ROAR_HAVERT_CLOCK_GETRES clock_getres 'struct timespec ts; clock_getres((clockid_t)0, &ts)' $rt -- time.h test_func_defmake ROAR_HAVERT_CLOCK_GETTIME clock_gettime 'struct timespec ts; clock_gettime((clockid_t)0, &ts)' $rt -- time.h test_func_defmake ROAR_HAVERT_CLOCK_SETTIME clock_settime 'struct timespec ts; clock_settime((clockid_t)0, &ts)' $rt -- time.h infotext='' if $funcname_clock_getres then echo "clock_rt=-l$rt" >&4 fi fi fi test_const_defmake ROAR_HAVE_CONST_CLOCK_REALTIME CLOCK_REALTIME clockid_t CLOCK_REALTIME -- time.h test_const_defmake ROAR_HAVE_CONST_CLOCK_MONOTONIC CLOCK_MONOTONIC clockid_t CLOCK_MONOTONIC -- time.h test_const_defmake ROAR_HAVE_CONST_CLOCK_PROCESS_CPUTIME_ID CLOCK_PROCESS_CPUTIME_ID clockid_t CLOCK_PROCESS_CPUTIME_ID -- time.h test_const_defmake ROAR_HAVE_CONST_CLOCK_THREAD_CPUTIME_ID CLOCK_THREAD_CPUTIME_ID clockid_t CLOCK_THREAD_CPUTIME_ID -- time.h test_const_defmake ROAR_HAVE_CONST_M_PI_2 M_PI_2 double M_PI_2 -- math.h test_var_defmake ROAR_HAVE_VAR_H_ERRNO h_errno int h_errno -- netdb.h echo -n 'checking for basic IO calls... ' cat < $TF_C #include #include #include #include #include int main(void) { open(NULL, 0, 0); close(0); read(0, NULL, 0); write(0, NULL, 0); lseek(0, 0, 0); return 0; } EOF if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_IO_POSIX' >&3 echo posix else echo none fi echo -n 'checking for basic FS calls... ' cat < $TF_C #include #include int main(void) { chdir(NULL); unlink(NULL); return 0; } EOF if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_FS_POSIX' >&3 echo posix else echo none fi test_func_defmake ROAR_HAVE_CHROOT chroot 'chroot((void*)0)' -- unistd.h test_func_defmake ROAR_HAVE_MLOCK mlock 'mlock((void*)0, 0)' -- sys/mman.h test_func_defmake ROAR_HAVE_MUNLOCK munlock 'munlock((void*)0, 0)' -- sys/mman.h test_func_defmake ROAR_HAVE_MLOCKALL mlockall 'mlockall(MCL_CURRENT|MCL_FUTURE)' -- sys/mman.h test_func_defmake ROAR_HAVE_MUNLOCKALL munlockall 'munlockall()' -- sys/mman.h test_func_defmake ROAR_HAVE_MMAP mmap 'mmap((void*)0,0,0,0,0,0)' -- sys/mman.h echo -n 'checking for fsync()... ' echo '#include ' > $TF_C echo 'int main (void) { fsync(0); return 0; }' >> $TF_C if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_FSYNC' >&3 FSYNC=true echo yes else FSYNC=false echo no fi echo -n 'checking for fdatasync()... ' echo '#include ' > $TF_C echo 'int main (void) { fdatasync(0); return 0; }' >> $TF_C if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_FDATASYNC' >&3 echo '#define ROAR_FDATASYNC fdatasync' >&3 echo yes else $FSYNC && echo '#define ROAR_FDATASYNC fsync' >&3 echo no fi #test_func_defmake ROAR_HAVE_STRCASESTR strcasestr 'strcasestr("", "")' -- string.h echo -n 'checking for strcasestr()... ' echo '#define _GNU_SOURCE' > $TF_C echo '#include ' >> $TF_C echo 'int main (void) { strcasestr("", ""); return 0; }' >> $TF_C if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_STRCASESTR' >&3 NEED_GNU_SOURCE=true echo yes else echo no fi echo -n 'checking for fopencookie()... ' echo '#define _GNU_SOURCE' > $TF_C echo '#include ' >> $TF_C echo 'int main (void) { cookie_io_functions_t f; fopencookie(NULL, "", f); return 0; }' >> $TF_C if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_FOPENCOOKIE' >&3 NEED_GNU_SOURCE=true echo yes else echo no fi echo -n 'checking for funopen()... ' echo '#define __BSD_VISIBLE 1' > $TF_C echo '#include ' >> $TF_C echo 'int main (void) { funopen(NULL, NULL, NULL, NULL, NULL); return 0; }' >> $TF_C if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_FUNOPEN' >&3 echo '#define ROAR_NEED_BSD_VISIBLE' >&3 echo yes else echo no fi test_func_defmake ROAR_HAVE_PIPE pipe 'pipe(NULL)' -- unistd.h test_func_defmake ROAR_HAVE_FORK fork 'fork()' -- unistd.h test_func_defmake ROAR_HAVE_WAIT wait 'wait(NULL)' -- string.h sys/wait.h test_func_defmake ROAR_HAVE_SINF sinf 'sinf(0.)' m -- math.h echo -n 'checking for square root func... ' if $TARGET_CYGWIN then echo 'sqrt() (cygwin)' elif [ "$SYSNAME" = 'FreeBSD' ] then echo 'sqrt() (FreeBSD, fix your gcc)' elif [ "$SYSNAME" = 'Linux' ] then echo '#include ' > $TF_C echo 'int main (void) { sqrtl(0); return 0; }' >> $TF_C if $CCTF -lm 2> /dev/null; then echo '#define ROAR_HAVE_SQRTL' >&3 echo 'sqrtl()' else echo 'sqrt()' fi else echo 'sqrt()' fi echo -n 'checking for inline funcs... ' echo 'inline int test (void) { return 0; }' > $TF_C echo 'int main (void) { return test(); }' >> $TF_C if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_INLINE' >&3 echo yes else echo no fi test_pthread echo -n 'checking for broken peercred... ' echo '#include ' > $TF_C echo '#include ' >> $TF_C echo '#include ' >> $TF_C echo 'int main (void) { struct ucred cred; return 0; }' >> $TF_C if $CCTF 2> /dev/null; then echo working else if $CCTF -D_GNU_SOURCE 2> /dev/null; then NEED_GNU_SOURCE=true echo need to set _GNU_SOURCE else echo '#define ROAR_BROKEN_PEERCRED' >&3 echo broken fi fi test_func_defmake ROAR_HAVE_GETPEEREID getpeereid 'getpeereid(0, NULL, NULL)' -- sys/types.h sys/socket.h echo -n 'checking for select()... ' cat < $TF_C #ifndef WITHOUT_SYS_SELECT_H #include #endif #ifdef WITH_WINSOCK_H #include #endif #include #include #include int main (void) { fd_set rfds; struct timeval tv; FD_ZERO(&rfds); FD_SET(0, &rfds); tv.tv_sec = 0; tv.tv_usec = 0; select(1, &rfds, NULL, NULL, &tv); return 0; } EOF if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_SELECT' >&3 echo '#define ROAR_HAVE_H_SYS_SELECT' >&3 echo yes, POSIX.1-2001 elif $CCTF -DWITHOUT_SYS_SELECT_H 2> /dev/null; then echo '#define ROAR_HAVE_SELECT' >&3 echo yes, old style elif $CCTF -DWITHOUT_SYS_SELECT_H -DWITH_WINSOCK_H $lib_wsock32 >&5 2>&5; then echo '#define ROAR_HAVE_SELECT' >&3 echo yes, WinSock else echo no fi echo -n 'checking for shutdown()... ' cat < $TF_C #include #ifndef WITHOUT_SYS_SOCKET_H #include #endif #ifdef WITH_WINSOCK_H #include #endif int main (void) { shutdown(0, 0); return 0; } EOF if [ "$SYSNAME" = 'SunOS' ] then _l='-lsocket' else _l='' fi if $CCTF $_l 2> /dev/null; then echo '#define ROAR_HAVE_SHUTDOWN' >&3 echo '#define ROAR_SHUTDOWN shutdown' >&3 echo yes elif $CCTF -DWITHOUT_SYS_SOCKET_H -DWITH_WINSOCK_H $lib_wsock32 2> /dev/null; then echo '#define ROAR_HAVE_SHUTDOWN' >&3 echo '#define ROAR_SHUTDOWN shutdown' >&3 echo yes, WinSock else echo '#define ROAR_SHUTDOWN(x,y) (-1)' >&3 echo no fi echo -n 'checking for accept()... ' cat < $TF_C #include #ifndef WITHOUT_SYS_SOCKET_H #include #endif #ifdef WITH_WINSOCK_H #include #endif int main (void) { accept(0, 0, 0); return 0; } EOF if [ "$SYSNAME" = 'SunOS' ] then _l='-lsocket' else _l='' fi if $CCTF $_l 2> /dev/null; then echo '#define ROAR_HAVE_ACCEPT' >&3 echo '#define ROAR_ACCEPT accept' >&3 echo yes elif $CCTF -DWITHOUT_SYS_SOCKET_H -DWITH_WINSOCK_H $lib_wsock32 2> /dev/null; then echo '#define ROAR_HAVE_ACCEPT' >&3 echo '#define ROAR_ACCEPT accept' >&3 echo yes, WinSock else echo '#define ROAR_ACCEPT(x,y,z) (-1)' >&3 echo no fi test_func_defmake ROAR_HAVE_GETOBJECTBYNAME getobjectbyname 'getobjectbyname(NULL)' dnet -- stdlib.h netdnet/dn.h netdnet/dnetdb.h test_func_defmake ROAR_HAVE_GETSERVBYNAME getservbyname 'getservbyname((void*)0, (void*)0)' -- netdb.h # --- PulseAudio tests --- test_pa_type ROAR_HAVE_TYPE_PA_PATH_GET_FILENAME pa_path_get_filename type 'const char *' 'char *' 'const char *pa_path_get_filename(const char *p) { return NULL; }' pulse/simple.h test_pa_type ROAR_HAVE_TYPE_PA_UTF8_VALID pa_utf8_valid type 'const char *' 'char *' 'const char *pa_utf8_valid(const char *str) { return NULL; }' test_pa_type ROAR_HAVE_ARG_SINK_NAME_OF_PA_CONTEXT_MOVE_SINK_INPUT_BY_NAME pa_context_move_sink_input_by_name args:'pa_context *c, uint32_t idx, %s sink_name, pa_context_success_cb_t cb, void* userdata' 'const char *' 'char *' 'pa_operation* pa_context_move_sink_input_by_name(pa_context *c, uint32_t idx, const char *sink_name, pa_context_success_cb_t cb, void* userdata) { return NULL; }' test_pa_type ROAR_HAVE_ARG_SOURCE_NAME_OF_PA_CONTEXT_MOVE_SOURCE_OUTPUT_BY_NAME pa_context_move_source_output_by_name args:'pa_context *c, uint32_t idx, %s source_name, pa_context_success_cb_t cb, void* userdata)' 'const char *' 'char *' 'pa_operation* pa_context_move_source_output_by_name(pa_context *c, uint32_t idx, const char *source_name, pa_context_success_cb_t cb, void* userdata) { return NULL; }' test_pa_type ROAR_HAVE_ARG_VOLUME_OF_PA_STREAM_CONNECT_PLAYBACK pa_stream_connect_playback args:'pa_stream *s, const char *dev, const pa_buffer_attr *attr, pa_stream_flags_t flags, %s volume, pa_stream *sync_stream' 'const pa_cvolume *' 'pa_cvolume *' 'int pa_stream_connect_playback(pa_stream *s, const char *dev, const pa_buffer_attr *attr, pa_stream_flags_t flags, const pa_cvolume * volume, pa_stream *sync_stream) { return -1; }' # --- End of PulseAudio tests --- echo -n 'checking for struct rsound'\''s sample size member... ' cat > $TF_C << EOF #define RSD_EXPOSE_STRUCT #include int main (void) { rsound_t var; var.samplesize = 0; return 0; } EOF if $CCTF 2> /dev/null; then echo '#define ROAR_HAVE_RSOUND_SAMPLESIZE' >&3 echo '#define ROAR_HAVE_RSOUND_SAMPLESIZE_MEMBER samplesize' >&3 echo samplesize else echo '#define ROAR_HAVE_RSOUND_SAMPLESIZE_MEMBER framesize' >&3 echo framesize fi echo -n 'checking for safe 32 bit integer overflow... ' cat > $TF_C << EOF #include #include #define TYPE uint32_t #define MAX ((TYPE)4294967295U) int main (void) { TYPE a = MAX; a += 2; if ( a == 1 ) { printf("#define ROAR_HAVE_SAFE_OVERFLOW\n"); return 0; } return 1; } EOF if $CCTF 2> /dev/null; then $EXEC_HELPER $TF_E >&3 2> /dev/null if [ "$?" = '0' ] then echo yes else echo no fi else echo 'no (can not compile!, no stdint.h?)' fi echo -n 'checking for __LP64__... ' if $TARGET_WIN32 then echo 'no need to set (win32 build)' else cat > $TF_C << EOF #include int main (void) { #ifdef __LP64__ fprintf(stderr, "set by compiler\n"); #else if ( sizeof(int) == sizeof(void*) ) { fprintf(stderr, "no need to set\n"); } else { fprintf(stderr, "need to set\n"); printf("\n#ifndef __LP64__\n#define __LP64__\n#endif\n\n"); } #endif return 0; } EOF if $CCTF 2> /dev/null; then $EXEC_HELPER $TF_E >&3 else echo 'error, can not compile' exit 1 fi fi echo -n 'checking for 64 bit types... ' if $TARGET_WIN32 then echo 'int64_t, uint64_t (win32 build)' echo '#define ROAR_NATIVE_INT64 int64_t' >&3 echo '#define ROAR_NATIVE_UINT64 uint64_t' >&3 else cat > $TF_C << EOF #include #include int main (void) { char * i64 = NULL, * ui64 = NULL; if ( sizeof(int) == 8 ) { i64 = "int"; ui64 = "unsigned int"; } else if ( sizeof(long int) == 8 ) { i64 = "long int"; ui64 = "unsigned long int"; } else if ( sizeof(long long int) == 8 ) { i64 = "long long int"; ui64 = "unsigned long long int"; } else if ( sizeof(int64_t) == 8 ) { i64 = "int64_t"; ui64 = "uint64_t"; } else { fprintf(stderr, "none\n"); return 0; } fprintf(stderr, "%s, %s\n", i64, ui64); printf("#define ROAR_NATIVE_INT64 %s\n#define ROAR_NATIVE_UINT64 %s\n", i64, ui64); return 0; } EOF if $CCTF 2> /dev/null; then $EXEC_HELPER $TF_E >&3 else echo 'error, can not compile' exit 1 fi fi test_cp_v echo -n 'checking for cdrom device... ' if [ -n "$CDROM" ] then if [ "$CDROM" = '(none)' ] then echo "none (disabled by user)" else if $CROSS_COMPILE then echo "$CDROM (cross compile)" elif [ -e "$CDROM" ] then echo "$CDROM (forced by user)" else echo "$CDROM (not existing, forced by user)" fi echo '#define ROAR_DEFAULT_CDROM "'"$CDROM"'"' >&3 echo '#define ROAR_HAVE_CDROM' >&3 fi elif $CROSS_COMPILE then echo 'none (cross compiling, use --cdrom to enable CDROM support)' else CDROM=$(ls /dev/cdrom /dev/rcd0c 2> /dev/null | head -n 1); if [ -e "$CDROM" ] then echo "$CDROM" echo '#define ROAR_DEFAULT_CDROM "'"$CDROM"'"' >&3 echo '#define ROAR_HAVE_CDROM' >&3 else echo 'none' echo '#define ROAR_HAVE_CDROM' >&3 fi fi echo -n 'checking for default tty device... ' if [ -n "$TTY_DEV" ] then if [ "$TTY_DEV" = '(none)' ] then echo "none (disabled by user)" else if $CROSS_COMPILE then echo "$TTY_DEV (cross compile)" elif [ -e "$TTY_DEV" ] then echo "$TTY_DEV (forced by user)" else echo "$TTY_DEV (not existing, forced by user)" fi echo '#define ROAR_DEFAULT_TTY "'"$TTY_DEV"'"' >&3 fi elif $CROSS_COMPILE then echo 'none (cross compiling, use --tty to set default device)' else TTY_DEV=$(ls /dev/tty 2> /dev/null | head -n 1); if [ -e "$TTY_DEV" ] then echo "$TTY_DEV" echo '#define ROAR_DEFAULT_TTY "'"$TTY_DEV"'"' >&3 else echo 'none' fi fi echo -n 'checking for OSS device... ' if [ -n "$OSS_DEV" ] then if [ "$OSS_DEV" = '(none)' ] then echo "none (disabled by user)" else if $CROSS_COMPILE then echo "$OSS_DEV (cross compile)" elif [ -e "$OSS_DEV" ] then echo "$OSS_DEV (forced by user)" else echo "$OSS_DEV (not existing, forced by user)" fi echo '#define ROAR_DEFAULT_OSS_DEV "'"$OSS_DEV"'"' >&3 fi elif $CROSS_COMPILE then echo 'none (cross compiling, use --oss-dev to set default device)' else OSS_DEV=$(ls /dev/dsp /dev/audio 2> /dev/null | head -n 1); if [ -e "$OSS_DEV" ] then echo "$OSS_DEV" echo '#define ROAR_DEFAULT_OSS_DEV "'"$OSS_DEV"'"' >&3 else echo 'none' fi fi echo -n 'checking for OSS mixer device... ' if [ -n "$OSS_MIX_DEV" ] then if [ "$OSS_MIX_DEV" = '(none)' ] then echo "none (disabled by user)" else if $CROSS_COMPILE then echo "$OSS_MIX_DEV (cross compile)" elif [ -e "$OSS_MIX_DEV" ] then echo "$OSS_MIX_DEV (forced by user)" else echo "$OSS_MIX_DEV (not existing, forced by user)" fi echo '#define ROAR_DEFAULT_OSS_MIX_DEV "'"$OSS_MIX_DEV"'"' >&3 fi elif $CROSS_COMPILE then echo 'none (cross compiling, use --oss-mixer-dev to set default device)' else OSS_MIX_DEV=$(ls /dev/mixer 2> /dev/null | head -n 1); if [ -e "$OSS_MIX_DEV" ] then echo "$OSS_MIX_DEV" echo '#define ROAR_DEFAULT_OSS_MIX_DEV "'"$OSS_MIX_DEV"'"' >&3 else echo 'none' fi fi echo 'checking for DECnet status file... '"$PROC_NET_DECNET" echo '#define ROAR_PROC_NET_DECNET "'"$PROC_NET_DECNET"'"' >&3 echo -n 'checking for DECnet neighbour file... ' if [ -n "$PROC_NET_DECNET_NEIGH" ] then if [ "$PROC_NET_DECNET_NEIGH" = '(none)' ] then echo "none (disabled by user)" else if $CROSS_COMPILE then echo "$PROC_NET_DECNET_NEIGH (cross compile)" elif [ -e "$PROC_NET_DECNET_NEIGH" ] then echo "$PROC_NET_DECNET_NEIGH (forced by user)" else echo "$PROC_NET_DECNET_NEIGH (not existing, forced by user)" fi echo '#define ROAR_PROC_NET_DECNET_NEIGH "'"$PROC_NET_DECNET_NEIGH"'"' >&3 fi elif $CROSS_COMPILE then echo 'none (cross compiling, use --proc-net-decnet-neigh to set default device)' else PROC_NET_DECNET_NEIGH=$(ls /proc/net/decnet_neigh 2> /dev/null | head -n 1); if [ -e "$PROC_NET_DECNET_NEIGH" ] then echo "$PROC_NET_DECNET_NEIGH" echo '#define ROAR_PROC_NET_DECNET_NEIGH "'"$PROC_NET_DECNET_NEIGH"'"' >&3 else echo 'none' fi fi echo -n 'checking for IP neighbour (ARP) file... ' if [ -n "$PROC_NET_ARP" ] then if [ "$PROC_NET_ARP" = '(none)' ] then echo "none (disabled by user)" else if $CROSS_COMPILE then echo "$PROC_NET_ARP (cross compile)" elif [ -e "$PROC_NET_ARP" ] then echo "$PROC_NET_ARP (forced by user)" else echo "$PROC_NET_ARP (not existing, forced by user)" fi echo '#define ROAR_PROC_NET_ARP "'"$PROC_NET_ARP"'"' >&3 fi elif $CROSS_COMPILE then echo 'none (cross compiling, use --proc-net-arp to set default device)' else PROC_NET_ARP=$(ls /proc/net/arp 2> /dev/null | head -n 1); if [ -e "$PROC_NET_ARP" ] then echo "$PROC_NET_ARP" echo '#define ROAR_PROC_NET_ARP "'"$PROC_NET_ARP"'"' >&3 else echo 'none' fi fi echo -n 'checking for default audio group... ' if [ "$DEFAULT_GRP" = '(none)' ] then echo "none (disabled by user)" else echo "$DEFAULT_GRP" echo '#define ROAR_DEFAULT_SOCKGRP "'"$DEFAULT_GRP"'"' >&3 fi echo -n 'checking for user id of root/superuser... ' if [ "$ROOT_UID" = '(none)' ] then echo "none (disabled by user)" elif [ "$ROOT_UID" = '' ] then ROOT_USER='root' ROOT_UID=`id -u $ROOT_USER` if [ "$ROOT_UID" = '' ] then echo "none (please report this)" else echo "$ROOT_UID($ROOT_USER)" echo '#define ROAR_ROOT_UID '"$ROOT_UID" >&3 fi else echo "$ROOT_UID" echo '#define ROAR_ROOT_UID '"$ROOT_UID" >&3 fi $NEED_GNU_SOURCE && echo '#define ROAR_NEED_GNU_SOURCE' >&3 cat >&3 << EOF #if defined(ROAR_HAVE_LIBCELT0) && !defined(ROAR_HAVE_LIBCELT) #define ROAR_HAVE_LIBCELT #endif EOF cd plugins #if $LIBAO #then # echo 'running libao plugin configure...' # cd ao/ # if [ "$AO_INST_DIR" = '' ] # then # ./configure --force-have-roar --pkg-config "$PKG_CONFIG" && \ # echo "subdir_plugins_ao=plugins/ao" >&4 # else # ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$AO_INST_DIR" && \ # echo "subdir_plugins_ao=plugins/ao" >&4 # fi # cd .. #else # echo "running libao plugin configure... disabled by user" #fi if $XMMS then echo 'running xmms plugin configure...' cd xmms/ ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$XMMS_INST_DIR" && \ echo "subdir_plugins_xmms=plugins/xmms" >&4 cd .. else echo "running xmms plugin configure... disabled by user" fi #if $AUDACIOUS #then # echo 'running Audacious plugin configure...' # cd audacious/ # ./configure --force-have-roar --pkg-config "$PKG_CONFIG" --inst-dir "$AUDACIOUS_INST_DIR" && \ # echo "subdir_plugins_audacious=plugins/audacious" >&4 # cd .. #else # echo "running Audacious plugin configure... disabled by user" #fi if $COMP_PLUGINS then # Do not build roard plugins on win32 as they use upwards binding (-rdynamic). # This mode of binding is not supported by PE. $TARGET_WIN32 || echo "subdir_plugins_roard=plugins/roard" >&4 echo "subdir_plugins_universal=plugins/universal" >&4 fi cd .. cleanup_ccft write_footer_makefileconf write_footer_configlog write_footer_configh mv config.h include/roaraudio/ echo 'config.h created and moved into include/roaraudio/' write_summery_header write_summery Wextra write_summery bin_format write_summery linkdeps #write_summery bool MINIMAL 'minimal build' #write_summery bool USE_MEMMGR 'memory manager' #write_summery bool SUPPORT_TRAP 'trap support' write_summery lib EsounD write_summery lib libao write_summery lib libvorbisfile 'Codec Vorbis' write_summery lib libspeex 'Codec Speex' write_summery lib libshout 'Icecast2 source' write_summery lib libsndio 'OpenBSD sndio' write_summery lib WinMM write_summery lib ALSA write_summery lib libdnet 'DECnet' write_summery lib OpenSLP write_summery lib libuste uste #ll