r763: Added configure checks for libdv, libpng, libjpeg.
[cinelerra_cv.git] / configure.in
blobe9819ec42bb11a3556797af57363d1862e923eea
1 AC_INIT(Cinelerra, 2.0)
3 AC_CANONICAL_SYSTEM
5 # Test for minimal version of autoconf
6 AC_PREREQ(2.57)
8 AM_INIT_AUTOMAKE
9 AC_CONFIG_HEADER(config.h)
10 AM_GNU_GETTEXT([external])
11 AM_GNU_GETTEXT_VERSION(0.12.1)
13 AC_LANG_CPLUSPLUS
14 AC_LANG_C
15 AC_PROG_CXX
17 AC_ENABLE_SHARED
18 AC_DISABLE_STATIC
19 AC_PROG_LIBTOOL
21 # hack for libtool 1.5 -- this is ugly and probably wrong, but works
22 if test `libtool --version | grep ltmain.sh | cut -b 25-27` = "1.5"; then
23    LTC_FLAGS="--tag=CC"
24    LTCXX_FLAGS="--tag=CXX"
26 AC_SUBST(LTC_FLAGS)
27 AC_SUBST(LTCXX_FLAGS)
30 # hack for using nasm for .S files
31 CCAS="\$(top_srcdir)/admin/nasm"
32 AC_SUBST(CCAS)
33 AC_SUBST(CCASFLAGS)
35 dnl Check for Video4Linux2
36 AH_TEMPLATE(HAVE_VIDEO4LINUX2, [Define to 1 if Video4Linux2 is available.])
37 AC_CHECK_HEADER([linux/videodev2.h], 
38         [AC_CHECK_MEMBER(struct v4l2_buffer.index, [AC_DEFINE(HAVE_VIDEO4LINUX2)], [],
39                 [#include <linux/time.h>])],
40         [],[#include <linux/time.h>] )
42 ############## SPECIAL DIRECTORIES
43 AC_ARG_WITH(plugindir,
44                                                 AC_HELP_STRING([--with-plugindir], [sets the directory where the plugins should be installed]),
45                                                 [ plugindir=$withval ],
46                                                 [ plugindir="\${exec_prefix}/lib/cinelerra" ])
47 AC_SUBST(plugindir)
49 AC_ARG_WITH(fontsdir,
50                                                 AC_HELP_STRING([--with-fontsdir], [sets the directory where the fonts should be installed]),
51                                                 [ fontsdir=$withval ],
52                                                 [ fontsdir="\${plugindir}/fonts" ])
53 AC_SUBST(fontsdir)
54 ############## END OF SPECIAL DIRECTORIES
56 ############## XLIB
57 AC_PATH_XTRA
58 if test "$no_x" = yes; then
59   if test "x$have_x" = "xdisabled"; then
60     AC_MSG_WARN([Do not use --without-x or --with-x=no.])
61   else
62     AC_MSG_WARN([X Windows development tools were not found.])
63     AC_MSG_WARN([Please install xlib-dev or xorg-x11-devel.])
64   fi
65   AC_MSG_ERROR([Cinelerra requires X Windows.])
67 AH_TEMPLATE(HAVE_LIBXXF86VM, [Define to 1 if libXxf86vm is available.])
68 AC_DEFINE(HAVE_LIBXXF86VM)
69 ############## END XLIB
71 ############## SOUND
72 # the sound options are propagated by SOUND_CFLAGS and SOUND_LDFLAGS
73 AC_ARG_ENABLE(oss, 
74                                                         AC_HELP_STRING([--disable-oss], [disable support for oss (default=enabled)]))
75 AC_ARG_ENABLE(alsa, 
76         AC_HELP_STRING([--disable-alsa],[disable support for ALSA (default=autodetect)]),
77         [enable_alsa=$enableval],[enable_alsa=yes])
78 AC_ARG_ENABLE(esd, 
79         AC_HELP_STRING([--disable-esd], [disable support for ESD (default=autodetect)]),
80         [enable_esd=$enableval],[enable_esd=yes])
82 if test "x$enable_oss" = "xyes" || test "x$enable_oss" = "x"; then
83         SOUND_CFLAGS="-DHAVE_OSS $SOUND_CFLAGS"
85 if test "x$enable_alsa" = "xyes"; then
86         AM_PATH_ALSA(1.0.2,[alsa=yes])
87         if test "x$alsa" = "xyes"; then
88                 SOUND_CFLAGS="$ALSA_CFLAGS -DHAVE_ALSA $SOUND_CFLAGS"
89                 SOUND_LDFLAGS="$ALSA_LIBS $SOUND_LDFLAGS"
90                 enable_alsa=ok
91         fi
92         dnl This added -lasound to LIBS. LIBS is used in every link command.
93         dnl But we do not want to link all shared libraries against -lasound.
94         dnl So we remove it again.
95         LIBS=`echo "$LIBS" | sed -e s/-lasound//g`
98 if test "x$enable_esd" = "xyes"; then
99         AM_PATH_ESD(,[esound=yes])
100         if test "x$esound" = xyes; then
101                 SOUND_CFLAGS="$ESD_CFLAGS -DHAVE_ESOUND $SOUND_CFLAGS"
102                 SOUND_LDFLAGS="$ESD_LIBS $SOUND_LDFLAGS"
103                 enable_esd=ok
104         fi
106 AC_SUBST(SOUND_CFLAGS)
107 AC_SUBST(SOUND_LDFLAGS)
108 ############### END OF SOUND
110 ############## MJPEGTOOLS (for YUV4MPEG)
111 PKG_CHECK_MODULES(MJPEG, mjpegtools,[mjpegtools=yes],:)
112 AC_SUBST(MJPEG_CFLAGS)
113 AC_SUBST(MJPEG_LIBS)
114 AC_MSG_CHECKING([for number of arguments to y4m_write_frame_header])
115 # check if mjpegtools has 3 arguements for y4m_write_frame_header
116 # Note: this test came from transcode...
117 save_CFLAGS="$CFLAGS"
118 save_LIBS="$LIBS"
119 CFLAGS="$CFLAGS $MJPEG_CFLAGS"
120 LIBS="$LIBS $MJPEG_LIBS"
121 AC_TRY_LINK(
123 #include <mjpegtools/yuv4mpeg.h>
124 #include <mjpegtools/mpegconsts.h>
126 [y4m_write_frame_header(1,NULL,NULL)],
128 AC_DEFINE(
129            [MJPEGTOOLS_Y4M_WRITE_FRAME_HEADER__3ARGS], 
130            [1], 
131            [using y4m_write_frame_header with 3 arguments]
132           )
133 mjpeg_version_info="3 arguments (new versions)"
134 ],[mjpeg_version_info="assuming 2 arguments (older versions)"])
135 AC_MSG_RESULT($mjpeg_version_info)
136 CFLAGS="$save_CFLAGS"
137 LIBS="$save_LIBS"
138 ############## END MJPEGTOOLS
140 ############## MISC LIBRARIES
141 AC_CHECK_HEADER(uuid/uuid.h,[libuuidh=yes])
142 AC_CHECK_LIB(uuid, uuid_clear,[libuuid=yes])
144 AC_CHECK_HEADER(fftw3.h,[libfftw3h=yes])
145 AC_CHECK_LIB(fftw3, fftw_free,[libfftw3=yes])
147 PKG_CHECK_MODULES(LIBDV,libdv >= 0.103,[libdv=yes],:)
148 AC_SUBST(LIBDV_CFLAGS)
149 AC_SUBST(LIBDV_LIBS)
151 PKG_CHECK_MODULES(PNG,libpng,[libpng=yes],:)
153 AC_CHECK_HEADER(jpeglib.h,[libjpegh=yes])
154 AC_CHECK_LIB(jpeg,jpeg_start_decompress,[libjpeg=yes])
155 ############## END OF MISC LIBRARIES
157 LARGEFILE_CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
158 AC_SUBST(LARGEFILE_CFLAGS)
160 ############## A52DEC
161 AC_CHECK_LIB(a52,a52_init,[liba52=yes])
162 AC_CHECK_HEADER(a52dec/a52.h,[liba52h=yes])
164 if test "x$liba52$liba52h" = "xyesyes"; then
165     A52DEC_CFLAGS=
166     A52DEC_LIBS=-la52
168 AC_SUBST(A52DEC_CFLAGS)
169 AC_SUBST(A52DEC_LDFLAGS)
170 ############## END OF A52DEC
172 ############## LIBSNDFILE
173 AC_CHECK_LIB(sndfile, sf_open,[libsndfile=yes])
174 AC_CHECK_HEADERS(sndfile.h,[libsndfileh=yes])
175 ############## END OF LIBSNDFILE
177 ############## OpenEXR
178 PKG_CHECK_MODULES(OPENEXR, OpenEXR,[libOpenEXR=yes],:)
179 AC_SUBST(OPENEXR_CFLAGS)
180 AC_SUBST(OPENEXR_LIBS)
181 ############## END OF OpenEXR
183 ############## LIBFAAD
184 AC_CHECK_LIB(faad, faacDecInit,[libfaad=yes],
185         AC_CHECK_LIB(faad, NeAACDecInit,[libfaad=yes]))
186 AC_CHECK_HEADER(faad.h,[libfaadh=yes])
187 if test "x$libfaad$libfaadh" = xyesyes; then
188     FAAD_CFLAGS=
189     FAAD_LIBS="-lfaad"
191 AC_SUBST(FAAD_CFLAGS)
192 AC_SUBST(FAAD_LIBS)
193 ############## END OF LIBFAAD
195 ############## FIREWIRE
196 # firewire settings are propagated through FIREWIRE_CFLAGS and FIREWIRE_LDFLAGS
197 AC_ARG_ENABLE(firewire, 
198                                                         AC_HELP_STRING([--disable-firewire], [disable support for firewire (default=enabled)]),
199                                                         [ enable_firewire=$enableval ],
200                                                         [ enable_firewire=yes ])
202 if test "x$enable_firewire" = "xyes"; then
203         PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 1.2.0,[libraw1394=yes],:)
204         PKG_CHECK_MODULES(LIBIEC61883, libiec61883,[libiec61883=yes],:)
206         AC_CHECK_LIB(avc1394, avc1394_send_command,[libavc1394=yes],:,$LIBRAW1394_LIBS)
207         AC_CHECK_HEADER([libavc1394/avc1394.h],[libavc1394h=yes])
208         AC_CHECK_LIB(rom1394, rom1394_get_bus_id,[librom1394=yes],:,$LIBRAW1394_LIBS)
209         AC_CHECK_HEADER([libavc1394/rom1394.h],[librom1394h=yes])
212 if test "x$enable_firewire$libraw1394$libiec61883$libavc1394$libavc1394h$librom1394$librom1394h" = "xyesyesyesyesyesyesyes"; then
213         FIREWIRE_CFLAGS="-DHAVE_FIREWIRE $LIBIEC61883_CFLAGS $LIBRAW1394_CFLAGS"
214         FIREWIRE_LDFLAGS="-lavc1394 -lrom1394 $LIBIEC61883_LIBS $LIBRAW1394_LIBS"
215         enable_firewire=ok
217 AC_SUBST(FIREWIRE_CFLAGS)
218 AC_SUBST(FIREWIRE_LDFLAGS)
219 AM_CONDITIONAL(HAVE_FIREWIRE,test "x$enable_firewire" = "xok")
220 ############## END OF FIREWIRE
222 ############# CSS SUPPORT IN LIBMPEG3
223 if test "x$enable_css" = "xyes"; then
224         CSS_CFLAGS="-DHAVE_CSS"
226 AC_SUBST(CSS_CFLAGS)
227 AC_ARG_ENABLE(css, 
228                                                         AC_HELP_STRING([--disable-css], [disable support for css in libmpeg3 (default=enabled)]),,
229                                                         [ enable_css=$enableval ],
230                                                         [ enable_css=yes ])
231 ############## END OF CSS SUPPORT IN LIBMPEG3
234 # MPEG2ENC declarations
235 have_asm_mmx=false
236 have_asm_sse=false
237 have_asm_nasm=false
238 have_x86cpu=false
241 ############## libx264
242 AC_CHECK_LIB(x264, x264_encoder_open,[libx264=yes],,-lpthread -lm)
243 AC_CHECK_HEADER(x264.h, [libx264h=yes])
244 ##############
246 ############## MMX / 3DNOW  POWERPC / ALTIVEC
248 AC_ARG_ENABLE(mmx, 
249                                                         AC_HELP_STRING([--enable-mmx], [enables support for mmx (default is disabled)]), 
250                                                         [ enable_mmx=$enableval ],
251                                                         [ enable_mmx=no ])
252 AC_ARG_ENABLE(3dnow, 
253                                                         AC_HELP_STRING([--enable-3dnow], [enables support for 3dnow (default is disabled)]),
254                                                         [ enable_3dnow=$enableval ],
255                                                         [ enable_3dnow=no ])
257 AC_ARG_ENABLE(altivec, 
258                 AC_HELP_STRING([--enable-altivec], [enables altivec support (default is disabled)]),
259                 [ enable_altivec=$enableval ],
260                 [ enable_altivec=no ])
262 enable_mmx=no
263 enable_3dnow=no
264 enable_powerpc=no
265 enable_altivec=no
267 case "$target_cpu" in
268 i586 | i686)
269         enable_mmx=yes
271         CPU_CFLAGS="-DX86_CPU $CPU_CFLAGS"
272         have_x86cpu=true
274         if test "x$enable_mmx" = "xyes"; then
275         CPU_CFLAGS="-DHAVE_MMX -DUSE_MMX $CPU_CFLAGS" # -D_MMX_ doesn't work
276         have_asm_mmx=true
277         fi
278         if test "x$enable_3dnow" = "xyes"; then
279                 CPU_CFLAGS="-DHAVE_3Dnow $CPU_CFLAGS" # -DUSE_3DNOW --> don't use, not compilin
280         fi
282 powerpc)
283         CPU_CFLAGS="-mcpu=powerpc $CPU_CFLAGS"
284         if test "x$enable_altivec" = "xyes"; then
285         CPU_CFLAGS="-maltivec -mabi=altivec $CPU_CFLAGS"
286         fi
287         enable_powerpc=yes
289 esac
291 AM_CONDITIONAL(USEMMX, test "x$enable_mmx" = "xyes")
292 AM_CONDITIONAL(TARGET_BUILTIN_VECTOR,test "x$enable_mmx" = "xyes")
293 AM_CONDITIONAL(USE3DNOW, test "x$enable_3dnow" = "xyes")
294 AM_CONDITIONAL(TARGET_ARCH_POWERPC, test "x$enable_powerpc" = "xyes")
295 AM_CONDITIONAL(TARGET_ALTIVEC, test "x$enable_altivec" = "xyes")
296 AC_SUBST(LIBDECORE_LIBADD)
297 AC_SUBST(CPU_CFLAGS)
300 ############## END OF MMX / 3DNOW
302 ############## XIPH
303 PKG_CHECK_MODULES(libogg,ogg >= 1.1,[libogg=yes],:)
304 PKG_CHECK_MODULES(libvorbis,vorbis,[libvorbis=yes],:)
305 PKG_CHECK_MODULES(libvorbisenc,vorbisenc,[libvorbisenc=yes],:)
306 PKG_CHECK_MODULES(libvorbisfile,vorbisfile,[libvorbisfile=yes],:)
307 PKG_CHECK_MODULES(libtheora,theora,[libtheora=yes],:)
308 XIPH_CFLAGS="$libogg_CFLAGS $libvorbis_CFLAGS $libvorbisenc_CFLAGS $libvorbisfile_CFLAGS $libtheora_CFLAGS"
309 XIPH_LIBS="$libogg_LIBS $libvorbis_LIBS $libvorbisenc_LIBS $libvorbisfile_LIBS $libtheora_LIBS"
310 AC_SUBST(XIPH_CFLAGS)
311 AC_SUBST(XIPH_LIBS)
312 ############## END OF XIPH
314 ############## LAME
315 # Just test to see if we have lame installed.
316 AC_CHECK_HEADER(lame/lame.h,[libmp3lameh=yes])
317 AC_CHECK_LIB(mp3lame,lame_init,[libmp3lame=yes],,[$XIPH_LIBS])
318 # END LAME
320 ############## .png TO .o CONVERSION
322 AC_CHECK_TOOL(OBJCOPY, objcopy)
323 if test "x$OBJCOPY" = "x"; then
324         AC_MSG_ERROR("objcopy from GNU binutils >= 2.11.90 not found")
326 AC_CHECK_TOOL(OBJDUMP, objdump)
327 dnl extract target and architecture if objdump was found
328 if test "x$OBJDUMP" = "x"; then :; else
329   AC_MSG_CHECKING(for object target)
330   octarget=`$OBJDUMP --info | sed -ne '2p'` # extract first target
331   AC_MSG_RESULT($octarget)
332   AC_MSG_CHECKING(for object architecture)
333   ocarch=`$OBJDUMP --info | sed -ne '4p'` # extract corresponding arch
334   AC_MSG_RESULT($ocarch)
336 AC_SUBST(OBJCOPYTARGET, $octarget)
337 AC_SUBST(OBJCOPYARCH, $ocarch)
339 ############## END of .png TO .o CONVERSION
341 AC_SUBST(BUILDDATE, `date`)
343 AC_OUTPUT(Makefile cinelerra-cvs-current.spec po/Makefile.in \
344         m4/Makefile \
345                                         libmpeg3/Makefile libmpeg3/video/Makefile libmpeg3/audio/Makefile \
346                                         quicktime/Makefile \
347                                         quicktime/encore50/Makefile \
348         quicktime/ffmpeg/Makefile \
349         quicktime/ffmpeg/libavcodec/Makefile \
350         quicktime/ffmpeg/libavcodec/i386/Makefile \
351                                         mpeg2enc/Makefile toolame-02l/Makefile \
352                                         guicast/Makefile cinelerra/Makefile \
353         cinelerra/builddate.h \
354         cinelerra/data/Makefile \
355         mplexlo/Makefile \
356                                         plugins/colors/Makefile \
357                                         plugins/libfourier/Makefile \
358                                         plugins/libeffecttv/Makefile \
359                                         plugins/Makefile plugins/1080to480/Makefile \
360                                         plugins/histogram/Makefile \
361                                         plugins/720to480/Makefile \
362                                         plugins/denoisemjpeg/Makefile \
363                                         plugins/motion/Makefile \
364                                         plugins/bandslide/Makefile \
365                                         plugins/bandwipe/Makefile plugins/blur/Makefile plugins/brightness/Makefile \
366                                         plugins/burn/Makefile plugins/parametric/Makefile plugins/aging/Makefile \
367                                         plugins/cdripper/Makefile \
368                                         plugins/chromakey/Makefile \
369                                         plugins/chromakey-hsv/Makefile \
370                                         plugins/colorbalance/Makefile \
371                                         plugins/compressor/Makefile \
372                                         plugins/crossfade/Makefile \
373                                         plugins/decimate/Makefile \
374                                         plugins/deinterlace/Makefile plugins/delayaudio/Makefile plugins/delayvideo/Makefile \
375                                         plugins/denoise/Makefile plugins/denoisefft/Makefile plugins/denoisevideo/Makefile \
376                                         plugins/despike/Makefile plugins/dissolve/Makefile plugins/dot/Makefile \
377                                         plugins/fieldframe/Makefile plugins/flip/Makefile plugins/framefield/Makefile \
378                                         plugins/freeverb/Makefile plugins/freezeframe/Makefile plugins/gain/Makefile \
379                                         plugins/holo/Makefile plugins/huesaturation/Makefile \
380                                         plugins/interpolateaudio/Makefile \
381                                         plugins/interpolatevideo/Makefile \
382                                         plugins/invertaudio/Makefile plugins/invertvideo/Makefile plugins/irissquare/Makefile \
383                                         plugins/ivtc/Makefile \
384                                         plugins/linearize/Makefile \
385                                         plugins/loopaudio/Makefile \
386                                         plugins/loopvideo/Makefile \
387                                         plugins/normalize/Makefile \
388                                         plugins/oilpainting/Makefile \
389                                         plugins/overlay/Makefile \
390                                         plugins/pitch/Makefile \
391                                         plugins/polar/Makefile \
392                                         plugins/reframert/Makefile
393                                         plugins/reframe/Makefile plugins/resample/Makefile plugins/reverb/Makefile \
394                                         plugins/reverseaudio/Makefile plugins/reversevideo/Makefile plugins/rgb601/Makefile \
395                                         plugins/rotate/Makefile \
396                                         plugins/scale/Makefile \
397                                         plugins/seltempavg/Makefile \
398                                         plugins/shapewipe/Makefile \
399                                         plugins/sharpen/Makefile \
400                                         plugins/shiftinterlace/Makefile plugins/slide/Makefile plugins/spectrogram/Makefile \
401         plugins/suv/Makefile \
402         plugins/suv/data/Makefile \
403         plugins/defaulttheme/Makefile \
404         plugins/defaulttheme/data/Makefile \
405                                         plugins/swapchannels/Makefile \
406                                         plugins/synthesizer/Makefile \
407                                         plugins/threshold/Makefile \
408                                         plugins/timeavg/Makefile \
409                                         plugins/timestretch/Makefile plugins/titler/Makefile plugins/translate/Makefile \
410                                         plugins/unsharp/Makefile \
411                                         plugins/videoscope/Makefile plugins/wave/Makefile plugins/whirl/Makefile \
412                                         plugins/wipe/Makefile \
413                                         plugins/yuv/Makefile \
414                                         plugins/downsample/Makefile plugins/flash/Makefile plugins/gradient/Makefile \
415                                         plugins/level/Makefile plugins/linearblur/Makefile \
416                                         plugins/perspective/Makefile plugins/radialblur/Makefile plugins/zoomblur/Makefile \
417                                         plugins/timefront/Makefile \
418                                         plugins/svg/Makefile \
419                                         plugins/diffkey/Makefile \
420                                         plugins/fonts/Makefile \
421                                         image/Makefile)
423 succeeded=yes
424 AC_DEFUN([RPT],[if test "x$$1" = "xyes"; then status=found; else status=missing; succeeded=no; fi
425 echo "AC_HELP_STRING($2,$status)"])
427 echo
428 echo "Summary of mandatory components:"
429 RPT(libogg,libogg)
430 RPT(libvorbis,libvorbis)
431 RPT(libvorbisenc,libvorbisenc)
432 RPT(libvorbisfile,libvorbisfile)
433 RPT(libtheora,libtheora)
434 RPT(libOpenEXR,OpenEXR)
435 RPT(libdv,libdv)
436 RPT(libpng,libpng)
437 RPT(libjpeg,libjpeg libraries)
438 RPT(libjpegh,libjpeg headers)
439 RPT(libx264,libx264 libraries)
440 RPT(libx264h,libx264 headers)
441 RPT(libuuid,libuuid libraries)
442 RPT(libuuidh,libuuid headers)
443 RPT(mjpegtools,mjpegtools)
444 RPT(libfftw3,libfftw3 libraries)
445 RPT(libfftw3h,libfftw3 headers)
446 RPT(liba52,liba52 libraries)
447 RPT(liba52h,liba52 headers)
448 RPT(libmp3lame,libmp3lame libraries)
449 RPT(libmp3lameh,libmp3lame headers)
450 RPT(libsndfile,libsndfile libraries)
451 RPT(libsndfileh,libsndfile headers)
452 RPT(libfaad,libfaad libraries)
453 RPT(libfaadh,libfaad headers)
454 mandatory="$succeeded"
456 echo
457 echo "Summary of optional components:"
458 AC_DEFUN([ORPT],[if test "x$$1" = "xno"; then
459         echo "$2 was opted out with $3"
460 else
461         if test "x$$1" = "xok"; then component=enabled; else component=disabled; fi
462         $4
463         echo "$2 is $component"
464 fi])
465 ORPT(enable_esd,ESD (Enlightenment Sound Daemon),--disable-esd,RPT(esound,ESD subsystem))
466 ORPT(enable_alsa,ALSA,--disable-alsa,RPT(alsa,ALSA subsystem))
467 ORPT(enable_firewire,Firewire,--disable-firewire,
468         RPT(libraw1394,libraw1394)
469         RPT(libiec61883,libiec61883)
470         RPT(libavc1394,libavc1394 libraries)
471         RPT(libavc1394h,libavc1394 headers)
472         RPT(librom1394,librom1394 libraries)
473         RPT(librom1394h,librom1394 headers)
476 if test "x$mandatory" = "xno"; then
477         echo
478         echo "WARNING: Mandatory components are missing; compilation may fail!"
479 else
480         echo
481         echo "Now type"; echo "          make"; echo; echo "to start compilation"