Make sorting by albumartist fall back to artist
[cmus.git] / configure
blob73f6b5780b00d1d293bfa91884418d4111ee7e61
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 -Wold-style-definition -Wno-pointer-sign
12 check_cc_flag $i
13 done
14 return 0
17 check_compat()
19 COMPAT_LIBS=
20 case `uname -s` in
21 SunOS)
22 # connect() etc.
23 try_link -lsocket && COMPAT_LIBS="$COMPAT_LIBS -lsocket"
25 # gethostbyname()
26 try_link -lnsl && COMPAT_LIBS="$COMPAT_LIBS -lnsl"
28 # nanosleep()
29 if try_link -lrt
30 then
31 COMPAT_LIBS="$COMPAT_LIBS -lrt"
32 elif try_link -lposix4
33 then
34 COMPAT_LIBS="$COMPAT_LIBS -lposix4"
37 CYGWIN*)
38 CONFIG_CYGWIN=y
39 makefile_vars CONFIG_CYGWIN
40 esac
41 makefile_vars COMPAT_LIBS
44 check_ncurses()
46 if check_library NCURSES "" -lncursesw
47 then
48 widechars=y
49 return 0
51 if check_library NCURSES "" -lncurses || check_library NCURSES "" -lcurses
52 then
53 widechars=n
54 msg_error "Your ncurses does not support wide characters!"
55 msg_error "Install ncursesw if you need wide character support,"
56 msg_error "you can ignore this warning otherwise."
57 return 0
59 return 1
62 check_mpc()
64 check_library MPC "" "-lmpcdec"
65 return $?
68 check_flac()
70 check_library FLAC "" "-lFLAC -lm" && return 0
71 check_library FLAC "" "-lFLAC -lvorbisfile -lm"
72 return $?
75 check_mad()
77 pkg_config MAD "mad" "" "-lmad -lm"
78 return $?
81 check_mikmod()
83 check_library MIKMOD "" "-lmikmod"
84 return $?
87 check_modplug()
89 pkg_config MODPLUG "libmodplug" "-I/usr/include/libmodplug" "-lmodplug -lstdc++ -lm"
90 return $?
93 check_vorbis()
95 if test "$CONFIG_TREMOR" = y
96 then
97 pkg_config VORBIS "vorbisidec" "" "-lvorbisidec -lm"
98 return $?
99 else
100 pkg_config VORBIS "vorbisfile" "" "-lvorbisfile -lvorbis -lm -logg"
101 return $?
105 check_wavpack()
107 pkg_config WAVPACK "wavpack" "" "-lwavpack"
108 return $?
111 check_alsa()
113 # the alsa.pc file should be always available
114 pkg_config ALSA "alsa >= 1.0.11"
115 return $?
118 check_ao()
120 pkg_config AO "ao" "" "-lao"
121 return $?
124 check_arts()
126 app_config ARTS artsc-config
127 return $?
130 check_oss()
132 case `uname -s` in
133 Linux|*FreeBSD)
135 *BSD)
136 check_library OSS "" "-lossaudio"
137 return $?
140 # unknown
142 esac
144 OSS_CFLAGS=""
145 OSS_LIBS=""
146 msg_checking "for header <sys/soundcard.h>"
147 if test -f /usr/include/sys/soundcard.h
148 then
149 msg_result "yes"
150 makefile_vars OSS_CFLAGS OSS_LIBS
151 return 0
152 else
153 msg_result "no"
155 return 1
158 check_sun()
160 msg_checking "for header <sys/audioio.h>"
161 if test -f /usr/include/sys/audioio.h
162 then
163 msg_result "yes"
164 return 0
165 else
166 msg_result "no"
167 return 1
171 check_waveout()
173 case `uname -s` in
174 CYGWIN*)
175 check_library WAVEOUT "" "-lwinmm"
176 return $?
177 esac
178 return 1
181 check_mp4()
183 check_header faad.h &&
184 check_library MP4 "" "-lmp4v2 -lfaad -lm"
185 return $?
188 check_aac()
190 check_header faad.h &&
191 check_library AAC "" "-lfaad -lm"
192 return $?
195 check_ffmpeg()
197 pkg_config FFMPEG "libavformat"
198 return $?
201 # defaults
202 prefix=/usr/local
203 DEBUG=1
204 CONFIG_TREMOR=n
205 CONFIG_MIKMOD=n
206 # unset CONFIG_* variables: if check succeeds 'y', otherwise 'n'
208 USAGE="
209 Options:
210 prefix Installation prefix [$prefix]
211 bindir User executables [\$prefix/bin]
212 datadir Read-only data [\$prefix/share]
213 libdir Libraries [\$prefix/lib]
214 mandir Man pages [\$datadir/man]
215 DEBUG Debugging level (0-2) [$DEBUG]
217 Optional Features: y/n
218 CONFIG_FLAC Free Lossless Audio Codec (.flac, .fla) [auto]
219 CONFIG_MAD MPEG Audio Decoder (.mp3, .mp2, streams) [auto]
220 CONFIG_MODPLUG libmodplug (.mod, .x3m, ...) [auto]
221 CONFIG_MIKMOD libmikmod (.mod, .x3m, ...) [n]
222 CONFIG_MPC libmpcdec (Musepack .mpc, .mpp, .mp+) [auto]
223 CONFIG_VORBIS Ogg/Vorbis (.ogg, application/ogg, audio/x-ogg) [auto]
224 CONFIG_TREMOR Use Tremor as Ogg/Vorbis input plugin [n]
225 CONFIG_WAV WAV [y]
226 CONFIG_WAVPACK WavPack (.wv, audio/x-wavpack) [auto]
227 CONFIG_MP4 MPEG-4 AAC (.mp4, .m4a, .m4b) [auto]
228 CONFIG_AAC AAC (.aac, audio/aac, audio/aacp) [auto]
229 CONFIG_FFMPEG FFMPEG (.shn, .wma) [auto]
230 CONFIG_ALSA ALSA [auto]
231 CONFIG_AO Libao cross-platform audio library [auto]
232 CONFIG_ARTS ARTS [auto]
233 CONFIG_OSS Open Sound System [auto]
234 CONFIG_SUN Sun Audio [auto]
235 CONFIG_WAVEOUT Windows Wave Out [auto]
237 Also many standard variables like CC are recognized."
239 parse_command_line "$@"
241 case $DEBUG in
242 [0-2])
245 die "DEBUG must be 0-2"
247 esac
249 var_default bindir "${prefix}/bin"
250 var_default datadir "${prefix}/share"
251 var_default libdir "${prefix}/lib"
252 var_default mandir "${datadir}/man"
254 check check_cc
255 check check_cflags
256 check check_cc_depgen
257 check check_endianness
258 check check_compat
259 check check_dl
260 check check_pthread
261 check check_ncurses
262 check check_iconv
264 check check_flac CONFIG_FLAC
265 check check_mad CONFIG_MAD
266 check check_mikmod CONFIG_MIKMOD
267 check check_modplug CONFIG_MODPLUG
268 check check_mpc CONFIG_MPC
269 check check_vorbis CONFIG_VORBIS
270 check check_wavpack CONFIG_WAVPACK
271 check check_mp4 CONFIG_MP4
272 check check_aac CONFIG_AAC
273 check check_ffmpeg CONFIG_FFMPEG
274 # nothing to check, just validate the variable values
275 check true CONFIG_TREMOR
276 check true CONFIG_WAV
277 check check_alsa CONFIG_ALSA
278 check check_ao CONFIG_AO
279 check check_arts CONFIG_ARTS
280 check check_oss CONFIG_OSS
281 check check_sun CONFIG_SUN
282 check check_waveout CONFIG_WAVEOUT
284 test "$WORDS_BIGENDIAN" = y && CFLAGS="${CFLAGS} -DWORDS_BIGENDIAN"
286 DATADIR="$datadir"
287 LIBDIR="$libdir"
289 config_header config/datadir.h DATADIR
290 config_header config/libdir.h LIBDIR
291 config_header config/debug.h DEBUG
292 config_header config/tremor.h CONFIG_TREMOR
294 makefile_vars bindir datadir libdir mandir
295 makefile_vars CONFIG_FLAC CONFIG_MAD CONFIG_MIKMOD CONFIG_MODPLUG CONFIG_MPC CONFIG_VORBIS CONFIG_WAVPACK CONFIG_WAV CONFIG_MP4 CONFIG_AAC CONFIG_FFMPEG
296 makefile_vars CONFIG_ALSA CONFIG_AO CONFIG_ARTS CONFIG_OSS CONFIG_SUN CONFIG_WAVEOUT
298 generate_config_mk