3 # Configuration shell script
8 VERSION
=`cut -f2 -d\" VERSION`
10 # default installation prefix
14 while [ $# -gt 0 ] ; do
17 --help) CONFIG_HELP
=1 ;;
19 --with-pthreads) WITH_PTHREADS
=1 ;;
21 --prefix) PREFIX
=$2 ; shift ;;
22 --prefix=*) PREFIX
=`echo $1 | sed -e 's/--prefix=//'` ;;
28 if [ "$CONFIG_HELP" = "1" ] ; then
30 echo "Available options:"
31 echo "--prefix=PREFIX Installation prefix ($PREFIX)."
32 echo "--with-pthreads Activate POSIX threads support."
35 echo "Environment variables:"
37 echo "CFLAGS Compile flags (i.e., -O3)."
47 echo "/* automatically created by config.sh - do not modify */" > config.h
48 echo "# automatically created by config.sh - do not modify" > makefile.opts
54 if [ "$CC" = "" ] ; then
56 # if CC is unset, try if gcc is available
57 which gcc
> /dev
/null
2>&1
64 echo "CC=$CC" >> makefile.opts
67 if [ "$AR" = "" ] ; then
71 echo "AR=$AR" >> makefile.opts
74 if [ "$LEX" = "" ] ; then
78 echo "LEX=$LEX" >> makefile.opts
81 if [ "$YACC" = "" ] ; then
85 echo "YACC=$YACC" >> makefile.opts
88 cat VERSION
>> config.h
90 # add installation prefix
91 echo "#define CONFOPT_PREFIX \"$PREFIX\"" >> config.h
95 #########################################################
97 # configuration directives
100 if [ -z "$CFLAGS" ] ; then
104 echo -n "Testing if C compiler supports ${CFLAGS}... "
105 echo "int main(int argc, char *argv[]) { return 0; }" > .tmp.c
107 $CC .tmp.c
-o .tmp.o
2>> .config.log
112 echo "No; resetting to defaults"
116 echo "CFLAGS=$CFLAGS" >> makefile.opts
122 echo -n "Testing for win32... "
123 if [ "$WITHOUT_WIN32" = "1" ] ; then
124 echo "Disabled by user"
126 echo "#include <windows.h>" > .tmp.c
127 echo "#include <commctrl.h>" >> .tmp.c
128 echo "int STDCALL WinMain(HINSTANCE h, HINSTANCE p, LPSTR c, int m)" >> .tmp.c
129 echo "{ return 0; }" >> .tmp.c
131 TMP_LDFLAGS
="-lwinmm"
132 $CC .tmp.c
$TMP_LDFLAGS -o .tmp.o
2>> .config.log
135 echo "#define CONFOPT_WIN32 1" >> config.h
139 echo $TMP_LDFLAGS >> config.ldflags
140 DRIVERS
="win32 ${DRIVERS}"
147 echo -n "Testing for Linux OSS... "
148 echo "#include <linux/soundcard.h>" > .tmp.c
149 echo "int main(void) {" >> .tmp.c
150 echo "int i=open(\"/dev/dsp\",0);" >> .tmp.c
151 echo "ioctl(i,SNDCTL_DSP_SETFRAGMENT,&i);" >> .tmp.c
152 echo "return 0; } " >>.tmp.c
154 $CC .tmp.c
-o .tmp.o
2> /dev
/null
156 echo "#define CONFOPT_LINUX_OSS 1" >> config.h
158 DRIVERS
="oss ${DRIVERS}"
163 # test for IRIX audio library
164 echo -n "Testing for IRIX audio library... "
165 echo "#include <dmedia/audio.h>" > .tmp.c
166 echo "int main(void) { alNewConfig(); return 0; }" >> .tmp.c
168 $CC .tmp.c
-laudio -o .tmp.o
2> /dev
/null
170 echo "#define CONFOPT_SGI 1" >> config.h
171 echo "-laudio" >> config.ldflags
173 DRIVERS
="sgi ${DRIVERS}"
178 # test for esound library
179 echo -n "Testing for esound development libraries... "
180 echo "#include <esd.h>" > .tmp.c
181 echo "int main(void) { return 0; }" >> .tmp.c
183 $CC -I/usr
/local
/include
-L/usr
/local
/lib
-lesd .tmp.c
-o .tmp.o
2> /dev
/null
185 echo "#define CONFOPT_ESD 1" >> config.h
186 echo "-lesd" >> config.ldflags
188 DRIVERS
="esd ${DRIVERS}"
193 # test for artsc library
194 echo -n "Testing for aRts development libraries... "
195 echo "#include <artsc.h>" > .tmp.c
196 echo "int main(void) { arts_init(); return 0; }" >> .tmp.c
198 TMP_CFLAGS
=`artsc-config --cflags 2>/dev/null`
199 TMP_LDFLAGS
=`artsc-config --libs 2>/dev/null`
201 $CC $TMP_CFLAGS .tmp.c
$TMP_LDFLAGS -o .tmp.o
2> /dev
/null
203 echo "#define CONFOPT_ARTS 1" >> config.h
204 echo $TMP_CFLAGS >> config.cflags
205 echo $TMP_LDFLAGS >> config.ldflags
207 DRIVERS
="arts ${DRIVERS}"
212 # test for pulseaudio libraries
213 echo -n "Testing for Pulseaudio development libraries... "
214 echo "#include <pulse/simple.h>" > .tmp.c
215 echo "#include <pulse/error.h>" >> .tmp.c
216 echo "int main(void) { return 0; }" >> .tmp.c
218 TMP_CFLAGS
=$
(pkg-config libpulse-simple
--cflags 2>/dev
/null
)
219 TMP_LDFLAGS
=$
(pkg-config libpulse-simple
--libs 2>/dev
/null
)
221 $CC $TMP_CFLAGS .tmp.c
$TMP_LDFLAGS -o .tmp.o
2> /dev
/null
223 echo "#define CONFOPT_PULSEAUDIO 1" >> config.h
224 echo $TMP_CFLAGS >> config.cflags
225 echo $TMP_LDFLAGS >> config.ldflags
227 DRIVERS
="pulse ${DRIVERS}"
232 # test for getuid() availability
233 echo -n "Testing for getuid() existence... "
234 echo "#include <unistd.h>" > .tmp.c
235 echo "#include <sys/types.h>" >> .tmp.c
236 echo "int main(void) { getuid(); return 0; }" >> .tmp.c
240 $CC $TMP_CFLAGS .tmp.c
$TMP_LDFLAGS -o .tmp.o
2> /dev
/null
244 echo "No; activating workaround"
245 echo "#define getuid() 1000" >> config.h
248 # test for number of arguments in mkdir()
249 echo -n "Testing for number of arguments in mkdir()... "
250 echo "#include <stdio.h>" > .tmp.c
251 echo "#include <string.h>" >> .tmp.c
252 echo "#include <stdlib.h>" >> .tmp.c
253 echo "#include <unistd.h>" >> .tmp.c
254 echo "#include <sys/stat.h>" >> .tmp.c
255 echo "#include <sys/types.h>" >> .tmp.c
256 echo "int main(void) { mkdir(\"testdir\"); return 0; }" >> .tmp.c
258 $CC $TMP_CFLAGS .tmp.c
$TMP_LDFLAGS -o .tmp.o
2> /dev
/null
261 echo "#define CONFOPT_MKDIR_ARGS 1" >> config.h
264 echo "#define CONFOPT_MKDIR_ARGS 2" >> config.h
267 echo -n "Testing for nanosleep() support... "
268 echo "#include <time.h>" > .tmp.c
269 echo "int main(void) { struct timespec ts; nanosleep(&ts, NULL); return 0; }" >> .tmp.c
273 $CC $TMP_CFLAGS .tmp.c
$TMP_LDFLAGS -o .tmp.o
2> /dev
/null
276 echo "#define CONFOPT_NANOSLEEP 1" >> config.h
278 echo "No; MIDI output will not be available"
283 if [ "$WITH_PTHREADS" = 1 ] ; then
284 echo "#define CONFOPT_PTHREADS 1" >> config.h
285 echo "-pthread" >> config.ldflags
289 echo -n "Testing if Grutatxt is installed... "
293 if which grutatxt
> /dev
/null
2>&1 ; then
295 echo "GRUTATXT=yes" >> makefile.opts
296 DOCS
="\$(GRUTATXT_DOCS)"
299 echo "GRUTATXT=no" >> makefile.opts
303 echo -n "Testing if mp_doccer is installed... "
304 MP_DOCCER
=$
(which mp_doccer||
which mp-doccer
)
308 if ${MP_DOCCER} --help |
grep grutatxt
> /dev
/null
; then
312 echo "MP_DOCCER=yes" >> makefile.opts
313 DOCS
="$DOCS \$(MP_DOCCER_DOCS)"
315 grep GRUTATXT
=yes makefile.opts
> /dev
/null
&& DOCS
="$DOCS \$(G_AND_MP_DOCS)"
318 echo "MP_DOCCER=no" >> makefile.opts
322 echo "MP_DOCCER=no" >> makefile.opts
325 #########################################################
329 echo "BIN=$BIN" >> makefile.opts
330 echo "DOCS=$DOCS" >> makefile.opts
331 echo "VERSION=$VERSION" >> makefile.opts
332 echo "PREFIX=$PREFIX" >> makefile.opts
333 echo >> makefile.opts
335 cat makefile.opts makefile.
in makefile.depend
> Makefile
337 echo "#define CONFOPT_DRIVERS \"${DRIVERS}\"" >> config.h
339 echo "Configured drivers: ${DRIVERS}"
341 #########################################################