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)
22 # hack for libtool 1.5 -- this is ugly and probably wrong, but works
23 if test `libtool --version | grep ltmain.sh | cut -b 25-27` = "1.5"; then
25 LTCXX_FLAGS="--tag=CXX"
31 # hack for using nasm for .S files
32 CCAS="\$(top_srcdir)/admin/nasm"
36 dnl Check for Video4Linux2
37 AH_TEMPLATE(HAVE_VIDEO4LINUX2, [Define to 1 if Video4Linux2 is available.])
38 AC_CHECK_HEADER([linux/videodev2.h],
39 [AC_CHECK_MEMBER(struct v4l2_buffer.index, [AC_DEFINE(HAVE_VIDEO4LINUX2)], [],
40 [#include <linux/time.h>
41 #include <linux/videodev2.h>])],
42 [],[#include <linux/time.h>] )
44 ############## SPECIAL DIRECTORIES
45 AC_ARG_WITH(plugindir,
46 AC_HELP_STRING([--with-plugindir], [sets the directory where the plugins should be installed]),
47 [ plugindir=$withval ],
48 [ plugindir="\${exec_prefix}/lib/cinelerra" ])
52 AC_HELP_STRING([--with-fontsdir], [sets the directory where the fonts should be installed]),
53 [ fontsdir=$withval ],
54 [ fontsdir="\${plugindir}/fonts" ])
56 ############## END OF SPECIAL DIRECTORIES
60 if test "$no_x" = yes; then
61 if test "x$have_x" = "xdisabled"; then
62 AC_MSG_WARN([Do not use --without-x or --with-x=no.])
64 AC_MSG_WARN([X Windows development tools were not found.])
65 AC_MSG_WARN([Please install xlib-dev or xorg-x11-devel.])
67 AC_MSG_ERROR([Cinelerra requires X Windows.])
69 AH_TEMPLATE(HAVE_LIBXXF86VM, [Define to 1 if libXxf86vm is available.])
70 AC_DEFINE(HAVE_LIBXXF86VM)
71 ############## END XLIB
74 # the sound options are propagated by SOUND_CFLAGS and SOUND_LDFLAGS
76 AC_HELP_STRING([--disable-oss], [disable support for oss (default=enabled)]))
78 AC_HELP_STRING([--disable-alsa],[disable support for ALSA (default=autodetect)]),
79 [enable_alsa=$enableval],[enable_alsa=yes])
81 AC_HELP_STRING([--disable-esd], [disable support for ESD (default=autodetect)]),
82 [enable_esd=$enableval],[enable_esd=yes])
84 if test "x$enable_oss" = "xyes" || test "x$enable_oss" = "x"; then
85 SOUND_CFLAGS="-DHAVE_OSS $SOUND_CFLAGS"
87 if test "x$enable_alsa" = "xyes"; then
88 AM_PATH_ALSA(1.0.2,[alsa=yes])
89 if test "x$alsa" = "xyes"; then
90 SOUND_CFLAGS="$ALSA_CFLAGS -DHAVE_ALSA $SOUND_CFLAGS"
91 SOUND_LDFLAGS="$ALSA_LIBS $SOUND_LDFLAGS"
94 dnl This added -lasound to LIBS. LIBS is used in every link command.
95 dnl But we do not want to link all shared libraries against -lasound.
96 dnl So we remove it again.
97 LIBS=`echo "$LIBS" | sed -e s/-lasound//g`
100 if test "x$enable_esd" = "xyes"; then
101 AM_PATH_ESD(,[esound=yes])
102 if test "x$esound" = xyes; then
103 SOUND_CFLAGS="$ESD_CFLAGS -DHAVE_ESOUND $SOUND_CFLAGS"
104 SOUND_LDFLAGS="$ESD_LIBS $SOUND_LDFLAGS"
108 AC_SUBST(SOUND_CFLAGS)
109 AC_SUBST(SOUND_LDFLAGS)
110 ############### END OF SOUND
112 ############## MJPEGTOOLS (for YUV4MPEG)
113 PKG_CHECK_MODULES(MJPEG, mjpegtools,[mjpegtools=yes],:)
114 AC_SUBST(MJPEG_CFLAGS)
116 AC_MSG_CHECKING([for number of arguments to y4m_write_frame_header])
117 # check if mjpegtools has 3 arguements for y4m_write_frame_header
118 # Note: this test came from transcode...
119 save_CFLAGS="$CFLAGS"
121 CFLAGS="$CFLAGS $MJPEG_CFLAGS"
122 LIBS="$LIBS $MJPEG_LIBS"
125 #include <mjpegtools/yuv4mpeg.h>
126 #include <mjpegtools/mpegconsts.h>
128 [y4m_write_frame_header(1,NULL,NULL)],
131 [MJPEGTOOLS_Y4M_WRITE_FRAME_HEADER__3ARGS],
133 [using y4m_write_frame_header with 3 arguments]
135 mjpeg_version_info="3 arguments (new versions)"
136 ],[mjpeg_version_info="assuming 2 arguments (older versions)"])
137 AC_MSG_RESULT($mjpeg_version_info)
138 CFLAGS="$save_CFLAGS"
140 ############## END MJPEGTOOLS
142 ############## MISC LIBRARIES
143 AC_CHECK_HEADER(uuid/uuid.h,[libuuidh=yes])
144 AC_CHECK_LIB(uuid, uuid_clear,[libuuid=yes])
146 AC_CHECK_HEADER(fftw3.h,[libfftw3h=yes])
147 AC_CHECK_LIB(fftw3, fftw_free,[libfftw3=yes])
149 PKG_CHECK_MODULES(LIBDV,libdv >= 0.103,[libdv=yes],:)
150 AC_SUBST(LIBDV_CFLAGS)
153 PKG_CHECK_MODULES(PNG,libpng,[libpng=yes],:)
155 AC_CHECK_HEADER(jpeglib.h,[libjpegh=yes])
156 AC_CHECK_LIB(jpeg,jpeg_start_decompress,[libjpeg=yes])
158 AC_CHECK_HEADER(tiffio.h,[libtiffh=yes])
159 AC_CHECK_LIB(tiff,TIFFOpen,[libtiff=yes])
161 AC_ARG_ENABLE(freetype2,
162 AC_HELP_STRING([--enable-freetype2],[enables freetype2 usage (default is use pkg-config detection)]),
165 [ PKG_CHECK_MODULES(FREETYPE,freetype2,[freetype2=yes],:) ])
166 ############## END OF MISC LIBRARIES
168 LARGEFILE_CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
169 AC_SUBST(LARGEFILE_CFLAGS)
171 ############## A52DEC
172 AC_CHECK_LIB(a52,a52_init,[liba52=yes])
173 AC_CHECK_HEADER(a52dec/a52.h,[liba52h=yes])
175 if test "x$liba52$liba52h" = "xyesyes"; then
179 AC_SUBST(A52DEC_CFLAGS)
180 AC_SUBST(A52DEC_LDFLAGS)
181 ############## END OF A52DEC
183 ############## LIBSNDFILE
184 AC_CHECK_LIB(sndfile, sf_open,[libsndfile=yes])
185 AC_CHECK_HEADERS(sndfile.h,[libsndfileh=yes])
186 ############## END OF LIBSNDFILE
188 ############## OpenEXR
189 PKG_CHECK_MODULES(OPENEXR, OpenEXR,[libOpenEXR=yes],:)
190 AC_SUBST(OPENEXR_CFLAGS)
191 AC_SUBST(OPENEXR_LIBS)
192 ############## END OF OpenEXR
194 ############## LIBFAAD, LIBFAAC
195 AC_CHECK_LIB(faac, faacEncOpen,[libfaac=yes])
196 AC_CHECK_HEADER(faac.h,[libfaach=yes])
198 AC_CHECK_LIB(faad, faacDecInit,[libfaad=yes],
199 AC_CHECK_LIB(faad, NeAACDecInit,[libfaad=yes]))
200 AC_CHECK_HEADER(faad.h,[libfaadh=yes])
201 if test "x$libfaad$libfaadh" = xyesyes; then
205 AC_SUBST(FAAD_CFLAGS)
207 ############## END OF LIBFAAD, LIBFAAC
209 ############## FIREWIRE
210 # firewire settings are propagated through FIREWIRE_CFLAGS and FIREWIRE_LDFLAGS
211 AC_ARG_ENABLE(firewire,
212 AC_HELP_STRING([--disable-firewire], [disable support for firewire (default=enabled)]),
213 [ enable_firewire=$enableval ],
214 [ enable_firewire=yes ])
216 if test "x$enable_firewire" = "xyes"; then
217 PKG_CHECK_MODULES(LIBRAW1394, libraw1394 >= 1.2.0,[libraw1394=yes],:)
218 PKG_CHECK_MODULES(LIBIEC61883, libiec61883,[libiec61883=yes],:)
220 AC_CHECK_LIB(avc1394, avc1394_send_command,[libavc1394=yes],:,$LIBRAW1394_LIBS)
221 AC_CHECK_HEADER([libavc1394/avc1394.h],[libavc1394h=yes])
222 AC_CHECK_LIB(rom1394, rom1394_get_bus_id,[librom1394=yes],:,$LIBRAW1394_LIBS)
223 AC_CHECK_HEADER([libavc1394/rom1394.h],[librom1394h=yes])
226 if test "x$enable_firewire$libraw1394$libiec61883$libavc1394$libavc1394h$librom1394$librom1394h" = "xyesyesyesyesyesyesyes"; then
227 FIREWIRE_CFLAGS="-DHAVE_FIREWIRE $LIBIEC61883_CFLAGS $LIBRAW1394_CFLAGS"
228 FIREWIRE_LDFLAGS="-lavc1394 -lrom1394 $LIBIEC61883_LIBS $LIBRAW1394_LIBS"
231 AC_SUBST(FIREWIRE_CFLAGS)
232 AC_SUBST(FIREWIRE_LDFLAGS)
233 AM_CONDITIONAL(HAVE_FIREWIRE,test "x$enable_firewire" = "xok")
234 ############## END OF FIREWIRE
236 ############# BUILDINFO display, (for displaying version / date)
237 AC_ARG_WITH(buildinfo,
240 [includes revision information in the 'About' box; allowed values: svn, git; add /recompile to force rebuild on each make invocation, or cust/"Custom string" for packagers]),
241 [ buildinfo=$withval],
242 [ buildinfo="none" ])
245 BUILDINFO_repository=$(echo $buildinfo | sed 's=/recompile==')
246 BUILDINFO_recompile=$(echo $buildinfo | sed 's=.*/recompile=yes=')
247 BUILDINFO_custom=$(echo $buildinfo | sed 's=cust.*=yes=')
248 BUILDINFO_CUSTOM_TAG=$(echo $buildinfo | sed 's=cust/==')
249 AC_SUBST(BUILDINFO_CUSTOM_TAG)
250 AM_CONDITIONAL(BUILDINFO_GIT, test "x$BUILDINFO_repository" = "xgit")
251 AM_CONDITIONAL(BUILDINFO_SVN, test "x$BUILDINFO_repository" = "xsvn")
252 AM_CONDITIONAL(BUILDINFO_RECOMPILE, test "x$BUILDINFO_recompile" = "xyes")
253 AM_CONDITIONAL(BUILDINFO_CUST, test "x$BUILDINFO_custom" = "xyes")
255 echo removing cinelerra/versioninfo.h to force a re-build
256 rm -f cinelerra/versioninfo.h > /dev/null 2>&1
258 ############# END BUILDINFO display, (for displaying version / date)
260 ############# CSS SUPPORT IN LIBMPEG3
261 if test "x$enable_css" = "xyes"; then
262 CSS_CFLAGS="-DHAVE_CSS"
266 AC_HELP_STRING([--disable-css], [disable support for css in libmpeg3 (default=enabled)]),,
267 [ enable_css=$enableval ],
269 ############## END OF CSS SUPPORT IN LIBMPEG3
272 ############## libx264
274 AC_CHECK_LIB(x264, x264_encoder_open,
275 [libx264=yes LIBX264_LIBS=-lx264],,-lpthread -lm)
276 if test "x$with_pic" = "xyes"; then
277 AC_CHECK_LIB(x264_pic, x264_encoder_open,
278 [libx264=yes LIBX264_LIBS=-lx264_pic],,-lpthread -lm)
280 AC_CHECK_HEADER(x264.h, [libx264h=yes])
281 AC_SUBST(LIBX264_LIBS)
284 ############## MMX / 3DNOW POWERPC / ALTIVEC
287 AC_HELP_STRING([--enable-mmx], [enables support for mmx (default is autodetect)]),
288 [ enable_mmx=$enableval ],[ enable_mmx=auto ])
290 AC_HELP_STRING([--enable-3dnow], [enables support for 3dnow (default is disabled)]),
291 [ enable_3dnow=$enableval ], [ enable_3dnow=no ])
293 AC_ARG_ENABLE(altivec,
294 AC_HELP_STRING([--enable-altivec], [enables altivec support (default is disabled)]),
295 [ enable_altivec=$enableval ],
296 [ enable_altivec=no ])
298 case "$target_cpu" in
300 test "x$enable_mmx" = "xauto" && enable_mmx=yes
302 CPU_CFLAGS="-DX86_CPU $CPU_CFLAGS"
304 if test "x$enable_mmx" = "xyes"; then
305 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"
319 test "x$enable_mmx" = "xauto" && enable_mmx=no
321 AM_CONDITIONAL(USEMMX, test "x$enable_mmx" = "xyes")
322 AM_CONDITIONAL(TARGET_BUILTIN_VECTOR,test "x$enable_mmx" = "xyes")
323 AM_CONDITIONAL(USE3DNOW, test "x$enable_3dnow" = "xyes")
324 AM_CONDITIONAL(TARGET_ARCH_POWERPC, test "x$target_cpu" = "xpowerpc")
325 AM_CONDITIONAL(TARGET_ALTIVEC, test "x$enable_altivec" = "xyes")
326 AC_SUBST(LIBDECORE_LIBADD)
329 ############## END OF MMX / 3DNOW
331 ############ external ffmpeg
332 AC_ARG_WITH([external-ffmpeg], AC_HELP_STRING([--with-external-ffmpeg], [use external ffmpeg library]))
334 if test "x$with_external_ffmpeg" = "xyes"; then
335 PKG_CHECK_MODULES([FFMPEG], [libavcodec libpostproc])
337 FFMPEG_EXTERNALTEXT="External ffmpeg"
340 FFMPEG_CFLAGS="-I\$(top_srcdir)/quicktime/ffmpeg/libavcodec"
341 FFMPEG_LIBS="ffmpeg/libavcodec/libavcodec.la"
342 FFMPEG_EXTERNALTEXT="Internal ffmpeg"
345 AC_SUBST(FFMPEG_FOLDER)
346 AC_SUBST(FFMPEG_CFLAGS)
347 AC_SUBST(FFMPEG_LIBS)
348 AC_SUBST(FFMPEG_EXTERNALTEXT)
349 ############# END external ffmpeg
351 ############# run ffmpeg configure to generates avconfig.h
352 echo --- FFMPEG CONFIGURATION SECTION --------------
353 if test "x$with_external_ffmpeg" = "xyes"; then
354 echo Using external ffmpeg - no configuration needed
358 if test "x$enable_mmx" = "xno"; then
359 ff_conf_args="$ff_conf_args --disable-mmx"
362 # Where altivec is not present
363 if test "x$enable_altivec" = "xno"; then
364 ff_conf_args="$ff_conf_args --disable-altivec"
368 srcdir_c=$(readlink -f $srcdir)
369 mkdir -p quicktime/ffmpeg/ > /dev/null 2>&1
371 echo quicktime/ffmpeg/configure $ff_conf_args
372 $srcdir_c/quicktime/ffmpeg/configure $ff_conf_args
375 echo --------------------------------------------------
376 ############# END run ffmpeg configure to generates avconfig.h
379 PKG_CHECK_MODULES(libogg,ogg >= 1.1,[libogg=yes],:)
380 PKG_CHECK_MODULES(libvorbis,vorbis,[libvorbis=yes],:)
381 PKG_CHECK_MODULES(libvorbisenc,vorbisenc,[libvorbisenc=yes],:)
382 PKG_CHECK_MODULES(libvorbisfile,vorbisfile,[libvorbisfile=yes],:)
383 PKG_CHECK_MODULES(libtheora,theora,[libtheora=yes],:)
384 XIPH_CFLAGS="$libogg_CFLAGS $libvorbis_CFLAGS $libvorbisenc_CFLAGS $libvorbisfile_CFLAGS $libtheora_CFLAGS"
385 XIPH_LIBS="$libogg_LIBS $libvorbis_LIBS $libvorbisenc_LIBS $libvorbisfile_LIBS $libtheora_LIBS"
386 AC_SUBST(XIPH_CFLAGS)
388 ############## END OF XIPH
391 # Just test to see if we have lame installed.
392 AC_CHECK_HEADER(lame/lame.h,[libmp3lameh=yes])
393 AC_CHECK_LIB(mp3lame,lame_init,[libmp3lame=yes],,[$XIPH_LIBS])
396 ############## OpenGL
397 AH_TEMPLATE(HAVE_GL, [Define to 1 if OpenGL 2.0 is available.])
398 AC_ARG_ENABLE(opengl,
399 AC_HELP_STRING([--disable-opengl],
400 [disables hardware accelerated rendering (default=autodetect, requires OpenGL 2.0)]),
401 [ enable_opengl=$enableval ],
402 [ enable_opengl=yes ])
403 if test "x$enableval" = "xyes"; then
404 AC_CHECK_LIB([GL], [glUseProgram],
405 [OPENGL_LIBS="-lGL"; libGL=yes],
406 # On SUSE 10.1, NVidia places the OpenGL 2.0 capable library in /usr/X11R6/lib
407 # but it doesn't place a libGL.so there, so the linker won't pick it up
408 # we have to use the explicit libGL.so.1 path.
410 LIBS="/usr/X11R6/lib/libGL.so.1"
411 AC_MSG_CHECKING(for glUseProgram in /usr/X11R6/lib/libGL.so.1)
412 AC_TRY_LINK([],[extern int glUseProgram(); glUseProgram();],
413 [OPENGL_LIBS="/usr/X11R6/lib/libGL.so.1"; libGL=yes],[libGL=no])
414 AC_MSG_RESULT([$libGL])
418 if test "x$libGL" = "xyes"; then
420 OPENGL_LIBS="-lGLU $OPENGL_LIBS"
423 AC_SUBST(OPENGL_LIBS)
427 ############## NoBug build levels
428 AH_TEMPLATE(EBUG_ALPHA, [Define to 1 for selecting NoBug ALPHA build level])
429 AH_TEMPLATE(EBUG_BETA, [Define to 1 for selecting NoBug BETA build level])
430 AH_TEMPLATE(NDEBUG, [Define to 1 for selecting NoBug RELEASE build level])
431 AC_ARG_ENABLE(alpha, AC_HELP_STRING([--enable-alpha], [select NoBug ALPHA build level]),
433 AC_DEFINE(EBUG_ALPHA),
435 AC_ARG_ENABLE(beta, AC_HELP_STRING([--enable-beta], [select NoBug BETA build level]),
437 AC_DEFINE(EBUG_BETA),
439 AC_ARG_ENABLE(release, AC_HELP_STRING([--enable-release], [select NoBug RELEASE build level]),
445 AC_DEFINE(EBUG_ALPHA)
450 ############## .png TO .o CONVERSION
452 AC_CHECK_TOOL(OBJCOPY, objcopy)
453 if test "x$OBJCOPY" = "x"; then
454 AC_MSG_ERROR("objcopy from GNU binutils >= 2.11.90 not found")
456 AC_CHECK_TOOL(OBJDUMP, objdump)
457 dnl extract target and architecture if objdump was found
458 if test "x$OBJDUMP" = "x"; then :; else
459 AC_MSG_CHECKING(for object target)
460 octarget=`$OBJDUMP --info | sed -ne '2p'` # extract first target
461 AC_MSG_RESULT($octarget)
462 AC_MSG_CHECKING(for object architecture)
463 ocarch=`$OBJDUMP --info | sed -ne '4p'` # extract corresponding arch
464 AC_MSG_RESULT($ocarch)
466 AC_SUBST(OBJCOPYTARGET, $octarget)
467 AC_SUBST(OBJCOPYARCH, $ocarch)
469 ############## END of .png TO .o CONVERSION
472 AC_OUTPUT(Makefile cinelerra-cvs-current.spec po/Makefile.in \
474 quicktime/ffmpeg/Makefile \
475 quicktime/ffmpeg/libavcodec/Makefile \
476 quicktime/ffmpeg/libavcodec/i386/Makefile \
477 quicktime/ffmpeg/libavcodec/ppc/Makefile \
478 mpeg2enc/Makefile toolame-02l/Makefile \
483 AC_DEFUN([RPT],[if test "x$$1" = "xyes"; then status=found; else status=missing; succeeded=no; fi
484 echo "AC_HELP_STRING($2,$status)"])
487 echo "Summary of mandatory components:"
489 RPT(libvorbis,libvorbis)
490 RPT(libvorbisenc,libvorbisenc)
491 RPT(libvorbisfile,libvorbisfile)
492 RPT(libtheora,libtheora)
493 RPT(libOpenEXR,OpenEXR)
496 RPT(libjpeg,libjpeg libraries)
497 RPT(libjpegh,libjpeg headers)
498 RPT(libtiff,libtiff libraries)
499 RPT(libtiffh,libtiff headers)
500 RPT(freetype2,FreeType 2)
501 RPT(libx264,libx264 libraries)
502 RPT(libx264h,libx264 headers)
503 RPT(libuuid,libuuid libraries)
504 RPT(libuuidh,libuuid headers)
505 RPT(mjpegtools,mjpegtools)
506 RPT(libfftw3,libfftw3 libraries)
507 RPT(libfftw3h,libfftw3 headers)
508 RPT(liba52,liba52 libraries)
509 RPT(liba52h,liba52 headers)
510 RPT(libmp3lame,libmp3lame libraries)
511 RPT(libmp3lameh,libmp3lame headers)
512 RPT(libsndfile,libsndfile libraries)
513 RPT(libsndfileh,libsndfile headers)
514 RPT(libfaac,libfaac libraries)
515 RPT(libfaach,libfaac headers)
516 RPT(libfaad,libfaad libraries)
517 RPT(libfaadh,libfaad headers)
518 mandatory="$succeeded"
521 echo "Summary of optional components:"
522 AC_DEFUN([ORPT],[if test "x$$1" = "xno"; then
523 echo "$2 was opted out with $3"
525 if test "x$$1" = "xok"; then component=enabled; else component=disabled; fi
527 echo "$2 is $component"
529 ORPT(enable_esd,ESD (Enlightenment Sound Daemon),--disable-esd,RPT(esound,ESD subsystem))
530 ORPT(enable_alsa,ALSA,--disable-alsa,RPT(alsa,ALSA subsystem))
531 ORPT(enable_firewire,Firewire,--disable-firewire,
532 RPT(libraw1394,libraw1394)
533 RPT(libiec61883,libiec61883)
534 RPT(libavc1394,libavc1394 libraries)
535 RPT(libavc1394h,libavc1394 headers)
536 RPT(librom1394,librom1394 libraries)
537 RPT(librom1394h,librom1394 headers)
539 ORPT(enable_opengl,Hardware acceleration using OpenGL 2.0,--disable-opengl,
540 RPT(libGL,OpenGL 2.0 libraries)
543 echo "AC_HELP_STRING(build level,$nobug_level)"
545 if test "x$mandatory" = "xno"; then
547 echo "WARNING: Mandatory components are missing; compilation may fail!"
550 echo "Now type"; echo " make"; echo; echo "to start compilation."