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 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302
|
#!/bin/sh
. scripts/configure.sh || exit 1
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_compat()
{
COMPAT_LIBS=
case `uname -s` in
SunOS)
# connect() etc.
try_link -lsocket && COMPAT_LIBS="$COMPAT_LIBS -lsocket"
# gethostbyname()
try_link -lnsl && COMPAT_LIBS="$COMPAT_LIBS -lnsl"
# nanosleep()
if try_link -lrt
then
COMPAT_LIBS="$COMPAT_LIBS -lrt"
elif try_link -lposix4
then
COMPAT_LIBS="$COMPAT_LIBS -lposix4"
fi
;;
CYGWIN*)
CONFIG_CYGWIN=y
makefile_vars CONFIG_CYGWIN
esac
makefile_vars COMPAT_LIBS
}
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 0
check_library FLAC "" "-lFLAC -lvorbisfile -lm"
return $?
}
check_mad()
{
pkg_config MAD "mad" "" "-lmad -lm"
return $?
}
check_mikmod()
{
app_config MIKMOD libmikmod-config && return 0
# mikmod is linked against pthread
check_library MIKMOD "$PTHREAD_CFLAGS" "-lmikmod $PTHREAD_LIBS"
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 "vorbisidec" "" "-lvorbisidec -lm"
return $?
else
pkg_config VORBIS "vorbisfile" "" "-lvorbisfile -lvorbis -lm -logg"
return $?
fi
}
check_wavpack()
{
pkg_config WAVPACK "wavpack" "" "-lwavpack"
return $?
}
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
}
check_waveout()
{
case `uname -s` in
CYGWIN*)
check_library WAVEOUT "" "-lwinmm"
return $?
esac
return 1
}
check_mp4()
{
check_header faad.h &&
check_library MP4 "" "-lmp4v2 -lfaad -lm"
return $?
}
check_aac()
{
check_header faad.h &&
check_library AAC "" "-lfaad -lm"
return $?
}
check_ffmpeg()
{
pkg_config FFMPEG "libavformat"
return $?
}
# defaults
prefix=/usr/local
DEBUG=1
CONFIG_TREMOR=n
CONFIG_MIKMOD=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]
exampledir Examples [\$datadir/doc/cmus/examples]
DEBUG Debugging level (0-2) [$DEBUG]
Optional Features: y/n
CONFIG_FLAC Free Lossless Audio Codec (.flac, .fla) [auto]
CONFIG_MAD MPEG Audio Decoder (.mp3, .mp2, streams) [auto]
CONFIG_MODPLUG libmodplug (.mod, .x3m, ...) [auto]
CONFIG_MIKMOD libmikmod (.mod, .x3m, ...) [n]
CONFIG_MPC libmpcdec (Musepack .mpc, .mpp, .mp+) [auto]
CONFIG_VORBIS Ogg/Vorbis (.ogg, application/ogg, audio/x-ogg) [auto]
CONFIG_TREMOR Use Tremor as Ogg/Vorbis input plugin [n]
CONFIG_WAV WAV [y]
CONFIG_WAVPACK WavPack (.wv, audio/x-wavpack) [auto]
CONFIG_MP4 MPEG-4 AAC (.mp4, .m4a, .m4b) [auto]
CONFIG_AAC AAC (.aac, audio/aac, audio/aacp) [auto]
CONFIG_FFMPEG FFMPEG (.shn, .wma) [auto]
CONFIG_ALSA ALSA [auto]
CONFIG_AO Libao cross-platform audio library [auto]
CONFIG_ARTS ARTS [auto]
CONFIG_OSS Open Sound System [auto]
CONFIG_SUN Sun Audio [auto]
CONFIG_WAVEOUT Windows Wave Out [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"
var_default exampledir "${datadir}/doc/cmus/examples"
check check_cc
check check_cflags
check check_cc_depgen
check check_endianness
check check_compat
check check_dl
check check_pthread
check check_ncurses
check check_iconv
check check_flac CONFIG_FLAC
check check_mad CONFIG_MAD
check check_mikmod CONFIG_MIKMOD
check check_modplug CONFIG_MODPLUG
check check_mpc CONFIG_MPC
check check_vorbis CONFIG_VORBIS
check check_wavpack CONFIG_WAVPACK
check check_mp4 CONFIG_MP4
check check_aac CONFIG_AAC
check check_ffmpeg CONFIG_FFMPEG
# 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
check check_waveout CONFIG_WAVEOUT
test "$WORDS_BIGENDIAN" = y && CFLAGS="${CFLAGS} -DWORDS_BIGENDIAN"
DATADIR="$datadir"
LIBDIR="$libdir"
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 bindir datadir libdir mandir exampledir
makefile_vars CONFIG_FLAC CONFIG_MAD CONFIG_MIKMOD CONFIG_MODPLUG CONFIG_MPC CONFIG_VORBIS CONFIG_WAVPACK CONFIG_WAV CONFIG_MP4 CONFIG_AAC CONFIG_FFMPEG
makefile_vars CONFIG_ALSA CONFIG_AO CONFIG_ARTS CONFIG_OSS CONFIG_SUN CONFIG_WAVEOUT
generate_config_mk
|