1dnl Process this file with autoconf to produce a configure script.
2
3dnl Boilerplate code.
4
5AC_INIT(src/audiere.h)
6AC_CONFIG_AUX_DIR(config)
7
8AC_CANONICAL_SYSTEM
9
10VERSION=1.9.4
11PACKAGE="audiere"
12
13AC_SUBST(VERSION)
14AC_SUBST(PACKAGE)
15
16AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
17
18dnl Checks for options.
19
20AC_ARG_ENABLE(debug,
21    AC_HELP_STRING(--enable-debug, build debug),
22    CFLAGS="$CFLAGS -g"
23    CXXFLAGS="$CXXFLAGS -g"
24    AC_DEFINE(DEBUG))
25
26AC_ARG_ENABLE(opt,
27    AC_HELP_STRING(--enable-opt, build with optimizations),
28    CFLAGS="$CFLAGS -O2"
29    CXXFLAGS="$CXXFLAGS -O2")
30
31dnl Checks for programs.
32
33AC_PROG_CC
34AC_PROG_CPP
35AC_PROG_CXX
36AC_PROG_CXXCPP
37AC_PROG_MAKE_SET
38AM_PROG_LIBTOOL
39
40dnl We test with C++ libraries, so use the C++ compiler...
41AC_LANG(C++)
42
43dnl Checks for libraries.
44
45dnl If building on Cygwin, don't let windows.h define min() or max()
46case $host in
47  *cygwin*)
48    CXXFLAGS="-DWIN32_LEAN_AND_MEAN -DNOMINMAX -DADR_DECL= -DADR_CALL= $CXXFLAGS"
49    ;;
50esac
51
52dnl If building with gcc, build with all warnings except "class has virtual
53dnl functions but non-virtual destructor".
54if test "x$GXX" = "xyes" ; then
55   CXXFLAGS="$CXXFLAGS -Wall -Wno-non-virtual-dtor"
56fi
57if test "x$GCC" = "xyes" ; then
58   CFLAGS="$CFLAGS -Wall -Wno-non-virtual-dtor"
59fi
60
61dnl Look for pthreads
62AC_CHECK_LIB(pthread, pthread_create,
63    LIBS="-lpthread $LIBS"
64    EXTRA_LIBS="-lpthread $EXTRA_LIBS"
65  ,
66    AC_MSG_ERROR(could not find pthread library))
67
68dnl Look for FLAC
69AC_CHECK_LIB(no_FLAC, FLAC__seekable_stream_decoder_process_single,
70    LIBS="-lFLAC -lm $LIBS"
71    EXTRA_LIBS="-lFLAC -lm $EXTRA_LIBS"
72    HAVE_FLAC=true
73  ,
74    AC_MSG_WARN([libFLAC not found.  Install FLAC from http://flac.sourceforge.net/])
75    AC_MSG_WARN([Disabling FLAC support.])
76    AC_DEFINE(NO_FLAC)
77  ,
78    -lm)
79AM_CONDITIONAL(HAVE_FLAC, test "x$HAVE_FLAC" = "xtrue")
80
81dnl Look for DUMB
82AC_CHECK_LIB(dumb, duh_start_renderer,
83    LIBS="-ldumb $LIBS"
84    EXTRA_LIBS="-ldumb $EXTRA_LIBS"
85    HAVE_DUMB=true
86  ,
87    AC_MSG_WARN([libdumb not found.  Install DUMB from http://dumb.sourceforge.net/])
88    AC_MSG_WARN([Disabling DUMB support.])
89    AC_DEFINE(NO_DUMB))
90AM_CONDITIONAL(HAVE_DUMB, test "x$HAVE_DUMB" = "xtrue")
91
92dnl Look for libcdaudio
93AC_CHECK_LIB(cdaudio, cd_init_device,
94    LIBS="-lcdaudio $LIBS"
95    EXTRA_LIBS="-lcdaudio $EXTRA_LIBS"
96    HAVE_LIBCDAUDIO=true
97  ,
98    AC_MSG_WARN([libcdaudio not found.  Install it from http://libcdaudio.sf.net/])
99    AC_MSG_WARN([CD audio support might still be possible through another means such as winmm.]))
100AM_CONDITIONAL(HAVE_LIBCDAUDIO, test "x$HAVE_LIBCDAUDIO" = "xtrue")
101
102dnl Look for the POSIX realtime clock
103AC_SEARCH_LIBS(clock_gettime, rt,
104    AC_DEFINE(HAVE_CLOCK_GETTIME))
105
106dnl Look for SGI audio
107AC_CHECK_LIB(audio, alNewConfig,
108    HAVE_AL=true
109    AC_DEFINE(HAVE_AL)
110    LIBS="-laudio $LIBS"
111    EXTRA_LIBS="-laudio $EXTRA_LIBS")
112AM_CONDITIONAL(HAVE_AL, test "x$HAVE_AL" = "xtrue")
113
114dnl Look for wxWindows
115AC_PATH_PROG(WX_CONFIG, wx-config, no, $PATH:/usr/local/bin)
116if [[ "$WX_CONFIG" = "no" ]] ; then
117    AC_MSG_WARN([wxWindows not found, not building wxPlayer.
118        See http://www.wxwindows.org/])
119else
120    old_CXXFLAGS="$CXXFLAGS"
121    old_LIBS="$LIBS"
122    WXFLAGS=`$WX_CONFIG --cxxflags`
123    WXLIBS=`$WX_CONFIG --libs`
124    CXXFLAGS="$WXFLAGS $CXXFLAGS"
125    LIBS="$WXLIBS $LIBS"
126
127    AC_MSG_CHECKING(if small wxWindows application links)
128    AC_LINK_IFELSE(AC_LANG_SOURCE([
129        #include <wx/wx.h>
130        class App : public wxApp {
131        public:
132          bool OnInit() {
133            return false;
134          }
135        };
136        IMPLEMENT_APP(App)
137        ])
138    ,
139        AC_MSG_RESULT(yes)
140        HAVE_WXWINDOWS=true
141        AC_DEFINE(HAVE_WXWINDOWS)
142        WX_LIBS=`$WX_CONFIG --libs`
143        WX_CPPFLAGS=`$WX_CONFIG --cxxflags`
144        AC_SUBST(WX_LIBS)
145        AC_SUBST(WX_CPPFLAGS)
146    ,
147        AC_MSG_RESULT(no)
148        AC_MSG_WARN([wx-config found but linking with wxWindows failed.
149Maybe wxWindows was compiled with another compiler?]))
150
151    CXXFLAGS="$old_CXXFLAGS"
152    LIBS="$old_LIBS"
153fi
154
155AM_CONDITIONAL(HAVE_WXWINDOWS, test "x$HAVE_WXWINDOWS" = "xtrue")
156
157dnl Checks for header files.
158
159AC_HEADER_STDC
160AC_CHECK_HEADER(unistd.h)
161AC_CHECK_HEADER(sys/soundcard.h,
162    HAVE_OSS=true
163    AC_DEFINE(HAVE_OSS))
164AM_CONDITIONAL(HAVE_OSS, test "x$HAVE_OSS" = "xtrue")
165
166AC_CHECK_HEADER(vorbis/vorbisfile.h,
167    HAVE_OGG=true
168    LIBS="-lvorbisfile -lvorbis -logg $LIBS"
169    EXTRA_LIBS="-lvorbisfile -lvorbis -logg $EXTRA_LIBS"
170  ,
171    AC_MSG_WARN([Could not find vorbisfile header.  You do not appear to have libvorbis installed.
172Get libvorbis from http://www.vorbis.com/])
173    AC_MSG_WARN([Disabling Ogg Vorbis support.])
174    AC_DEFINE(NO_OGG))
175AM_CONDITIONAL(HAVE_OGG, test "x$HAVE_OGG" = "xtrue")
176
177AC_CHECK_HEADER(speex.h,
178    HAVE_SPEEX=true
179    LIBS="-lspeex $LIBS"
180    EXTRA_LIBS="-lspeex $EXTRA_LIBS"
181  ,
182    AC_MSG_WARN([Could not find speex header.  You do not appear to have libspeex installed.
183Get libspeex from http://www.speex.org/])
184    AC_MSG_WARN([Disabling speex support.])
185    AC_DEFINE(NO_SPEEX))
186AM_CONDITIONAL(HAVE_SPEEX, test "x$HAVE_SPEEX" = "xtrue")
187
188AC_CHECK_HEADER(dsound.h,
189    HAVE_DSOUND=true
190    AC_DEFINE(HAVE_DSOUND)
191    LIBS="-ldsound -lole32 -lrpcrt4 $LIBS"
192    EXTRA_LIBS="-ldsound -lole32 -lrpcrt4 $EXTRA_LIBS")
193AM_CONDITIONAL(HAVE_DSOUND, test "x$HAVE_DSOUND" = "xtrue")
194
195AC_CHECK_HEADER(mmsystem.h,
196    HAVE_WINMM=true
197    AC_DEFINE(HAVE_WINMM)
198    LIBS="-lwinmm $LIBS"
199    EXTRA_LIBS="-lwinmm $EXTRA_LIBS"
200  ,,
201    [#include <windows.h>])
202AM_CONDITIONAL(HAVE_WINMM, test "x$HAVE_WINMM" = "xtrue")
203
204dnl Checks for typedefs, structures, and compiler characteristics.
205
206AC_C_BIGENDIAN
207
208dnl Output makefiles.
209
210AC_SUBST(WORDS_BIGENDIAN)
211AC_SUBST(EXTRA_LIBS)
212AC_OUTPUT(
213        audiere-config
214	Makefile
215	doc/Makefile
216        examples/Makefile
217        examples/simple/Makefile
218        examples/wxPlayer/Makefile
219        src/Makefile
220        src/mpaudec/Makefile
221        test/Makefile
222        test/buffer/Makefile
223	test/callback/Makefile
224        test/device/Makefile
225	test/formats/Makefile
226        test/interactive/Makefile
227        test/performance/Makefile,
228    [chmod a+x audiere-config])
229