1 AC_INIT(Cinelerra, 2.0)
5 # Test for minimal version of autoconf
9 AC_CONFIG_HEADER(config.h)
10 AM_GNU_GETTEXT([external])
11 AM_GNU_GETTEXT_VERSION(0.12.1)
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
24 LTCXX_FLAGS="--tag=CXX"
30 # hack for using nasm for .S files
31 CCAS="\$(top_srcdir)/admin/nasm"
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" ])
50 AC_HELP_STRING([--with-fontsdir], [sets the directory where the fonts should be installed]),
51 [ fontsdir=$withval ],
52 [ fontsdir="\${plugindir}/fonts" ])
54 ############## END OF SPECIAL DIRECTORIES
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.])
62 AC_MSG_WARN([X Windows development tools were not found.])
63 AC_MSG_WARN([Please install xlib-dev or xorg-x11-devel.])
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
72 # the sound options are propagated by SOUND_CFLAGS and SOUND_LDFLAGS
74 AC_HELP_STRING([--disable-oss], [disable support for oss (default=enabled)]))
76 AC_HELP_STRING([--disable-alsa],[disable support for ALSA (default=autodetect)]),
77 [enable_alsa=$enableval],[enable_alsa=yes])
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"
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"
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)
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"
119 CFLAGS="$CFLAGS $MJPEG_CFLAGS"
120 LIBS="$LIBS $MJPEG_LIBS"
123 #include <mjpegtools/yuv4mpeg.h>
124 #include <mjpegtools/mpegconsts.h>
126 [y4m_write_frame_header(1,NULL,NULL)],
129 [MJPEGTOOLS_Y4M_WRITE_FRAME_HEADER__3ARGS],
131 [using y4m_write_frame_header with 3 arguments]
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"
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)
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
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, LIBFAAC
184 AC_CHECK_LIB(faac, faacEncOpen,[libfaac=yes])
185 AC_CHECK_HEADER(faac.h,[libfaach=yes])
187 AC_CHECK_LIB(faad, faacDecInit,[libfaad=yes],
188 AC_CHECK_LIB(faad, NeAACDecInit,[libfaad=yes]))
189 AC_CHECK_HEADER(faad.h,[libfaadh=yes])
190 if test "x$libfaad$libfaadh" = xyesyes; then
194 AC_SUBST(FAAD_CFLAGS)
196 ############## END OF LIBFAAD, LIBFAAC
198 ############## FIREWIRE
199 # firewire settings are propagated through FIREWIRE_CFLAGS and FIREWIRE_LDFLAGS
200 AC_ARG_ENABLE(firewire,
201 AC_HELP_STRING([--disable-firewire], [disable support for firewire (default=enabled)]),
202 [ enable_firewire=$enableval ],
203 [ enable_firewire=yes ])
205 if test "x$enable_firewire" = "xyes"; then
206 PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 1.2.0,[libraw1394=yes],:)
207 PKG_CHECK_MODULES(LIBIEC61883, libiec61883,[libiec61883=yes],:)
209 AC_CHECK_LIB(avc1394, avc1394_send_command,[libavc1394=yes],:,$LIBRAW1394_LIBS)
210 AC_CHECK_HEADER([libavc1394/avc1394.h],[libavc1394h=yes])
211 AC_CHECK_LIB(rom1394, rom1394_get_bus_id,[librom1394=yes],:,$LIBRAW1394_LIBS)
212 AC_CHECK_HEADER([libavc1394/rom1394.h],[librom1394h=yes])
215 if test "x$enable_firewire$libraw1394$libiec61883$libavc1394$libavc1394h$librom1394$librom1394h" = "xyesyesyesyesyesyesyes"; then
216 FIREWIRE_CFLAGS="-DHAVE_FIREWIRE $LIBIEC61883_CFLAGS $LIBRAW1394_CFLAGS"
217 FIREWIRE_LDFLAGS="-lavc1394 -lrom1394 $LIBIEC61883_LIBS $LIBRAW1394_LIBS"
220 AC_SUBST(FIREWIRE_CFLAGS)
221 AC_SUBST(FIREWIRE_LDFLAGS)
222 AM_CONDITIONAL(HAVE_FIREWIRE,test "x$enable_firewire" = "xok")
223 ############## END OF FIREWIRE
225 ############# CSS SUPPORT IN LIBMPEG3
226 if test "x$enable_css" = "xyes"; then
227 CSS_CFLAGS="-DHAVE_CSS"
231 AC_HELP_STRING([--disable-css], [disable support for css in libmpeg3 (default=enabled)]),,
232 [ enable_css=$enableval ],
234 ############## END OF CSS SUPPORT IN LIBMPEG3
237 # MPEG2ENC declarations
244 ############## libx264
245 AC_CHECK_LIB(x264, x264_encoder_open,[libx264=yes],,-lpthread -lm)
246 AC_CHECK_HEADER(x264.h, [libx264h=yes])
249 ############## MMX / 3DNOW POWERPC / ALTIVEC
252 AC_HELP_STRING([--enable-mmx], [enables support for mmx (default is disabled)]),
253 [ enable_mmx=$enableval ],
256 AC_HELP_STRING([--enable-3dnow], [enables support for 3dnow (default is disabled)]),
257 [ enable_3dnow=$enableval ],
260 AC_ARG_ENABLE(altivec,
261 AC_HELP_STRING([--enable-altivec], [enables altivec support (default is disabled)]),
262 [ enable_altivec=$enableval ],
263 [ enable_altivec=no ])
270 case "$target_cpu" in
274 CPU_CFLAGS="-DX86_CPU $CPU_CFLAGS"
277 if test "x$enable_mmx" = "xyes"; then
278 CPU_CFLAGS="-DHAVE_MMX -DUSE_MMX $CPU_CFLAGS" # -D_MMX_ doesn't work
281 if test "x$enable_3dnow" = "xyes"; then
282 CPU_CFLAGS="-DHAVE_3Dnow $CPU_CFLAGS" # -DUSE_3DNOW --> don't use, not compilin
286 CPU_CFLAGS="-mcpu=powerpc $CPU_CFLAGS"
287 if test "x$enable_altivec" = "xyes"; then
288 CPU_CFLAGS="-maltivec -mabi=altivec $CPU_CFLAGS"
294 AM_CONDITIONAL(USEMMX, test "x$enable_mmx" = "xyes")
295 AM_CONDITIONAL(TARGET_BUILTIN_VECTOR,test "x$enable_mmx" = "xyes")
296 AM_CONDITIONAL(USE3DNOW, test "x$enable_3dnow" = "xyes")
297 AM_CONDITIONAL(TARGET_ARCH_POWERPC, test "x$enable_powerpc" = "xyes")
298 AM_CONDITIONAL(TARGET_ALTIVEC, test "x$enable_altivec" = "xyes")
299 AC_SUBST(LIBDECORE_LIBADD)
303 ############## END OF MMX / 3DNOW
306 PKG_CHECK_MODULES(libogg,ogg >= 1.1,[libogg=yes],:)
307 PKG_CHECK_MODULES(libvorbis,vorbis,[libvorbis=yes],:)
308 PKG_CHECK_MODULES(libvorbisenc,vorbisenc,[libvorbisenc=yes],:)
309 PKG_CHECK_MODULES(libvorbisfile,vorbisfile,[libvorbisfile=yes],:)
310 PKG_CHECK_MODULES(libtheora,theora,[libtheora=yes],:)
311 XIPH_CFLAGS="$libogg_CFLAGS $libvorbis_CFLAGS $libvorbisenc_CFLAGS $libvorbisfile_CFLAGS $libtheora_CFLAGS"
312 XIPH_LIBS="$libogg_LIBS $libvorbis_LIBS $libvorbisenc_LIBS $libvorbisfile_LIBS $libtheora_LIBS"
313 AC_SUBST(XIPH_CFLAGS)
315 ############## END OF XIPH
318 # Just test to see if we have lame installed.
319 AC_CHECK_HEADER(lame/lame.h,[libmp3lameh=yes])
320 AC_CHECK_LIB(mp3lame,lame_init,[libmp3lame=yes],,[$XIPH_LIBS])
323 ############## .png TO .o CONVERSION
325 AC_CHECK_TOOL(OBJCOPY, objcopy)
326 if test "x$OBJCOPY" = "x"; then
327 AC_MSG_ERROR("objcopy from GNU binutils >= 2.11.90 not found")
329 AC_CHECK_TOOL(OBJDUMP, objdump)
330 dnl extract target and architecture if objdump was found
331 if test "x$OBJDUMP" = "x"; then :; else
332 AC_MSG_CHECKING(for object target)
333 octarget=`$OBJDUMP --info | sed -ne '2p'` # extract first target
334 AC_MSG_RESULT($octarget)
335 AC_MSG_CHECKING(for object architecture)
336 ocarch=`$OBJDUMP --info | sed -ne '4p'` # extract corresponding arch
337 AC_MSG_RESULT($ocarch)
339 AC_SUBST(OBJCOPYTARGET, $octarget)
340 AC_SUBST(OBJCOPYARCH, $ocarch)
342 ############## END of .png TO .o CONVERSION
344 AC_SUBST(BUILDDATE, `date`)
346 AC_OUTPUT(Makefile cinelerra-cvs-current.spec po/Makefile.in \
348 libmpeg3/Makefile libmpeg3/video/Makefile libmpeg3/audio/Makefile \
350 quicktime/encore50/Makefile \
351 quicktime/ffmpeg/Makefile \
352 quicktime/ffmpeg/libavcodec/Makefile \
353 quicktime/ffmpeg/libavcodec/i386/Makefile \
354 mpeg2enc/Makefile toolame-02l/Makefile \
355 guicast/Makefile cinelerra/Makefile \
356 cinelerra/builddate.h \
357 cinelerra/data/Makefile \
359 plugins/colors/Makefile \
360 plugins/libfourier/Makefile \
361 plugins/libeffecttv/Makefile \
362 plugins/Makefile plugins/1080to480/Makefile \
363 plugins/histogram/Makefile \
364 plugins/720to480/Makefile \
365 plugins/denoisemjpeg/Makefile \
366 plugins/motion/Makefile \
367 plugins/bandslide/Makefile \
368 plugins/bandwipe/Makefile plugins/blur/Makefile plugins/brightness/Makefile \
369 plugins/burn/Makefile plugins/parametric/Makefile plugins/aging/Makefile \
370 plugins/cdripper/Makefile \
371 plugins/chromakey/Makefile \
372 plugins/chromakey-hsv/Makefile \
373 plugins/colorbalance/Makefile \
374 plugins/compressor/Makefile \
375 plugins/crossfade/Makefile \
376 plugins/decimate/Makefile \
377 plugins/deinterlace/Makefile plugins/delayaudio/Makefile plugins/delayvideo/Makefile \
378 plugins/denoise/Makefile plugins/denoisefft/Makefile plugins/denoisevideo/Makefile \
379 plugins/despike/Makefile plugins/dissolve/Makefile plugins/dot/Makefile \
380 plugins/fieldframe/Makefile plugins/flip/Makefile plugins/framefield/Makefile \
381 plugins/freeverb/Makefile plugins/freezeframe/Makefile plugins/gain/Makefile \
382 plugins/holo/Makefile plugins/huesaturation/Makefile \
383 plugins/interpolateaudio/Makefile \
384 plugins/interpolatevideo/Makefile \
385 plugins/invertaudio/Makefile plugins/invertvideo/Makefile plugins/irissquare/Makefile \
386 plugins/ivtc/Makefile \
387 plugins/linearize/Makefile \
388 plugins/loopaudio/Makefile \
389 plugins/loopvideo/Makefile \
390 plugins/normalize/Makefile \
391 plugins/oilpainting/Makefile \
392 plugins/overlay/Makefile \
393 plugins/pitch/Makefile \
394 plugins/polar/Makefile \
395 plugins/reframert/Makefile
396 plugins/reframe/Makefile plugins/resample/Makefile plugins/reverb/Makefile \
397 plugins/reverseaudio/Makefile plugins/reversevideo/Makefile plugins/rgb601/Makefile \
398 plugins/rotate/Makefile \
399 plugins/scale/Makefile \
400 plugins/seltempavg/Makefile \
401 plugins/shapewipe/Makefile \
402 plugins/sharpen/Makefile \
403 plugins/shiftinterlace/Makefile plugins/slide/Makefile plugins/spectrogram/Makefile \
404 plugins/suv/Makefile \
405 plugins/suv/data/Makefile \
406 plugins/defaulttheme/Makefile \
407 plugins/defaulttheme/data/Makefile \
408 plugins/swapchannels/Makefile \
409 plugins/synthesizer/Makefile \
410 plugins/threshold/Makefile \
411 plugins/timeavg/Makefile \
412 plugins/timestretch/Makefile plugins/titler/Makefile plugins/translate/Makefile \
413 plugins/unsharp/Makefile \
414 plugins/videoscope/Makefile plugins/wave/Makefile plugins/whirl/Makefile \
415 plugins/wipe/Makefile \
416 plugins/yuv/Makefile \
417 plugins/downsample/Makefile plugins/flash/Makefile plugins/gradient/Makefile \
418 plugins/level/Makefile plugins/linearblur/Makefile \
419 plugins/perspective/Makefile plugins/radialblur/Makefile plugins/zoomblur/Makefile \
420 plugins/timefront/Makefile \
421 plugins/svg/Makefile \
422 plugins/diffkey/Makefile \
423 plugins/fonts/Makefile \
427 AC_DEFUN([RPT],[if test "x$$1" = "xyes"; then status=found; else status=missing; succeeded=no; fi
428 echo "AC_HELP_STRING($2,$status)"])
431 echo "Summary of mandatory components:"
433 RPT(libvorbis,libvorbis)
434 RPT(libvorbisenc,libvorbisenc)
435 RPT(libvorbisfile,libvorbisfile)
436 RPT(libtheora,libtheora)
437 RPT(libOpenEXR,OpenEXR)
440 RPT(libjpeg,libjpeg libraries)
441 RPT(libjpegh,libjpeg headers)
442 RPT(libx264,libx264 libraries)
443 RPT(libx264h,libx264 headers)
444 RPT(libuuid,libuuid libraries)
445 RPT(libuuidh,libuuid headers)
446 RPT(mjpegtools,mjpegtools)
447 RPT(libfftw3,libfftw3 libraries)
448 RPT(libfftw3h,libfftw3 headers)
449 RPT(liba52,liba52 libraries)
450 RPT(liba52h,liba52 headers)
451 RPT(libmp3lame,libmp3lame libraries)
452 RPT(libmp3lameh,libmp3lame headers)
453 RPT(libsndfile,libsndfile libraries)
454 RPT(libsndfileh,libsndfile headers)
455 RPT(libfaac,libfaac libraries)
456 RPT(libfaach,libfaac headers)
457 RPT(libfaad,libfaad libraries)
458 RPT(libfaadh,libfaad headers)
459 mandatory="$succeeded"
462 echo "Summary of optional components:"
463 AC_DEFUN([ORPT],[if test "x$$1" = "xno"; then
464 echo "$2 was opted out with $3"
466 if test "x$$1" = "xok"; then component=enabled; else component=disabled; fi
468 echo "$2 is $component"
470 ORPT(enable_esd,ESD (Enlightenment Sound Daemon),--disable-esd,RPT(esound,ESD subsystem))
471 ORPT(enable_alsa,ALSA,--disable-alsa,RPT(alsa,ALSA subsystem))
472 ORPT(enable_firewire,Firewire,--disable-firewire,
473 RPT(libraw1394,libraw1394)
474 RPT(libiec61883,libiec61883)
475 RPT(libavc1394,libavc1394 libraries)
476 RPT(libavc1394h,libavc1394 headers)
477 RPT(librom1394,librom1394 libraries)
478 RPT(librom1394h,librom1394 headers)
481 if test "x$mandatory" = "xno"; then
483 echo "WARNING: Mandatory components are missing; compilation may fail!"
486 echo "Now type"; echo " make"; echo; echo "to start compilation."