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])
156 AC_ARG_ENABLE(freetype2,
157 AC_HELP_STRING([--enable-freetype2],[enables freetype2 usage (default is use pkg-config detection)]),
160 [ PKG_CHECK_MODULES(FREETYPE,freetype2,[freetype2=yes],:) ])
161 ############## END OF MISC LIBRARIES
163 LARGEFILE_CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
164 AC_SUBST(LARGEFILE_CFLAGS)
166 ############## A52DEC
167 AC_CHECK_LIB(a52,a52_init,[liba52=yes])
168 AC_CHECK_HEADER(a52dec/a52.h,[liba52h=yes])
170 if test "x$liba52$liba52h" = "xyesyes"; then
174 AC_SUBST(A52DEC_CFLAGS)
175 AC_SUBST(A52DEC_LDFLAGS)
176 ############## END OF A52DEC
178 ############## LIBSNDFILE
179 AC_CHECK_LIB(sndfile, sf_open,[libsndfile=yes])
180 AC_CHECK_HEADERS(sndfile.h,[libsndfileh=yes])
181 ############## END OF LIBSNDFILE
183 ############## OpenEXR
184 PKG_CHECK_MODULES(OPENEXR, OpenEXR,[libOpenEXR=yes],:)
185 AC_SUBST(OPENEXR_CFLAGS)
186 AC_SUBST(OPENEXR_LIBS)
187 ############## END OF OpenEXR
189 ############## LIBFAAD, LIBFAAC
190 AC_CHECK_LIB(faac, faacEncOpen,[libfaac=yes])
191 AC_CHECK_HEADER(faac.h,[libfaach=yes])
193 AC_CHECK_LIB(faad, faacDecInit,[libfaad=yes],
194 AC_CHECK_LIB(faad, NeAACDecInit,[libfaad=yes]))
195 AC_CHECK_HEADER(faad.h,[libfaadh=yes])
196 if test "x$libfaad$libfaadh" = xyesyes; then
200 AC_SUBST(FAAD_CFLAGS)
202 ############## END OF LIBFAAD, LIBFAAC
204 ############## FIREWIRE
205 # firewire settings are propagated through FIREWIRE_CFLAGS and FIREWIRE_LDFLAGS
206 AC_ARG_ENABLE(firewire,
207 AC_HELP_STRING([--disable-firewire], [disable support for firewire (default=enabled)]),
208 [ enable_firewire=$enableval ],
209 [ enable_firewire=yes ])
211 if test "x$enable_firewire" = "xyes"; then
212 PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 1.2.0,[libraw1394=yes],:)
213 PKG_CHECK_MODULES(LIBIEC61883, libiec61883,[libiec61883=yes],:)
215 AC_CHECK_LIB(avc1394, avc1394_send_command,[libavc1394=yes],:,$LIBRAW1394_LIBS)
216 AC_CHECK_HEADER([libavc1394/avc1394.h],[libavc1394h=yes])
217 AC_CHECK_LIB(rom1394, rom1394_get_bus_id,[librom1394=yes],:,$LIBRAW1394_LIBS)
218 AC_CHECK_HEADER([libavc1394/rom1394.h],[librom1394h=yes])
221 if test "x$enable_firewire$libraw1394$libiec61883$libavc1394$libavc1394h$librom1394$librom1394h" = "xyesyesyesyesyesyesyes"; then
222 FIREWIRE_CFLAGS="-DHAVE_FIREWIRE $LIBIEC61883_CFLAGS $LIBRAW1394_CFLAGS"
223 FIREWIRE_LDFLAGS="-lavc1394 -lrom1394 $LIBIEC61883_LIBS $LIBRAW1394_LIBS"
226 AC_SUBST(FIREWIRE_CFLAGS)
227 AC_SUBST(FIREWIRE_LDFLAGS)
228 AM_CONDITIONAL(HAVE_FIREWIRE,test "x$enable_firewire" = "xok")
229 ############## END OF FIREWIRE
231 ############# CSS SUPPORT IN LIBMPEG3
232 if test "x$enable_css" = "xyes"; then
233 CSS_CFLAGS="-DHAVE_CSS"
237 AC_HELP_STRING([--disable-css], [disable support for css in libmpeg3 (default=enabled)]),,
238 [ enable_css=$enableval ],
240 ############## END OF CSS SUPPORT IN LIBMPEG3
243 # MPEG2ENC declarations
250 ############## libx264
251 AC_CHECK_LIB(x264, x264_encoder_open,[libx264=yes],,-lpthread -lm)
252 AC_CHECK_HEADER(x264.h, [libx264h=yes])
255 ############## MMX / 3DNOW POWERPC / ALTIVEC
258 AC_HELP_STRING([--enable-mmx], [enables support for mmx (default is disabled)]),
259 [ enable_mmx=$enableval ],
262 AC_HELP_STRING([--enable-3dnow], [enables support for 3dnow (default is disabled)]),
263 [ enable_3dnow=$enableval ],
266 AC_ARG_ENABLE(altivec,
267 AC_HELP_STRING([--enable-altivec], [enables altivec support (default is disabled)]),
268 [ enable_altivec=$enableval ],
269 [ enable_altivec=no ])
276 case "$target_cpu" in
280 CPU_CFLAGS="-DX86_CPU $CPU_CFLAGS"
283 if test "x$enable_mmx" = "xyes"; then
284 CPU_CFLAGS="-DHAVE_MMX -DUSE_MMX $CPU_CFLAGS" # -D_MMX_ doesn't work
287 if test "x$enable_3dnow" = "xyes"; then
288 CPU_CFLAGS="-DHAVE_3Dnow $CPU_CFLAGS" # -DUSE_3DNOW --> don't use, not compilin
292 CPU_CFLAGS="-mcpu=powerpc $CPU_CFLAGS"
293 if test "x$enable_altivec" = "xyes"; then
294 CPU_CFLAGS="-maltivec -mabi=altivec $CPU_CFLAGS"
300 AM_CONDITIONAL(USEMMX, test "x$enable_mmx" = "xyes")
301 AM_CONDITIONAL(TARGET_BUILTIN_VECTOR,test "x$enable_mmx" = "xyes")
302 AM_CONDITIONAL(USE3DNOW, test "x$enable_3dnow" = "xyes")
303 AM_CONDITIONAL(TARGET_ARCH_POWERPC, test "x$enable_powerpc" = "xyes")
304 AM_CONDITIONAL(TARGET_ALTIVEC, test "x$enable_altivec" = "xyes")
305 AC_SUBST(LIBDECORE_LIBADD)
309 ############## END OF MMX / 3DNOW
312 PKG_CHECK_MODULES(libogg,ogg >= 1.1,[libogg=yes],:)
313 PKG_CHECK_MODULES(libvorbis,vorbis,[libvorbis=yes],:)
314 PKG_CHECK_MODULES(libvorbisenc,vorbisenc,[libvorbisenc=yes],:)
315 PKG_CHECK_MODULES(libvorbisfile,vorbisfile,[libvorbisfile=yes],:)
316 PKG_CHECK_MODULES(libtheora,theora,[libtheora=yes],:)
317 XIPH_CFLAGS="$libogg_CFLAGS $libvorbis_CFLAGS $libvorbisenc_CFLAGS $libvorbisfile_CFLAGS $libtheora_CFLAGS"
318 XIPH_LIBS="$libogg_LIBS $libvorbis_LIBS $libvorbisenc_LIBS $libvorbisfile_LIBS $libtheora_LIBS"
319 AC_SUBST(XIPH_CFLAGS)
321 ############## END OF XIPH
324 # Just test to see if we have lame installed.
325 AC_CHECK_HEADER(lame/lame.h,[libmp3lameh=yes])
326 AC_CHECK_LIB(mp3lame,lame_init,[libmp3lame=yes],,[$XIPH_LIBS])
329 ############## .png TO .o CONVERSION
331 AC_CHECK_TOOL(OBJCOPY, objcopy)
332 if test "x$OBJCOPY" = "x"; then
333 AC_MSG_ERROR("objcopy from GNU binutils >= 2.11.90 not found")
335 AC_CHECK_TOOL(OBJDUMP, objdump)
336 dnl extract target and architecture if objdump was found
337 if test "x$OBJDUMP" = "x"; then :; else
338 AC_MSG_CHECKING(for object target)
339 octarget=`$OBJDUMP --info | sed -ne '2p'` # extract first target
340 AC_MSG_RESULT($octarget)
341 AC_MSG_CHECKING(for object architecture)
342 ocarch=`$OBJDUMP --info | sed -ne '4p'` # extract corresponding arch
343 AC_MSG_RESULT($ocarch)
345 AC_SUBST(OBJCOPYTARGET, $octarget)
346 AC_SUBST(OBJCOPYARCH, $ocarch)
348 ############## END of .png TO .o CONVERSION
350 AC_SUBST(BUILDDATE, `date`)
352 AC_OUTPUT(Makefile cinelerra-cvs-current.spec po/Makefile.in \
354 libmpeg3/Makefile libmpeg3/video/Makefile libmpeg3/audio/Makefile \
356 quicktime/encore50/Makefile \
357 quicktime/ffmpeg/Makefile \
358 quicktime/ffmpeg/libavcodec/Makefile \
359 quicktime/ffmpeg/libavcodec/i386/Makefile \
360 mpeg2enc/Makefile toolame-02l/Makefile \
361 guicast/Makefile cinelerra/Makefile \
362 cinelerra/builddate.h \
363 cinelerra/data/Makefile \
365 plugins/colors/Makefile \
366 plugins/libfourier/Makefile \
367 plugins/libeffecttv/Makefile \
368 plugins/Makefile plugins/1080to480/Makefile \
369 plugins/histogram/Makefile \
370 plugins/720to480/Makefile \
371 plugins/bandslide/Makefile \
372 plugins/bandwipe/Makefile
373 plugins/blur/Makefile
374 plugins/brightness/Makefile \
375 plugins/burn/Makefile plugins/parametric/Makefile plugins/aging/Makefile \
376 plugins/cdripper/Makefile \
377 plugins/chromakey/Makefile \
378 plugins/chromakeyhsv/Makefile \
379 plugins/colorbalance/Makefile \
380 plugins/compressor/Makefile \
381 plugins/crossfade/Makefile \
382 plugins/decimate/Makefile \
383 plugins/deinterlace/Makefile plugins/delayaudio/Makefile plugins/delayvideo/Makefile \
384 plugins/denoise/Makefile plugins/denoisefft/Makefile plugins/denoisevideo/Makefile \
385 plugins/denoisemjpeg/Makefile \
386 plugins/despike/Makefile plugins/dissolve/Makefile plugins/dot/Makefile \
387 plugins/fieldframe/Makefile plugins/flip/Makefile plugins/framefield/Makefile \
388 plugins/freeverb/Makefile plugins/freezeframe/Makefile plugins/gain/Makefile \
389 plugins/holo/Makefile plugins/huesaturation/Makefile \
390 plugins/interpolateaudio/Makefile \
391 plugins/interpolatevideo/Makefile \
392 plugins/invertaudio/Makefile plugins/invertvideo/Makefile plugins/irissquare/Makefile \
393 plugins/ivtc/Makefile \
394 plugins/linearize/Makefile \
395 plugins/loopaudio/Makefile \
396 plugins/loopvideo/Makefile \
397 plugins/motion/Makefile \
398 plugins/motionblur/Makefile \
399 plugins/normalize/Makefile \
400 plugins/oilpainting/Makefile \
401 plugins/overlay/Makefile \
402 plugins/pitch/Makefile \
403 plugins/polar/Makefile \
404 plugins/reframert/Makefile
405 plugins/reframe/Makefile plugins/resample/Makefile plugins/reverb/Makefile \
406 plugins/reverseaudio/Makefile plugins/reversevideo/Makefile plugins/rgb601/Makefile \
407 plugins/rotate/Makefile \
408 plugins/scale/Makefile \
409 plugins/denoiseseltempavg/Makefile \
410 plugins/shapewipe/Makefile \
411 plugins/sharpen/Makefile \
412 plugins/shiftinterlace/Makefile plugins/slide/Makefile plugins/spectrogram/Makefile \
413 plugins/suv/Makefile \
414 plugins/suv/data/Makefile \
415 plugins/defaulttheme/Makefile \
416 plugins/defaulttheme/data/Makefile \
417 plugins/swapchannels/Makefile \
418 plugins/synthesizer/Makefile \
419 plugins/threshold/Makefile \
420 plugins/timeavg/Makefile \
421 plugins/timestretch/Makefile plugins/titler/Makefile plugins/translate/Makefile \
422 plugins/unsharp/Makefile \
423 plugins/videoscope/Makefile plugins/wave/Makefile plugins/whirl/Makefile \
424 plugins/wipe/Makefile \
425 plugins/yuv/Makefile \
426 plugins/downsample/Makefile plugins/flash/Makefile plugins/gradient/Makefile \
427 plugins/level/Makefile plugins/linearblur/Makefile \
428 plugins/perspective/Makefile plugins/radialblur/Makefile plugins/zoomblur/Makefile \
429 plugins/timefront/Makefile \
430 plugins/svg/Makefile \
431 plugins/diffkey/Makefile \
432 plugins/fonts/Makefile \
436 AC_DEFUN([RPT],[if test "x$$1" = "xyes"; then status=found; else status=missing; succeeded=no; fi
437 echo "AC_HELP_STRING($2,$status)"])
440 echo "Summary of mandatory components:"
442 RPT(libvorbis,libvorbis)
443 RPT(libvorbisenc,libvorbisenc)
444 RPT(libvorbisfile,libvorbisfile)
445 RPT(libtheora,libtheora)
446 RPT(libOpenEXR,OpenEXR)
449 RPT(libjpeg,libjpeg libraries)
450 RPT(libjpegh,libjpeg headers)
451 RPT(freetype2,FreeType 2)
452 RPT(libx264,libx264 libraries)
453 RPT(libx264h,libx264 headers)
454 RPT(libuuid,libuuid libraries)
455 RPT(libuuidh,libuuid headers)
456 RPT(mjpegtools,mjpegtools)
457 RPT(libfftw3,libfftw3 libraries)
458 RPT(libfftw3h,libfftw3 headers)
459 RPT(liba52,liba52 libraries)
460 RPT(liba52h,liba52 headers)
461 RPT(libmp3lame,libmp3lame libraries)
462 RPT(libmp3lameh,libmp3lame headers)
463 RPT(libsndfile,libsndfile libraries)
464 RPT(libsndfileh,libsndfile headers)
465 RPT(libfaac,libfaac libraries)
466 RPT(libfaach,libfaac headers)
467 RPT(libfaad,libfaad libraries)
468 RPT(libfaadh,libfaad headers)
469 mandatory="$succeeded"
472 echo "Summary of optional components:"
473 AC_DEFUN([ORPT],[if test "x$$1" = "xno"; then
474 echo "$2 was opted out with $3"
476 if test "x$$1" = "xok"; then component=enabled; else component=disabled; fi
478 echo "$2 is $component"
480 ORPT(enable_esd,ESD (Enlightenment Sound Daemon),--disable-esd,RPT(esound,ESD subsystem))
481 ORPT(enable_alsa,ALSA,--disable-alsa,RPT(alsa,ALSA subsystem))
482 ORPT(enable_firewire,Firewire,--disable-firewire,
483 RPT(libraw1394,libraw1394)
484 RPT(libiec61883,libiec61883)
485 RPT(libavc1394,libavc1394 libraries)
486 RPT(libavc1394h,libavc1394 headers)
487 RPT(librom1394,librom1394 libraries)
488 RPT(librom1394h,librom1394 headers)
491 if test "x$mandatory" = "xno"; then
493 echo "WARNING: Mandatory components are missing; compilation may fail!"
496 echo "Now type"; echo " make"; echo; echo "to start compilation."