1AC_INIT(../include/ptlib.h)
2
3AC_PREREQ([2.63])  # sometimes this file gets processed by old autoconf
4AC_PROG_CXX
5AC_PROG_CPP
6
7AC_CANONICAL_TARGET()
8
9dnl ########################################################################
10dnl set the PREFIX accordingly
11if test "x$prefix" = "xNONE"; then
12   INSTALLPREFIX="/usr/local"
13else
14   INSTALLPREFIX="${prefix}"
15fi
16
17AC_SUBST(INSTALLPREFIX)
18
19dnl ########################################################################
20dnl set LIBDIR accordingly
21LIBDIR="${libdir}"
22AC_SUBST(LIBDIR)
23
24AC_ARG_ENABLE(plugins,           disable plugin support])
25if test "${enable_plugins}z" = "z" ; then
26  enable_plugins=yes
27fi
28if test "$enable_plugins" = "no" ; then
29  AC_MSG_NOTICE(Plugins disabled)
30else
31
32
33AC_ARG_ENABLE(audio,
34       [  --disable-audio        disable audio support])
35if test "${enable_audio}z" = "z" ; then
36  enable_audio=yes
37fi
38
39if test "${enable_audio}" = "yes" ; then
40
41dnl #########################################################################
42dnl check for Alsa sound support
43dnl ########################################################################
44
45AC_ARG_ENABLE(alsa, [  --enable-alsa           enable ALSA audio support],,enable_alsa=yes)
46
47if test "${enable_alsa}z" = "yesz" ; then
48  AC_CHECK_HEADER(alsa/asoundlib.h, ALSAHDR=1)
49  AC_MSG_CHECKING(for ALSA sound support)
50  if test "${ALSAHDR}z" != "z"; then
51    AC_SUBST(HAS_ALSA, 1)
52    AC_MSG_RESULT(yes)
53  else
54    AC_MSG_RESULT(no)
55  fi
56fi
57
58dnl #########################################################################
59dnl check for ESD sound support
60dnl ########################################################################
61
62AC_ARG_ENABLE(esd, [  --enable-esd            enable ESD audio support],,enable_esd=no)
63
64if test "${enable_esd}z" = "yesz" ; then
65  AC_CHECK_HEADER(esd.h, ESDHDR=1)
66  AC_MSG_CHECKING(for ESD sound support)
67  if test "${ESDHDR}z" != "z"; then
68    AC_SUBST(HAS_ESD, 1)
69    AC_MSG_RESULT(yes)
70  else
71    AC_MSG_RESULT(no)
72  fi
73fi
74
75dnl #########################################################################
76dnl check for OSS sound support
77dnl ########################################################################
78
79AC_ARG_ENABLE(oss, [  --enable-oss            enable OSS audio support],,enable_oss=no)
80
81if test "${enable_oss}z" = "yesz" ; then
82  AC_CHECK_HEADER(sys/soundcard.h, OSSSNDCARDHDR=1)
83  AC_MSG_CHECKING(for OSS sound support)
84  if test "${OSSSNDCARDHDR}z" != "z"; then
85    AC_SUBST(HAS_OSS, 1)
86    AC_MSG_RESULT(yes)
87  else
88    AC_MSG_RESULT(no)
89  fi
90fi
91dnl #########################################################################
92
93dnl check for Pulse sound support
94dnl ########################################################################
95
96AC_ARG_ENABLE(pulse, [  --enable-pulse       enable Pulse audio support],,enable_pulse=yes)
97
98if test "${enable_pulse}z" = "yesz" ; then
99  AC_CHECK_HEADER(pulse/simple.h, PULSESNDCARDHDR=1)
100  AC_MSG_CHECKING(for Pulse sound support)
101  if test "${PULSESNDCARDHDR}z" != "z"; then
102    AC_SUBST(HAS_PULSE, 1)
103    AC_MSG_RESULT(yes)
104  else
105    AC_MSG_RESULT(no)
106  fi
107fi
108
109dnl #########################################################################
110dnl check for sunaudio sound support
111dnl ########################################################################
112
113AC_ARG_ENABLE(sunaudio, [  --enable-sunaudio            enable  Sun audio support],,enable_sunaudio=no)
114
115if test "${enable_sunaudio}z" = "yesz" ; then
116  AC_CHECK_HEADER(sys/conf.h, SUNSNDCARDHDR=1)
117  AC_MSG_CHECKING(for Sun audio sound support)
118  if test "${SUNSNDCARDHDR}z" != "z"; then
119    AC_SUBST(HAS_SUNAUDIO, 1)
120    AC_MSG_RESULT(yes)
121  else
122    AC_MSG_RESULT(no)
123  fi
124fi
125
126dnl #########################################################################
127dnl check for shm sound support
128dnl ########################################################################
129
130AC_ARG_ENABLE(shmaudio, [  --enable-shmaudio       enable shm audio support],,enable_shmaudio=no)
131
132if test "${enable_shmaudio}z" = "yesz" ; then
133  AC_CHECK_FUNC(sem_timedwait, SNDSHMHDR=1)
134  AC_MSG_CHECKING(for shm audio sound support)
135  if test "${SNDSHMHDR}z" != "z"; then
136    AC_SUBST(HAS_AUDIOSHM, 1)
137    AC_MSG_RESULT(yes)
138  else
139    AC_MSG_RESULT(no)
140  fi
141fi
142
143fi # enable_audio
144
145AC_ARG_ENABLE(video,
146       [  --disable-video         disable video device support])
147
148if test "${enable_video}z" = "z" ; then
149  enable_video=yes
150fi
151
152if test "$enable_video" = "yes" ; then
153
154dnl #########################################################################
155dnl check for V4L video support
156dnl ########################################################################
157
158AC_ARG_ENABLE(v4l, [  --enable-v4l            enable V4L video support],,enable_v4l=no)
159if test "${enable_v4l}z" = "yesz" ; then
160  AC_CHECK_HEADER(linux/videodev.h, V4LHDR=1)
161  AC_MSG_CHECKING(for V4L video support)
162  if test "${V4LHDR}z" != "z"; then
163    AC_SUBST(HAS_V4L, 1)
164    AC_MSG_RESULT(yes)
165  else
166    AC_MSG_RESULT(no)
167  fi
168fi
169
170dnl #########################################################################
171dnl check for V4L2 video support
172dnl ########################################################################
173
174AC_ARG_ENABLE(v4l2, [  --enable-v4l2            enable V4L2 video support],,enable_v4l2=yes)
175
176if test "${enable_v4l2}z" = "yesz" ; then
177  case "$target_os" in
178    solaris* | sunos* ) V4L2_HEADER="sys/videodev2.h"   ; ;;
179    netbsd* )           V4L2_HEADER="sys/videoio.h"     ; ;;
180          * )	        V4L2_HEADER="linux/videodev2.h" ; ;;
181  esac
182
183  AC_CHECK_HEADER([$V4L2_HEADER],
184                  [HAS_V4L2=1],
185                  [
186		    # We can't use AC_CHECK_HEADER again because
187                    # the value is cached, perhaps we have another
188                    # method to do this more cleanly ?
189		    AC_MSG_CHECKING([for $V4L2_HEADER with sys/types.h])
190		    AC_TRY_COMPILE([
191					#ifdef __linux__
192					#include <sys/types.h>
193					#include <linux/types.h>
194                                        #else
195                                        #ifdef __sun
196                                        #include <sys/types.h>
197                                        #include <sys/time.h>
198                                        #else
199					#error "not supported"
200					#endif
201					#endif
202					#include "$V4L2_HEADER"
203				    ],
204				    [
205				        return 0;
206				    ],
207				    [
208				        HAS_V4L2=1
209				        AC_MSG_RESULT(yes)
210				    ],
211                                    [
212				        HAS_V4L2=
213				        AC_MSG_RESULT(no)
214                                    ])
215                  ],
216		[
217		#ifdef __linux__
218		#include <linux/types.h>
219		#endif
220		])
221  AC_MSG_CHECKING(for V4L2 video support)
222  if test "x${HAS_V4L2}" = "x1"; then
223    AC_MSG_RESULT(yes)
224    AC_SUBST([V4L2_CXXFLAGS],[-DV4L2_HEADER=\'\"$V4L2_HEADER\"\'])
225  else
226    HAS_V4L2=
227    AC_MSG_RESULT(no)
228  fi
229  AC_SUBST(HAS_V4L2)
230
231  if test "x${HAS_V4L2}" = "x1"; then
232    AC_CHECK_HEADER([libv4l2.h],
233                    [AC_CHECK_LIB([v4l2], [v4l2_fd_open], [HAS_LIBV4L=1])]
234                   )
235
236    AC_MSG_CHECKING([for libv4l2 support])
237    if test "x${HAS_LIBV4L}" = "x1"; then
238      AC_MSG_RESULT(yes)
239    else
240      AC_MSG_RESULT(no)
241    fi
242    AC_SUBST(HAS_LIBV4L)
243  fi
244fi
245
246dnl #########################################################################
247dnl check for BSD video capture support
248dnl ########################################################################
249
250AC_ARG_ENABLE(bsdvideo, [  --enable-bsdvideo       enable BSD video support],,enable_bsdvideo=yes)
251
252if test "${enable_bsdvideo}z" = "yesz" ; then
253  AC_CHECK_HEADER(dev/bktr/ioctl_meteor.h, BSDVIDEOHDR=1)
254  AC_CHECK_HEADER(machine/ioctl_meteor.h, BSDVIDEOHDR=1)
255  AC_CHECK_HEADER(i386/ioctl_meteor.h, BSDVIDEOHDR=1)
256  AC_CHECK_HEADER(dev/ic/bt8xx.h, BSDVIDEOHDR=1)
257  AC_MSG_CHECKING(for BSD video support)
258  if test "${BSDVIDEOHDR}z" != "z"; then
259    AC_SUBST(HAS_BSDVIDEOCAP, 1)
260    AC_MSG_RESULT(yes)
261  else
262    AC_MSG_RESULT(no)
263  fi
264fi
265
266dnl #########################################################################
267dnl check for AVC video support
268dnl ########################################################################
269
270AC_ARG_ENABLE(avc, [  --enable-avc            enable IEEE1394/AVC video support],,enable_avc=no)
271
272if test "${enable_avc}z" = "yesz" ; then
273  AC_CHECK_HEADER(libavc1394/avc1394.h, AVC1394HDR=1)
274  AC_CHECK_HEADER(libdv/dv.h, DVHDR=1)
275  AC_CHECK_HEADER(libraw1394/raw1394.h, RAW1394HDR=1)
276  AC_MSG_CHECKING(for IEEE1394/AVC video support)
277  if test "${AVC1394HDR}z" != "z" -a "${DVHDR}z" != "z" -a "${RAW1394HDR}z" != "z"; then
278    AC_SUBST(HAS_AVC1394, 1)
279    AC_MSG_RESULT(yes)
280  else
281    AC_MSG_RESULT(no)
282  fi
283fi
284
285dnl #########################################################################
286dnl check for DC video support
287dnl ########################################################################
288
289AC_ARG_ENABLE(dc, [  --enable-dc             enable IEEE1394/DC video support],,enable_dc=yes)
290
291if test "${enable_dc}z" = "yesz" ; then
292  AC_CHECK_HEADER(libdc1394/dc1394_control.h, DC1394HDR=1)
293  AC_CHECK_HEADER(libraw1394/raw1394.h, RAW1394HDR=1)
294  AC_MSG_CHECKING(for IEEE1394/DC video support)
295  if test "${DC1394HDR}z" != "z" -a "${RAW1394HDR}z" != "z"; then
296    AC_SUBST(HAS_DC1394, 1)
297    AC_MSG_RESULT(yes)
298    AC_MSG_CHECKING(if dc1394_dma_setup_capture has 12 parms)
299    AC_COMPILE_IFELSE([AC_LANG_SOURCE([
300#include "libdc1394/dc1394_control.h"
301int main(int ac,char **av)
302{
303  raw1394handle_t handle;
304  nodeid_t node;
305  int channel;
306  int format;
307  int mode;
308  int speed;
309  int frame_rate;
310  int num_dma_buffers;
311  int do_extra_buffering;
312  int drop_frames;
313  const char *dma_device_file;
314  dc1394_cameracapture *camera;
315  dc1394_dma_setup_capture(handle, node, channel, format, mode, speed, frame_rate, num_dma_buffers,
316			   do_extra_buffering, drop_frames, dma_device_file, camera);
317  return 0;
318}
319])],NEW_DC_API=1, NEW_DC_API=0)
320    if test "$NEW_DC_API" = "1" ; then
321      AC_SUBST(DC_CFLAGS, -DNEW_DC_API)
322      AC_MSG_RESULT(yes)
323    else
324      AC_SUBST(DC_CFLAGS)
325      AC_MSG_RESULT(no)
326    fi
327  else
328    AC_MSG_RESULT(no)
329  fi
330fi
331
332fi
333dnl end of test for video
334
335fi # enable_plugins
336
337dnl ########################################################################
338dnl output header file
339
340AC_CONFIG_FILES(Makefile)
341AC_CONFIG_FILES(vidinput_v4l2/Makefile)
342AC_CONFIG_FILES(vidinput_dc/Makefile)
343
344AC_OUTPUT()
345