1 AC_INIT(Cinelerra, 2.1)
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 ############# BUILDINFO display, (for displaying version / date)
232 AC_ARG_WITH(buildinfo,
235 [includes revision information in the 'About' box; allowed values: svn, git; add /recompile to force rebuild on each make invocation]),
236 [ buildinfo=$withval],
237 [ buildinfo="none" ])
240 BUILDINFO_repository=$(echo $buildinfo | sed 's=/recompile==')
241 BUILDINFO_recompile=$(echo $buildinfo | sed 's=.*/recompile=yes=')
242 AM_CONDITIONAL(BUILDINFO_GIT, test "x$BUILDINFO_repository" = "xgit")
243 AM_CONDITIONAL(BUILDINFO_SVN, test "x$BUILDINFO_repository" = "xsvn")
244 AM_CONDITIONAL(BUILDINFO_RECOMPILE, test "x$BUILDINFO_recompile" = "xyes")
246 echo removing cinelerra/versioninfo.h to force a re-build
247 rm cinelerra/versioninfo.h > /dev/null 2>&1
249 ############# END BUILDINFO display, (for displaying version / date)
251 ############# CSS SUPPORT IN LIBMPEG3
252 if test "x$enable_css" = "xyes"; then
253 CSS_CFLAGS="-DHAVE_CSS"
257 AC_HELP_STRING([--disable-css], [disable support for css in libmpeg3 (default=enabled)]),,
258 [ enable_css=$enableval ],
260 ############## END OF CSS SUPPORT IN LIBMPEG3
263 # MPEG2ENC declarations
270 ############## libx264
271 AC_CHECK_LIB(x264, x264_encoder_open,[libx264=yes],,-lpthread -lm)
272 AC_CHECK_HEADER(x264.h, [libx264h=yes])
275 ############## MMX / 3DNOW POWERPC / ALTIVEC
278 AC_HELP_STRING([--enable-mmx], [enables support for mmx (default is disabled)]),
279 [ enable_mmx=$enableval ],
282 AC_HELP_STRING([--enable-3dnow], [enables support for 3dnow (default is disabled)]),
283 [ enable_3dnow=$enableval ],
286 AC_ARG_ENABLE(altivec,
287 AC_HELP_STRING([--enable-altivec], [enables altivec support (default is disabled)]),
288 [ enable_altivec=$enableval ],
289 [ enable_altivec=no ])
296 case "$target_cpu" in
300 CPU_CFLAGS="-DX86_CPU $CPU_CFLAGS"
303 if test "x$enable_mmx" = "xyes"; then
304 CPU_CFLAGS="-DHAVE_MMX -DUSE_MMX $CPU_CFLAGS" # -D_MMX_ doesn't work
307 if test "x$enable_3dnow" = "xyes"; then
308 CPU_CFLAGS="-DHAVE_3Dnow $CPU_CFLAGS" # -DUSE_3DNOW --> don't use, not compilin
312 CPU_CFLAGS="-mcpu=powerpc $CPU_CFLAGS"
313 if test "x$enable_altivec" = "xyes"; then
314 CPU_CFLAGS="-maltivec -mabi=altivec $CPU_CFLAGS"
320 AM_CONDITIONAL(USEMMX, test "x$enable_mmx" = "xyes")
321 AM_CONDITIONAL(TARGET_BUILTIN_VECTOR,test "x$enable_mmx" = "xyes")
322 AM_CONDITIONAL(USE3DNOW, test "x$enable_3dnow" = "xyes")
323 AM_CONDITIONAL(TARGET_ARCH_POWERPC, test "x$enable_powerpc" = "xyes")
324 AM_CONDITIONAL(TARGET_ALTIVEC, test "x$enable_altivec" = "xyes")
325 AC_SUBST(LIBDECORE_LIBADD)
329 ############## END OF MMX / 3DNOW
332 PKG_CHECK_MODULES(libogg,ogg >= 1.1,[libogg=yes],:)
333 PKG_CHECK_MODULES(libvorbis,vorbis,[libvorbis=yes],:)
334 PKG_CHECK_MODULES(libvorbisenc,vorbisenc,[libvorbisenc=yes],:)
335 PKG_CHECK_MODULES(libvorbisfile,vorbisfile,[libvorbisfile=yes],:)
336 PKG_CHECK_MODULES(libtheora,theora,[libtheora=yes],:)
337 XIPH_CFLAGS="$libogg_CFLAGS $libvorbis_CFLAGS $libvorbisenc_CFLAGS $libvorbisfile_CFLAGS $libtheora_CFLAGS"
338 XIPH_LIBS="$libogg_LIBS $libvorbis_LIBS $libvorbisenc_LIBS $libvorbisfile_LIBS $libtheora_LIBS"
339 AC_SUBST(XIPH_CFLAGS)
341 ############## END OF XIPH
344 # Just test to see if we have lame installed.
345 AC_CHECK_HEADER(lame/lame.h,[libmp3lameh=yes])
346 AC_CHECK_LIB(mp3lame,lame_init,[libmp3lame=yes],,[$XIPH_LIBS])
349 ############## OpenGL
350 AH_TEMPLATE(HAVE_GL, [Define to 1 if OpenGL 2.0 is available.])
351 AC_ARG_ENABLE(opengl,
352 AC_HELP_STRING([--disable-opengl],
353 [disables hardware accelerated rendering (default=autodetect, requires OpenGL 2.0)]),
354 [ enable_opengl=$enableval ],
355 [ enable_opengl=yes ])
356 if test "x$enableval" = "xyes"; then
357 AC_CHECK_LIB([GL], [glUseProgram],
358 [OPENGL_LIBS="-lGL"; libGL=yes],
359 # On SUSE 10.1, NVidia places the OpenGL 2.0 capable library in /usr/X11R6/lib
360 # but it doesn't place a libGL.so there, so the linker won't pick it up
361 # we have to use the explicit libGL.so.1 path.
363 LIBS="/usr/X11R6/lib/libGL.so.1"
364 AC_MSG_CHECKING(for glUseProgram in /usr/X11R6/lib/libGL.so.1)
365 AC_TRY_LINK([],[extern int glUseProgram(); glUseProgram();],
366 [OPENGL_LIBS="/usr/X11R6/lib/libGL.so.1"; libGL=yes],[libGL=no])
367 AC_MSG_RESULT([$libGL])
371 if test "x$libGL" = "xyes"; then
373 OPENGL_LIBS="-lGLU $OPENGL_LIBS"
376 AC_SUBST(OPENGL_LIBS)
379 ############## .png TO .o CONVERSION
381 AC_CHECK_TOOL(OBJCOPY, objcopy)
382 if test "x$OBJCOPY" = "x"; then
383 AC_MSG_ERROR("objcopy from GNU binutils >= 2.11.90 not found")
385 AC_CHECK_TOOL(OBJDUMP, objdump)
386 dnl extract target and architecture if objdump was found
387 if test "x$OBJDUMP" = "x"; then :; else
388 AC_MSG_CHECKING(for object target)
389 octarget=`$OBJDUMP --info | sed -ne '2p'` # extract first target
390 AC_MSG_RESULT($octarget)
391 AC_MSG_CHECKING(for object architecture)
392 ocarch=`$OBJDUMP --info | sed -ne '4p'` # extract corresponding arch
393 AC_MSG_RESULT($ocarch)
395 AC_SUBST(OBJCOPYTARGET, $octarget)
396 AC_SUBST(OBJCOPYARCH, $ocarch)
398 ############## END of .png TO .o CONVERSION
401 AC_OUTPUT(Makefile cinelerra-cvs-current.spec po/Makefile.in \
403 libmpeg3/Makefile libmpeg3/video/Makefile libmpeg3/audio/Makefile \
405 quicktime/encore50/Makefile \
406 quicktime/ffmpeg/Makefile \
407 quicktime/ffmpeg/libavcodec/Makefile \
408 quicktime/ffmpeg/libavcodec/i386/Makefile \
409 mpeg2enc/Makefile toolame-02l/Makefile \
410 guicast/Makefile cinelerra/Makefile \
411 cinelerra/data/Makefile \
413 plugins/colors/Makefile \
414 plugins/libfourier/Makefile \
415 plugins/libeffecttv/Makefile \
417 plugins/1080to540/Makefile \
418 plugins/histogram/Makefile \
419 plugins/720to480/Makefile \
420 plugins/bandslide/Makefile \
421 plugins/bandwipe/Makefile
422 plugins/blur/Makefile
423 plugins/brightness/Makefile \
424 plugins/burn/Makefile plugins/parametric/Makefile plugins/aging/Makefile \
425 plugins/cdripper/Makefile \
426 plugins/chromakey/Makefile \
427 plugins/chromakeyhsv/Makefile \
428 plugins/colorbalance/Makefile \
429 plugins/compressor/Makefile \
430 plugins/crossfade/Makefile \
431 plugins/decimate/Makefile \
432 plugins/deinterlace/Makefile plugins/delayaudio/Makefile plugins/delayvideo/Makefile \
433 plugins/denoise/Makefile plugins/denoisefft/Makefile plugins/denoisevideo/Makefile \
434 plugins/denoisemjpeg/Makefile \
435 plugins/despike/Makefile plugins/dissolve/Makefile plugins/dot/Makefile \
436 plugins/fieldframe/Makefile plugins/flip/Makefile plugins/framefield/Makefile \
437 plugins/freeverb/Makefile plugins/freezeframe/Makefile plugins/gain/Makefile \
438 plugins/gamma/Makefile \
439 plugins/holo/Makefile plugins/huesaturation/Makefile \
440 plugins/interpolate/Makefile \
441 plugins/interpolateaudio/Makefile \
442 plugins/interpolatevideo/Makefile \
443 plugins/invertaudio/Makefile plugins/invertvideo/Makefile plugins/irissquare/Makefile \
444 plugins/ivtc/Makefile \
445 plugins/liveaudio/Makefile \
446 plugins/livevideo/Makefile \
447 plugins/loopaudio/Makefile \
448 plugins/loopvideo/Makefile \
449 plugins/motion/Makefile \
450 plugins/motionblur/Makefile \
451 plugins/normalize/Makefile \
452 plugins/oilpainting/Makefile \
453 plugins/overlay/Makefile \
454 plugins/overlayaudio/Makefile \
455 plugins/pitch/Makefile \
456 plugins/polar/Makefile \
457 plugins/reframert/Makefile
458 plugins/reframe/Makefile plugins/resample/Makefile plugins/reverb/Makefile \
459 plugins/reverseaudio/Makefile plugins/reversevideo/Makefile plugins/rgb601/Makefile \
460 plugins/rotate/Makefile \
461 plugins/scale/Makefile \
462 plugins/denoiseseltempavg/Makefile \
463 plugins/shapewipe/Makefile \
464 plugins/sharpen/Makefile \
465 plugins/shiftinterlace/Makefile plugins/slide/Makefile plugins/spectrogram/Makefile \
466 plugins/suv/Makefile \
467 plugins/suv/data/Makefile \
468 plugins/defaulttheme/Makefile \
469 plugins/defaulttheme/data/Makefile \
470 plugins/swapchannels/Makefile \
471 plugins/synthesizer/Makefile \
472 plugins/threshold/Makefile \
473 plugins/timeavg/Makefile \
474 plugins/timestretch/Makefile plugins/titler/Makefile plugins/translate/Makefile \
475 plugins/unsharp/Makefile \
476 plugins/videoscope/Makefile plugins/wave/Makefile plugins/whirl/Makefile \
477 plugins/wipe/Makefile \
478 plugins/yuv/Makefile \
479 plugins/downsample/Makefile plugins/flash/Makefile plugins/gradient/Makefile \
480 plugins/level/Makefile plugins/linearblur/Makefile \
481 plugins/perspective/Makefile plugins/radialblur/Makefile plugins/zoomblur/Makefile \
482 plugins/timefront/Makefile \
483 plugins/svg/Makefile \
484 plugins/diffkey/Makefile \
485 plugins/fonts/Makefile \
489 AC_DEFUN([RPT],[if test "x$$1" = "xyes"; then status=found; else status=missing; succeeded=no; fi
490 echo "AC_HELP_STRING($2,$status)"])
493 echo "Summary of mandatory components:"
495 RPT(libvorbis,libvorbis)
496 RPT(libvorbisenc,libvorbisenc)
497 RPT(libvorbisfile,libvorbisfile)
498 RPT(libtheora,libtheora)
499 RPT(libOpenEXR,OpenEXR)
502 RPT(libjpeg,libjpeg libraries)
503 RPT(libjpegh,libjpeg headers)
504 RPT(freetype2,FreeType 2)
505 RPT(libx264,libx264 libraries)
506 RPT(libx264h,libx264 headers)
507 RPT(libuuid,libuuid libraries)
508 RPT(libuuidh,libuuid headers)
509 RPT(mjpegtools,mjpegtools)
510 RPT(libfftw3,libfftw3 libraries)
511 RPT(libfftw3h,libfftw3 headers)
512 RPT(liba52,liba52 libraries)
513 RPT(liba52h,liba52 headers)
514 RPT(libmp3lame,libmp3lame libraries)
515 RPT(libmp3lameh,libmp3lame headers)
516 RPT(libsndfile,libsndfile libraries)
517 RPT(libsndfileh,libsndfile headers)
518 RPT(libfaac,libfaac libraries)
519 RPT(libfaach,libfaac headers)
520 RPT(libfaad,libfaad libraries)
521 RPT(libfaadh,libfaad headers)
522 mandatory="$succeeded"
525 echo "Summary of optional components:"
526 AC_DEFUN([ORPT],[if test "x$$1" = "xno"; then
527 echo "$2 was opted out with $3"
529 if test "x$$1" = "xok"; then component=enabled; else component=disabled; fi
531 echo "$2 is $component"
533 ORPT(enable_esd,ESD (Enlightenment Sound Daemon),--disable-esd,RPT(esound,ESD subsystem))
534 ORPT(enable_alsa,ALSA,--disable-alsa,RPT(alsa,ALSA subsystem))
535 ORPT(enable_firewire,Firewire,--disable-firewire,
536 RPT(libraw1394,libraw1394)
537 RPT(libiec61883,libiec61883)
538 RPT(libavc1394,libavc1394 libraries)
539 RPT(libavc1394h,libavc1394 headers)
540 RPT(librom1394,librom1394 libraries)
541 RPT(librom1394h,librom1394 headers)
543 ORPT(enable_opengl,Hardware acceleration using OpenGL 2.0,--disable-opengl,
544 RPT(libGL,OpenGL 2.0 libraries)
547 if test "x$mandatory" = "xno"; then
549 echo "WARNING: Mandatory components are missing; compilation may fail!"
552 echo "Now type"; echo " make"; echo; echo "to start compilation."