1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
|
#!/bin/sh
. scripts/configure.sh || exit 1
VERSION="2.0.4"
check_cflags()
{
check_cc_flag -std=gnu99 -pipe -Wall -Wshadow -Wcast-align -Wpointer-arith \
-Wwrite-strings -Wundef -Wmissing-prototypes -Wredundant-decls
for i in -Wdeclaration-after-statement -Wold-style-definition -Wno-pointer-sign
do
check_cc_flag $i
done
return 0
}
check_ncurses()
{
if check_library NCURSES "" -lncursesw
then
widechars=y
return 0
fi
if check_library NCURSES "" -lncurses || check_library NCURSES "" -lcurses
then
widechars=n
msg_error "Your ncurses does not support wide characters!"
msg_error "Install ncursesw if you need wide character support,"
msg_error "you can ignore this warning otherwise."
return 0
fi
return 1
}
check_mpc()
{
check_library MPC "" "-lmpcdec"
return $?
}
check_flac()
{
check_library FLAC "" "-lFLAC -lm"
return $?
}
check_mad()
{
pkg_config MAD "mad" "" "-lmad -lm"
return $?
}
check_modplug()
{
pkg_config MODPLUG "libmodplug" "-I/usr/include/libmodplug" "-lmodplug -lstdc++ -lm"
return $?
}
check_vorbis()
{
if test "$CONFIG_TREMOR" = y
then
pkg_config VORBIS "vobisidec" "" "-lvorbisidec -lm"
return $?
else
pkg_config VORBIS "vorbisfile" "" "-lvorbisfile -lvorbis -lm -logg"
return $?
fi
}
check_alsa()
{
# the alsa.pc file should be always available
pkg_config ALSA "alsa >= 1.0.11"
return $?
}
check_ao()
{
pkg_config AO "ao" "" "-lao"
return $?
}
check_arts()
{
app_config ARTS artsc-config
return $?
}
check_oss()
{
case `uname -s` in
Linux|FreeBSD)
;;
*BSD)
check_library OSS "" "-lossaudio"
return $?
;;
*)
# unknown
;;
esac
OSS_CFLAGS=""
OSS_LIBS=""
msg_checking "for header <sys/soundcard.h>"
if test -f /usr/include/sys/soundcard.h
then
msg_result "yes"
makefile_vars OSS_CFLAGS OSS_LIBS
return 0
else
msg_result "no"
fi
return 1
}
check_sun()
{
msg_checking "for header <sys/audioio.h>"
if test -f /usr/include/sys/audioio.h
then
msg_result "yes"
return 0
else
msg_result "no"
return 1
fi
}
# defaults
prefix=/usr/local
DEBUG=1
CONFIG_TREMOR=n
# unset CONFIG_* variables: if check succeeds 'y', otherwise 'n'
USAGE="
Options:
prefix Installation prefix [$prefix]
bindir User executables [\$prefix/bin]
datadir Read-only data [\$prefix/share]
libdir Libraries [\$prefix/lib]
mandir Man pages [\$datadir/man]
DEBUG Debugging level (0-2) [$DEBUG]
Optional Features: y/n
CONFIG_FLAC FLAC (Free Lossless Audio Codec) support [auto]
CONFIG_MAD MPEG Audio Decoder (libmad) support [auto]
CONFIG_MODPLUG libmodplug (mod, x3m, ...) support [auto]
CONFIG_MPC libmpcdec (Musepack .mpc) support [auto]
CONFIG_VORBIS Ogg/Vorbis support [auto]
CONFIG_TREMOR Use Tremor as Ogg/Vorbis input plugin [n]
CONFIG_WAV WAV support [y]
CONFIG_ALSA ALSA support [auto]
CONFIG_AO Libao cross-platform audio library [auto]
CONFIG_ARTS ARTS support [auto]
CONFIG_OSS Open Sound System support [auto]
CONFIG_SUN Sun Audio support [auto]
Also many standard variables like CC are recognized."
parse_command_line "$@"
case $DEBUG in
[0-2])
;;
*)
die "DEBUG must be 0-2"
;;
esac
var_default bindir "${prefix}/bin"
var_default datadir "${prefix}/share"
var_default libdir "${prefix}/lib"
var_default mandir "${datadir}/man"
check check_cc
check check_cflags
check check_cc_depgen
check check_endianness
check check_dl
check check_pthread
check check_ncurses
check check_iconv
check check_flac CONFIG_FLAC
check check_mad CONFIG_MAD
check check_modplug CONFIG_MODPLUG
check check_mpc CONFIG_MPC
check check_vorbis CONFIG_VORBIS
# nothing to check, just validate the variable values
check true CONFIG_TREMOR
check true CONFIG_WAV
check check_alsa CONFIG_ALSA
check check_ao CONFIG_AO
check check_arts CONFIG_ARTS
check check_oss CONFIG_OSS
check check_sun CONFIG_SUN
test "$WORDS_BIGENDIAN" = y && CFLAGS="${CFLAGS} -DWORDS_BIGENDIAN"
DATADIR="$datadir"
LIBDIR="$libdir"
config_header config/version.h VERSION
config_header config/datadir.h DATADIR
config_header config/libdir.h LIBDIR
config_header config/debug.h DEBUG
config_header config/tremor.h CONFIG_TREMOR
makefile_vars VERSION bindir datadir libdir mandir
makefile_vars CONFIG_FLAC CONFIG_MAD CONFIG_MODPLUG CONFIG_MPC CONFIG_VORBIS CONFIG_WAV
makefile_vars CONFIG_ALSA CONFIG_AO CONFIG_ARTS CONFIG_OSS CONFIG_SUN
generate_config_mk
|