Small clean up to http_open()
[cmus.git] / configure
blobf95e64dcbf76a14167f3999c60f404e8fa2214d3
1 #!/bin/sh
3 . scripts/configure.sh || exit 1
5 check_cflags()
7 check_cc_flag -std=gnu99 -pipe -Wall -Wshadow -Wcast-align -Wpointer-arith \
8 -Wwrite-strings -Wundef -Wmissing-prototypes -Wredundant-decls
10 for i in -Wdeclaration-after-statement \
11 -Wold-style-definition \
12 -Wno-pointer-sign \
13 -Werror-implicit-function-declaration
15 check_cc_flag $i
16 done
17 return 0
20 check_compat()
22 COMPAT_LIBS=
23 case `uname -s` in
24 SunOS)
25 # connect() etc.
26 try_link -lsocket && COMPAT_LIBS="$COMPAT_LIBS -lsocket"
28 # gethostbyname()
29 try_link -lnsl && COMPAT_LIBS="$COMPAT_LIBS -lnsl"
31 # nanosleep()
32 if try_link -lrt
33 then
34 COMPAT_LIBS="$COMPAT_LIBS -lrt"
35 elif try_link -lposix4
36 then
37 COMPAT_LIBS="$COMPAT_LIBS -lposix4"
40 CYGWIN*)
41 CONFIG_CYGWIN=y
42 makefile_vars CONFIG_CYGWIN
43 esac
44 makefile_vars COMPAT_LIBS
47 check_ncurses()
49 if check_library NCURSES "" -lncursesw
50 then
51 widechars=y
52 return 0
54 if check_library NCURSES "" -lncurses || check_library NCURSES "" -lcurses
55 then
56 widechars=n
57 msg_error "Your ncurses does not support wide characters!"
58 msg_error "Install ncursesw if you need wide character support,"
59 msg_error "you can ignore this warning otherwise."
60 return 0
62 return 1
65 check_mpc()
67 check_library MPC "" "-lmpcdec"
68 return $?
71 check_flac()
73 check_library FLAC "" "-lFLAC -lm" && return 0
74 check_library FLAC "" "-lFLAC -lvorbisfile -lm"
75 return $?
78 check_mad()
80 pkg_config MAD "mad" "" "-lmad -lm"
81 return $?
84 check_mikmod()
86 app_config MIKMOD libmikmod-config && return 0
87 # mikmod is linked against pthread
88 check_library MIKMOD "$PTHREAD_CFLAGS" "-lmikmod $PTHREAD_LIBS"
89 return $?
92 check_modplug()
94 pkg_config MODPLUG "libmodplug" "-I/usr/include/libmodplug" "-lmodplug -lstdc++ -lm"
95 return $?
98 check_vorbis()
100 if test "$CONFIG_TREMOR" = y
101 then
102 pkg_config VORBIS "vorbisidec" "" "-lvorbisidec -lm"
103 return $?
104 else
105 pkg_config VORBIS "vorbisfile" "" "-lvorbisfile -lvorbis -lm -logg"
106 return $?
110 check_wavpack()
112 pkg_config WAVPACK "wavpack" "" "-lwavpack"
113 return $?
116 check_alsa()
118 # the alsa.pc file should be always available
119 pkg_config ALSA "alsa >= 1.0.11"
120 return $?
123 check_ao()
125 pkg_config AO "ao" "" "-lao"
126 return $?
129 check_arts()
131 app_config ARTS artsc-config
132 return $?
135 check_oss()
137 case `uname -s` in
138 Linux|*FreeBSD)
140 *BSD)
141 check_library OSS "" "-lossaudio"
142 return $?
145 # unknown
147 esac
149 OSS_CFLAGS=""
150 OSS_LIBS=""
151 msg_checking "for header <sys/soundcard.h>"
152 if test -f /usr/include/sys/soundcard.h
153 then
154 msg_result "yes"
155 makefile_vars OSS_CFLAGS OSS_LIBS
156 return 0
157 else
158 msg_result "no"
160 return 1
163 check_sun()
165 msg_checking "for header <sys/audioio.h>"
166 if test -f /usr/include/sys/audioio.h
167 then
168 msg_result "yes"
169 return 0
170 else
171 msg_result "no"
172 return 1
176 check_waveout()
178 case `uname -s` in
179 CYGWIN*)
180 check_library WAVEOUT "" "-lwinmm"
181 return $?
182 esac
183 return 1
186 check_mp4()
188 check_header faad.h &&
189 check_library MP4 "" "-lmp4v2 -lfaad -lm"
190 return $?
193 check_aac()
195 check_header faad.h &&
196 check_library AAC "" "-lfaad -lm"
197 return $?
200 check_ffmpeg()
202 pkg_config FFMPEG "libavformat"
203 return $?
206 # defaults
207 prefix=/usr/local
208 DEBUG=1
209 CONFIG_TREMOR=n
210 CONFIG_MIKMOD=n
211 # unset CONFIG_* variables: if check succeeds 'y', otherwise 'n'
213 USAGE="
214 Options:
215 prefix Installation prefix [$prefix]
216 bindir User executables [\$prefix/bin]
217 datadir Read-only data [\$prefix/share]
218 libdir Libraries [\$prefix/lib]
219 mandir Man pages [\$datadir/man]
220 exampledir Examples [\$datadir/doc/cmus/examples]
221 DEBUG Debugging level (0-2) [$DEBUG]
223 Optional Features: y/n
224 CONFIG_FLAC Free Lossless Audio Codec (.flac, .fla) [auto]
225 CONFIG_MAD MPEG Audio Decoder (.mp3, .mp2, streams) [auto]
226 CONFIG_MODPLUG libmodplug (.mod, .x3m, ...) [auto]
227 CONFIG_MIKMOD libmikmod (.mod, .x3m, ...) [n]
228 CONFIG_MPC libmpcdec (Musepack .mpc, .mpp, .mp+) [auto]
229 CONFIG_VORBIS Ogg/Vorbis (.ogg, application/ogg, audio/x-ogg) [auto]
230 CONFIG_TREMOR Use Tremor as Ogg/Vorbis input plugin [n]
231 CONFIG_WAV WAV [y]
232 CONFIG_WAVPACK WavPack (.wv, audio/x-wavpack) [auto]
233 CONFIG_MP4 MPEG-4 AAC (.mp4, .m4a, .m4b) [auto]
234 CONFIG_AAC AAC (.aac, audio/aac, audio/aacp) [auto]
235 CONFIG_FFMPEG FFMPEG (.shn, .wma) [auto]
236 CONFIG_ALSA ALSA [auto]
237 CONFIG_AO Libao cross-platform audio library [auto]
238 CONFIG_ARTS ARTS [auto]
239 CONFIG_OSS Open Sound System [auto]
240 CONFIG_SUN Sun Audio [auto]
241 CONFIG_WAVEOUT Windows Wave Out [auto]
243 Also many standard variables like CC are recognized."
245 parse_command_line "$@"
247 case $DEBUG in
248 [0-2])
251 die "DEBUG must be 0-2"
253 esac
255 var_default bindir "${prefix}/bin"
256 var_default datadir "${prefix}/share"
257 var_default libdir "${prefix}/lib"
258 var_default mandir "${datadir}/man"
259 var_default exampledir "${datadir}/doc/cmus/examples"
261 check check_cc
262 check check_cflags
263 check check_cc_depgen
264 check check_endianness
265 check check_compat
266 check check_dl
267 check check_pthread
268 check check_ncurses
269 check check_iconv
271 check check_flac CONFIG_FLAC
272 check check_mad CONFIG_MAD
273 check check_mikmod CONFIG_MIKMOD
274 check check_modplug CONFIG_MODPLUG
275 check check_mpc CONFIG_MPC
276 check check_vorbis CONFIG_VORBIS
277 check check_wavpack CONFIG_WAVPACK
278 check check_mp4 CONFIG_MP4
279 check check_aac CONFIG_AAC
280 check check_ffmpeg CONFIG_FFMPEG
281 # nothing to check, just validate the variable values
282 check true CONFIG_TREMOR
283 check true CONFIG_WAV
284 check check_alsa CONFIG_ALSA
285 check check_ao CONFIG_AO
286 check check_arts CONFIG_ARTS
287 check check_oss CONFIG_OSS
288 check check_sun CONFIG_SUN
289 check check_waveout CONFIG_WAVEOUT
291 test "$WORDS_BIGENDIAN" = y && CFLAGS="${CFLAGS} -DWORDS_BIGENDIAN"
293 DATADIR="$datadir"
294 LIBDIR="$libdir"
296 config_header config/datadir.h DATADIR
297 config_header config/libdir.h LIBDIR
298 config_header config/debug.h DEBUG
299 config_header config/tremor.h CONFIG_TREMOR
301 makefile_vars bindir datadir libdir mandir exampledir
302 makefile_vars CONFIG_FLAC CONFIG_MAD CONFIG_MIKMOD CONFIG_MODPLUG CONFIG_MPC CONFIG_VORBIS CONFIG_WAVPACK CONFIG_WAV CONFIG_MP4 CONFIG_AAC CONFIG_FFMPEG
303 makefile_vars CONFIG_ALSA CONFIG_AO CONFIG_ARTS CONFIG_OSS CONFIG_SUN CONFIG_WAVEOUT
305 generate_config_mk