Always start search from beginning when searching via cmus-remote
[cmus.git] / configure
bloba3e4ac75aa0f660a2a11bfed9e938c348b6f17f0
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 if check_header 'ffmpeg/avcodec.h'
204 then
205 makefile_var 'HAVE_FFMPEG_AVCODEC_H' 1
207 return $?
210 # defaults
211 prefix=/usr/local
212 DEBUG=1
213 CONFIG_TREMOR=n
214 CONFIG_MIKMOD=n
215 # unset CONFIG_* variables: if check succeeds 'y', otherwise 'n'
217 USAGE="
218 Options:
219 prefix Installation prefix [$prefix]
220 bindir User executables [\$prefix/bin]
221 datadir Read-only data [\$prefix/share]
222 libdir Libraries [\$prefix/lib]
223 mandir Man pages [\$datadir/man]
224 exampledir Examples [\$datadir/doc/cmus/examples]
225 DEBUG Debugging level (0-2) [$DEBUG]
227 Optional Features: y/n
228 CONFIG_FLAC Free Lossless Audio Codec (.flac, .fla) [auto]
229 CONFIG_MAD MPEG Audio Decoder (.mp3, .mp2, streams) [auto]
230 CONFIG_MODPLUG libmodplug (.mod, .x3m, ...) [auto]
231 CONFIG_MIKMOD libmikmod (.mod, .x3m, ...) [n]
232 CONFIG_MPC libmpcdec (Musepack .mpc, .mpp, .mp+) [auto]
233 CONFIG_VORBIS Ogg/Vorbis (.ogg, application/ogg, audio/x-ogg) [auto]
234 CONFIG_TREMOR Use Tremor as Ogg/Vorbis input plugin [n]
235 CONFIG_WAV WAV [y]
236 CONFIG_WAVPACK WavPack (.wv, audio/x-wavpack) [auto]
237 CONFIG_MP4 MPEG-4 AAC (.mp4, .m4a, .m4b) [auto]
238 CONFIG_AAC AAC (.aac, audio/aac, audio/aacp) [auto]
239 CONFIG_FFMPEG FFMPEG (.shn, .wma) [auto]
240 CONFIG_ALSA ALSA [auto]
241 CONFIG_AO Libao cross-platform audio library [auto]
242 CONFIG_ARTS ARTS [auto]
243 CONFIG_OSS Open Sound System [auto]
244 CONFIG_SUN Sun Audio [auto]
245 CONFIG_WAVEOUT Windows Wave Out [auto]
247 Also many standard variables like CC are recognized."
249 parse_command_line "$@"
251 case $DEBUG in
252 [0-2])
255 die "DEBUG must be 0-2"
257 esac
259 var_default bindir "${prefix}/bin"
260 var_default datadir "${prefix}/share"
261 var_default libdir "${prefix}/lib"
262 var_default mandir "${datadir}/man"
263 var_default exampledir "${datadir}/doc/cmus/examples"
265 check check_cc
266 check check_cflags
267 check check_cc_depgen
268 check check_endianness
269 check check_compat
270 check check_dl
271 check check_pthread
272 check check_ncurses
273 check check_iconv
275 check check_flac CONFIG_FLAC
276 check check_mad CONFIG_MAD
277 check check_mikmod CONFIG_MIKMOD
278 check check_modplug CONFIG_MODPLUG
279 check check_mpc CONFIG_MPC
280 check check_vorbis CONFIG_VORBIS
281 check check_wavpack CONFIG_WAVPACK
282 check check_mp4 CONFIG_MP4
283 check check_aac CONFIG_AAC
284 check check_ffmpeg CONFIG_FFMPEG
285 # nothing to check, just validate the variable values
286 check true CONFIG_TREMOR
287 check true CONFIG_WAV
288 check check_alsa CONFIG_ALSA
289 check check_ao CONFIG_AO
290 check check_arts CONFIG_ARTS
291 check check_oss CONFIG_OSS
292 check check_sun CONFIG_SUN
293 check check_waveout CONFIG_WAVEOUT
295 test "$WORDS_BIGENDIAN" = y && CFLAGS="${CFLAGS} -DWORDS_BIGENDIAN"
297 DATADIR="$datadir"
298 LIBDIR="$libdir"
300 config_header config/datadir.h DATADIR
301 config_header config/libdir.h LIBDIR
302 config_header config/debug.h DEBUG
303 config_header config/tremor.h CONFIG_TREMOR
305 makefile_vars bindir datadir libdir mandir exampledir
306 makefile_vars CONFIG_FLAC CONFIG_MAD CONFIG_MIKMOD CONFIG_MODPLUG CONFIG_MPC CONFIG_VORBIS CONFIG_WAVPACK CONFIG_WAV CONFIG_MP4 CONFIG_AAC CONFIG_FFMPEG
307 makefile_vars CONFIG_ALSA CONFIG_AO CONFIG_ARTS CONFIG_OSS CONFIG_SUN CONFIG_WAVEOUT
309 generate_config_mk