X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fconfigure.ac;h=78db7cfa19b9a889e33541cbdf52d5ac5f16a26c;hp=32e0aa17e8902ab92ab68b2a4f0ace412ed9e4c9;hb=HEAD;hpb=e51e8d64881ef494548697203c82e5be8646cd4b diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac index 32e0aa17..4b72a861 100644 --- a/cinelerra-5.1/configure.ac +++ b/cinelerra-5.1/configure.ac @@ -1,17 +1,41 @@ AC_PREREQ([2.69]) -AC_INIT([cinelerra], [5.1], [mail@lists.cinelerra-gg.org]) +AC_INIT([cinelerra],[5.1],[mail@lists.cinelerra-gg.org]) + +# Put autogenerated stuff in subdir m4, which must be created +# externally. This macro must be set before calling AC_INIT_AUTOMAKE +AC_CONFIG_AUX_DIR(m4) +AC_CONFIG_MACRO_DIRS([m4]) AM_INIT_AUTOMAKE([foreign]) +LT_INIT() AM_PROG_AS -AC_LANG_CPLUSPLUS -AC_LANG_C +AC_LANG([C++]) +AC_LANG([C]) AC_PROG_CXX + +AC_CHECK_PROG(MAKEINFO,[makeinfo],[makeinfo],[no]) +if test x"$MAKEINFO" == x"no" ; then +AC_MSG_ERROR([Please install texinfo]) +fi + +AC_CHECK_PROG(GETTEXT,[gettext],[gettext],[no]) +if test x"$GETTEXT" == x"no" ; then +AC_MSG_ERROR([Please install gettext]) +fi + +AC_CHECK_PROG(LIBTOOL,[libtool],[libtool],[no]) +if test x"$LIBTOOL" == x"no" ; then +AC_MSG_ERROR([Please install libtool]) +fi + CFG_CFLAGS+=" -fno-omit-frame-pointer -fno-math-errno -fno-signed-zeros" CFG_CFLAGS+=" -pthread -Wall" # misguided pedantic warnings -CFG_CFLAGS+=" -Wno-unknown-warning" +# this is extra work, not a gain... +#CFG_CFLAGS+=" -Wno-unknown-warning-option" +CFG_CFLAGS+=" -Wno-attributes" CFG_CFLAGS+=" -Wno-unused-result" CFG_CFLAGS+=" -Wno-stringop-overflow" CFG_CFLAGS+=" -Wno-format-truncation" @@ -23,15 +47,16 @@ CFG_CFLAGS+=" -D__STDC_LIMIT_MACROS" CFG_CFLAGS+=" -DPNG_SKIP_SETJMP_CHECK=1" CFG_CFLAGS+=" -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" CFG_CFLAGS+=" -I/usr/include -I/usr/local/include" +CFG_CFLAGS+=" -I/data/data/com.termux/files/usr/include/a52dec -I/usr/include/a52dec" CFG_CFLAGS+=" -I/usr/include/freetype2 -I/usr/local/include/freetype2" +CFG_CFLAGS+=" -I/data/data/com.termux/files/usr/include/freetype2" CFG_CFLAGS+=" -I/usr/include/uuid -I/usr/local/include/uuid" +CFG_CFLAGS+=" -I/data/data/com.termux/files/usr/include/uuid -I/usr/local/include/uuid" CFG_CFLAGS+=" -I/usr/include/mjpegtools -I/usr/local/include/mjpegtools" -CFG_LDFLAGS+=" -z noexecstack" - AC_DEFUN([CHECK_WITH], [ AC_ARG_WITH([$1], - AC_HELP_STRING([--with-[$1]], [$2 ($4)]), + AS_HELP_STRING([--with-[$1]],[$2 ($4)]), [WANT_$3=$withval], [WANT_$3='$4']) AC_SUBST([WANT_$3]) ]) @@ -39,20 +64,32 @@ AC_SUBST([WANT_$3]) CHECK_WITH([jobs],[parallel build jobs],[JOBS],[auto]) CHECK_WITH([exec-name],[binary executable name],[CIN],[cin]) CHECK_WITH([single-user],[to install cin in bin],[CINBIN_BUILD],[no]) -CHECK_WITH([ladspa-build],[build ladspa library],[LADSPA_BUILD],[yes]) CHECK_WITH([lv2],[lv2 library support],[LV2],[yes]) CHECK_WITH([cinlib],[cinelerra library path],[CINLIB_DIR],[auto]) CHECK_WITH([cindat],[cinelerra share path],[CINDAT_DIR],[auto]) CHECK_WITH([plugin-dir],[plugin install dir],[PLUGIN_DIR],[auto]) CHECK_WITH([ladspa-dir],[ladspa install dir],[LADSPA_DIR],[auto]) +CHECK_WITH([ladspa-build],[build ladspa library],[LADSPA_BUILD],[yes]) CHECK_WITH([config-dir],[.bcast config dir],[CONFIG_DIR],[$$HOME/.bcast5]) +CHECK_WITH([nested-dir],[nested proxy dir],[NESTED_DIR],[$$HOME/Videos]) +CHECK_WITH([snap-dir],[snapshot/grabshot dir],[SNAP_DIR],[$$HOME/Pictures]) CHECK_WITH([browser],[cin_browser path],[CIN_BROWSER],[firefox]) CHECK_WITH([git-ffmpeg],[git ffmpeg using url],[GIT_FFMPEG],[no]) CHECK_WITH([noelision],[use noelision/libpthread],[NOELISION],[auto]) CHECK_WITH([booby],[window lock trace booby trap],[BOOBY],[no]) CHECK_WITH([libzmpeg],[build libzmpeg],[LIBZMPEG],[yes]) -CHECK_WITH([commercial],[enable commercial capture],[COMMERCIAL],[yes]) +CHECK_WITH([libdpx],[build libdpx],[LIBDPX],[auto]) +CHECK_WITH([commercial],[enable commercial capture],[COMMERCIAL],[no]) CHECK_WITH([thirdparty],[use thirdparty build],[CIN_3RDPARTY],[yes]) +CHECK_WITH([shuttle],[shuttle device],[SHUTTLE],[yes]) +CHECK_WITH([wintv],[usb 2040:826d wintv device],[WINTV],[yes]) +CHECK_WITH([x10tv],[usb 0bc7:0004 X10 remote device],[X10TV],[yes]) +CHECK_WITH([vaapi],[video acceleration api],[VAAPI],[yes]) +CHECK_WITH([vdpau],[video decode+presentation api for unix],[VDPAU],[yes]) +CHECK_WITH([nv],[nvenc/nvdec ffnvcodec api],[NV],[yes]) +CHECK_WITH([cuda],[nv cuda plugins],[CUDA],[auto]) +CHECK_WITH([clang],[use clang instead of gcc/g++],[CLANG],[no]) +CHECK_WITH([filegif],[enable filegif i/o], [GIFLIB],[yes]) if test "x$WANT_LV2" != "xno"; then GTK2_LIBS=`pkg-config --libs gtk+-2.0` @@ -67,6 +104,12 @@ fi if test "x$WANT_COMMERCIAL" = "xyes" -a "x$WANT_LIBZMPEG" != "xyes" ; then AC_MSG_ERROR([commercial requires libzmpeg support.]) fi +if test "x$WANT_VIDEO4LINUX2" = "xyes" -a "x$WANT_LIBZMPEG" != "xyes" ; then + AC_MSG_ERROR([video4linux2 currently requires libzmpeg support.]) +fi +if test "x$WANT_DVB" = "xyes" -a "x$WANT_LIBZMPEG" != "xyes" ; then + AC_MSG_ERROR([dvb currently requires libzmpeg support.]) +fi if test "x$WANT_CINBIN_BUILD" = "xyes"; then WANT_LOCALE_DIR='$$CIN_LIB/locale' @@ -130,7 +173,8 @@ AC_SUBST(MAK_INSTALLS) AC_SUBST(MAK_UNINSTALLS) if test "x$WANT_JOBS" = "xauto"; then - CPUS=`grep -c "^proc" /proc/cpuinfo` +# CPUS=`grep -c "^proc" /proc/cpuinfo` + CPUS=`nproc` WANT_JOBS=`expr $CPUS + $CPUS / 2 + 2` fi @@ -143,7 +187,7 @@ inc_$1="$4" AC_DEFUN([PKG_3RD],[ AC_ARG_ENABLE([$1], - AC_HELP_STRING([--enable-$1],[build $1 ($2)]), + AS_HELP_STRING([--enable-$1],[build $1 ($2)]), [PKG_$1=$enableval], [PKG_$1=$2]) PKG_DEF([$1],[$3],[$4],[$5]) ]) @@ -179,11 +223,10 @@ PKG_3RD([esound],[no], [ . ]) PKG_3RD([ffmpeg],[yes], - [ffmpeg-4.1], + [ffmpeg-6.1], [ libavutil/libavutil.a \ libavcodec/libavcodec.a \ libpostproc/libpostproc.a \ - libavdevice/libavdevice.a \ libavformat/libavformat.a \ libswscale/libswscale.a \ libavfilter/libavfilter.a \ @@ -195,7 +238,7 @@ if test "x$WANT_GIT_FFMPEG" != "xno" ; then fi PKG_3RD([fftw],[auto], - [fftw-3.3.7], + [fftw-3.3.10], [ .libs/libfftw3.a \ libbench2/libbench2.a \ rdft/scalar/r2cb/.libs/librdft_scalar_r2cb.a \ @@ -213,7 +256,7 @@ PKG_3RD([fftw],[auto], [ api ]) PKG_3RD([flac],[auto], - [flac-1.3.2], + [flac-1.4.2], [ src/libFLAC/.libs/libFLAC.a \ src/libFLAC++/.libs/libFLAC++.a \ src/share/replaygain_analysis/.libs/libreplaygain_analysis.a \ @@ -224,19 +267,10 @@ PKG_3RD([flac],[auto], [ include ]) PKG_3RD([giflib],[yes], - [giflib-5.1.4], - [ lib/.libs/libgif.a \ - util/libgetarg.a ], - [ lib ]) - -PKG_3RD([ilmbase],[auto], - [ilmbase-2.2.1], - [ Iex/.libs/libIex.a \ - IexMath/.libs/libIexMath.a \ - Half/.libs/libHalf.a \ - Imath/.libs/libImath.a \ - IlmThread/.libs/libIlmThread.a ], - [ Iex Half Imath config IlmThread ]) + [giflib-5.2.1], + [ libgif.a \ + libutil.a ], + [ . ]) PKG_DEF([ladspa], [ladspa-0.4.17], [], []) @@ -269,29 +303,28 @@ PKG_3RD([libdv],[auto], [ . ]) PKG_3RD([libjpeg],[auto], - [libjpeg-turbo-1.5.1], - [ .libs/libjpeg.a \ - .libs/libturbojpeg.a \ - simd/.libs/libsimd.a ], - [ . ]) + [libjpeg-turbo-2.1.5.1], + [ build/libjpeg.a \ + build/libturbojpeg.a ], + [ opt/libjpeg-turbo/include ]) PKG_3RD([opus],[auto], - [opus-1.2.1], + [opus-1.3.1], [ .libs/libopus.a ], [ include ]) PKG_3RD([openjpeg],[auto], - [openjpeg-2.3.0], + [openjpeg-2.5.0], [ bin/libopenjp2.a ], [ src/lib/openjp2 ]) PKG_3RD([libogg],[auto], - [libogg-1.3.2], + [libogg-1.3.5], [ src/.libs/libogg.a ], [ include ]) PKG_3RD([libsndfile],[auto], - [libsndfile-1.0.28], + [libsndfile-1.2.2], [ src/.libs/libsndfile.a \ src/.libs/libcommon.a \ src/G72x/.libs/libg72x.a \ @@ -303,7 +336,7 @@ PKG_3RD([libtheora],[auto], [ lib/.libs/libtheora.a \ lib/.libs/libtheoradec.a \ lib/.libs/libtheoraenc.a ], - [ . ]) + [ include ]) PKG_3RD([libuuid],[yes], [libuuid-1.0.3], @@ -311,12 +344,19 @@ PKG_3RD([libuuid],[yes], [ . ]) PKG_3RD([libvorbis],[auto], - [libvorbis-1.3.5], + [libvorbis-1.3.7], [ lib/.libs/libvorbis.a \ lib/.libs/libvorbisenc.a \ lib/.libs/libvorbisfile.a ], [ include . ]) +## arch dep tests +ARCH=[`uname -m`] +I86=[`expr "x$ARCH" : 'xi[346]86.*'`] +X86=[`expr "x$ARCH" : 'x..._64*'`] + +if test "x$I86$X86" != "x00" ; then + PKG_3RD([mjpegtools],[yes], [mjpegtools-2.1.0], [ utils/mmxsse/.libs/libmmxsse.a \ @@ -328,11 +368,33 @@ PKG_3RD([mjpegtools],[yes], mpeg2enc/.libs/libmpeg2encpp.a ], [ . lavtools utils ]) +else + +PKG_3RD([mjpegtools],[yes], + [mjpegtools-2.1.0], + [ utils/.libs/libmjpegutils.a \ + lavtools/.libs/liblavfile.a \ + lavtools/.libs/liblavjpeg.a \ + mplex/.libs/libmplex2.a \ + yuvfilters/.libs/libyuvfilters.a \ + mpeg2enc/.libs/libmpeg2encpp.a ], + [ . lavtools utils ]) + +fi + PKG_3RD([openexr],[auto], - [openexr-2.2.1], - [ IlmImf/.libs/libIlmImf.a \ - IlmImfUtil/.libs/libIlmImfUtil.a ], - [ IlmImf config ]) + [openexr-2.4.1], + [ usr/local/lib/libHalf.a \ + usr/local/lib/libIex.a \ + usr/local/lib/libIexMath.a \ + usr/local/lib/libIlmThread.a \ + usr/local/lib/libImath.a \ + usr/local/lib/libIlmImf.a \ + usr/local/lib/libIlmImfUtil.a ], + [ usr/local/include/OpenEXR ]) + +PKG_3RD([openExr],[auto], [openExr], [] []) +PKG_3RD([ilmBase],[auto], [ilmBase], [] []) #PKG_3RD([festival],[no], # [festival], @@ -344,67 +406,108 @@ PKG_3RD([openexr],[auto], # []) # PKG_3RD([tiff],[auto], - [tiff-4.0.9], + [tiff-4.6.0], [ libtiff/.libs/libtiff.a \ libtiff/.libs/libtiffxx.a \ port/.libs/libport.a ],[ . ]) PKG_3RD([twolame],[auto], - [twolame-0.3.13], + [twolame-0.4.0], [ libtwolame/.libs/libtwolame.a ], [ libtwolame ]) PKG_3RD([x264],[auto], - [x264-snapshot-20180118-2245], + [x264-stable], [ libx264.a ], [ . ]) PKG_3RD([x265],[auto], - [x265_2.8], + [x265_3.517122023], [ libx265.a ], [ . source ]) PKG_3RD([libvpx],[auto], - [libvpx-1.7.0], + [libvpx-1.13.1], [ libvpx.a ], [ . ]) PKG_3RD([lv2],[auto], - [lv2-1.14.0], + [lv2-1.18.0], [ ], [ usr/local/include usr/local/lib64/lv2 usr/local/lib/lv2 ]) PKG_3RD([sratom],[auto], - [sratom-0.6.0], + [sratom-0.6.4], [ usr/local/lib/libsratom-0.a ], [ usr/local/include ]) PKG_3RD([serd],[auto], - [serd-0.28.0], + [serd-0.30.4], [ usr/local/lib/libserd-0.a ], [ usr/local/include ]) PKG_3RD([sord],[auto], - [sord-0.16.0], + [sord-0.16.4], [ usr/local/lib/libsord-0.a ], [ usr/local/include ]) PKG_3RD([lilv],[auto], - [lilv-0.24.2], + [lilv-0.24.8], [ usr/local/lib/liblilv-0.a ], [ usr/local/include ]) PKG_3RD([suil],[auto], - [suil-0.8.4], + [suil-0.10.6], [ usr/local/lib/libsuil-0.a ], [ usr/local/include ]) +PKG_3RD([libaom],[auto], + [libaom-v3.8.0], + [ usr/local/lib*/libaom*.a ], + [ usr/local/include ]) + +PKG_3RD([libsvtav1],[no], + [libsvtav1-v1.8.0], + [ usr/local/lib*/libSvtAv1Enc.a ], + [ usr/local/include/svt-av1 ]) + +PKG_3RD([dav1d],[auto], + [dav1d-0.5.1], + [ usr/local/lib*/libdav1d*.a ], + [ usr/local/include ]) + +PKG_3RD([libwebp],[auto], + [libwebp-1.3.2], + [ usr/local/lib*/libwebp*.a \ + usr/local/lib*/libsharpyuv*.a ], + [ usr/local/include/webp \ + usr/local/include/ ]) + +PKG_3RD([ffnvcodec],[auto], + [ffnvcodec], + [ ], + [ . ]) + +PKG_3RD([libdpx],[auto], + [libdpx], + [ libdpx/libdpx.a ], + [ libdpx ]) + +if test [ "$(uname -o)"] = "Android" ; then + +PKG_3RD([libbthread],[auto], + [libbthread-master], + [ *.a ], + [ . ]) +fi + + AC_SUBST(STATIC_PKGS) AC_DEFUN([CHECK_ENABLE], [ AC_ARG_ENABLE([$1], - AC_HELP_STRING([--enable-[$1]], [$3 ([$4])]), + AS_HELP_STRING([--enable-[$1]],[$3 ([$4])]), [WANT_$2=$enableval], [WANT_$2=[$4]]) ]) @@ -425,10 +528,35 @@ AC_DEFUN([REQUIRE_PROG], [ fi ]) -# Checks for programs. +## arch dep tests +ARCH=[`uname -m`] +I86=[`expr "x$ARCH" : 'xi[346]86.*'`] +X86=[`expr "x$ARCH" : 'x..._64*'`] + +if test "x$I86$X86" != "x00" ; then + # Checks for ix86 programs. + REQUIRE_PROG(NASM, [nasm]) + # libx264 nasm fix + AC_MSG_CHECKING([nasm x264 compatible]) + echo "vmovdqa32 [[eax]]{k1}{z}, zmm0" > conftest.asm + nasm conftest.asm -o conftest.o > /dev/null 2>&1 + if test $? != 0 ; then + AC_MSG_RESULT([no]) + AC_MSG_WARN([libx264 built without assembly code]) + X264_CFG_PARAMS="$X264_CFG_PARAMS --disable-asm" + else + AC_MSG_RESULT([yes]) + fi + rm -f conftest.asm conftest.o + REQUIRE_PROG(YASM, [yasm]) +fi + +if test "x$I86$X86" == "x00"; then + CFG_CFLAGS+=" -DNO_CTX -DNO_GDB -DNO_BTRACE" +fi + +## end arch dep tests -REQUIRE_PROG(NASM, [nasm]) -REQUIRE_PROG(YASM, [yasm]) REQUIRE_PROG(OBJCOPY, [objcopy]) if test "x$FATAL_ERROR" != "x"; then AC_MSG_ERROR("fatal eror.") @@ -436,19 +564,6 @@ fi CHECK_PROG(PACTL, [pactl]) WANT_PACTL=$PROG_PACTL -# libx264 nasm fix -AC_MSG_CHECKING([nasm x264 compatible]) -echo "vmovdqa32 [[eax]]{k1}{z}, zmm0" > conftest.asm -nasm conftest.asm -o conftest.o > /dev/null 2>&1 -if test $? != 0 ; then - AC_MSG_RESULT([no]) - AC_MSG_WARN([libx264 built without assembly code]) - X264_CFG_PARAMS="$X264_CFG_PARAMS --disable-asm" -else - AC_MSG_RESULT([yes]) -fi -rm -f conftest.asm conftest.o - AC_CHECK_DECL([X_HAVE_UTF8_STRING],,[no_utf=yes],[#include ]) if test "$no_utf" = "yes"; then AC_MSG_ERROR([Cinelerra requires utf8 support in X Windows.]) @@ -472,22 +587,28 @@ fi AC_DEFUN([CHECK_LIB], [ if test "x$HAVE_$1" != "xno"; then - if test "x$PKG_$1" = "x" -o "x$WANT_STATIC_BUILD" = "xno"; then + if test "x$PKG_$1" = "x" -o "x$WANT_STATIC_BUILD" = "xno" -a "x$PKG_$1" != "xno"; then AC_CHECK_LIB([$2], [$3], [HAVE_$1=yes], [HAVE_$1=no], [$4]) AC_SUBST([HAVE_$1]) - if test "x$HAVE_$1" = "xyes"; then - if test "x$PKG_$1" = "x"; then - SYSTEM_LIBS+=" -l[$2]" - for lib in [$4]; do SYSTEM_LIBS+=" $lib"; done - else - SHARED_$1+=" -l[$2]" - for lib in [$4]; do SHARED_LIBS+=" $lib"; done + if test "x$WANT_$1" != "xno"; then + if test "x$HAVE_$1" = "xyes"; then + if test "x$PKG_$1" = "x"; then + SYSTEM_LIBS+=" -l[$2]" + for lib in [$4]; do SYSTEM_LIBS+=" $lib"; done + else + SHARED_$1+=" -l[$2]" + for lib in [$4]; do SHARED_LIBS+=" $lib"; done + fi + elif test "x$PKG_$1" = "x"; then + RESULT=no fi - elif test "x$PKG_$1" = "x"; then RESULT=no; fi + fi fi fi ]) +IMMATH_HEADERS=$(pkg-config --cflags Imath 2>/dev/null) + CHECK_LIB([X11], [X11], [XOpenDisplay]) CHECK_HEADERS([X11], [X11 headers], [X11/X.h X11/Xlib.h X11/Xutil.h X11/cursorfont.h]) CHECK_HEADERS([X11], [X11 headers], [X11/keysym.h X11/Sunkeysym.h X11/Xatom.h X11/XF86keysym.h]) @@ -495,9 +616,16 @@ CHECK_LIB([XEXT], [Xext], [XShmQueryExtension]) CHECK_HEADERS([XEXT], [Xlib XShm extention], [X11/Xlib.h X11/extensions/XShm.h X11/extensions/shape.h]) CHECK_LIB([XINERAMA], [Xinerama], [XineramaQueryExtension]) CHECK_HEADERS([XINERAMA], [Xinerama headers], [X11/extensions/Xinerama.h]) -CHECK_LIB([XV], [Xv], [XvQueryExtension]) -CHECK_HEADERS([XV], [Xlib Xv extention], [X11/Xlib.h X11/extensions/Xvlib.h]) + +if test "x$HAVE_XINERAMA" != "xyes"; then + AC_MSG_ERROR([requires Xinerama support.]) +fi + CHECK_LIB([XFIXES], [Xfixes], [XFixesQueryVersion]) +if test "x$HAVE_XFIXES" != "xyes"; then + AC_MSG_ERROR([requires XFixes support.]) +fi + CHECK_LIB([BZ2], [bz2], [BZ2_bzDecompress]) CHECK_LIB([FONTCONFIG], [fontconfig], [FcInit]) CHECK_LIB([FREETYPE], [freetype], [FT_Init_FreeType]) @@ -517,20 +645,13 @@ CHECK_LIB([lame], [mp3lame], [lame_init]) CHECK_HEADERS([lame], [lame headers], [lame/lame.h]) CHECK_LIB([libjpeg], [jpeg], [jpeg_start_decompress]) CHECK_HEADERS([libjpeg], [jpeg headers], [stdio.h jpeglib.h]) -CHECK_LIB([libogg], [ogg], [ogg_stream_init]) -CHECK_HEADERS([libogg], [ogg headers], [ogg/ogg.h]) CHECK_LIB([openjpeg], [openjp2], [opj_version]) CHECK_HEADERS([openjpeg], [openjpeg headers], [openjpeg.h]) CHECK_LIB([libsndfile], [sndfile], [sf_open]) CHECK_HEADERS([libsndfile], [sndfile headers], [sndfile.h]) CHECK_LIB([ilmbase], [IlmImf], [ImfOpenInputFile]) CHECK_HEADERS([ilmbase], [IlmImf headers], [OpenEXR/ImfCRgbaFile.h]) -CHECK_LIB([libtheora], [theora], [theora_info_init], [-ltheoraenc -ltheoradec -logg]) -CHECK_HEADERS([libtheora], [threora headers], [theora/theoraenc.h]) -CHECK_LIB([libvorbis], [vorbisenc], [vorbis_encode_init], [-lvorbis -lvorbisfile -logg]) -CHECK_HEADERS([libvorbis], [vorbis encoders headers], [vorbis/vorbisenc.h]) -CHECK_LIB([libvorbis], [vorbisfile], [ov_open]) -CHECK_HEADERS([libvorbis], [vorbis file headers], [vorbis/vorbisfile.h]) +CHECK_LIB([Imath], [Imath], [ImfOpenInputFile]) CHECK_LIB([libvpx], [vpx], [vpx_codec_decode]) CHECK_HEADERS([libvpx], [vpx headers], [vpx/vpx_decoder.h]) CHECK_LIB([mjpegtools], [mjpegutils], [mjpeg_info]) @@ -543,14 +664,39 @@ CHECK_LIB([x264], [x264], [x264_encoder_encode]) CHECK_HEADERS([x264], [x264 headers], [stdint.h x264.h]) CHECK_LIB([x265], [x265], [x265_encoder_encode]) CHECK_HEADERS([x265], [x265 headers], [x265.h]) +CHECK_LIB([opus], [opus], [opus_multistream_decoder_create]) +CHECK_HEADERS([opus], [libopus headers], [opus/opus_multistream.h]) +CHECK_LIB([libaom], [aom], [aom_codec_version]) +CHECK_HEADERS([libaom], [libaom headers], [aom/aom.h]) +CHECK_LIB([dav1d], [dav1d], [dav1d_version]) +CHECK_HEADERS([dav1d], [libdav1d headers], [dav1d/dav1d.h]) +CHECK_LIB([libwebp], [webp], [WebPGetEncoderVersion]) +CHECK_HEADERS([libwebp], [libwebp headers], [webp/encode.h]) CHECK_LIB([a52dec], [a52], [a52_init]) -CHECK_HEADERS([a52dec], [a52 headers], [a52.h]) +CHECK_HEADERS([a52dec], [a52 headers], [stdint.h a52dec/a52.h]) CHECK_LIB([encore], [encore], [encore]) CHECK_HEADERS([encore], [encore headers], [encore.h]) CHECK_LIB([giflib], [gif], [DGifOpen]) CHECK_HEADERS([giflib], [gif lib headers], [gif_lib.h]) CHECK_LIB([jbig], [jbig], [jbg_dec_init]) -CHECK_LIB([vdpau], [vdpau], [vdp_device_create_x11]) + +CHECK_LIB([VDPAU], [vdpau], [vdp_device_create_x11]) +if test "x$HAVE_VDPAU" != "xyes" -a "x$WANT_VDPAU" = "xyes"; then + AC_MSG_ERROR([requires vdpau support.]) +fi + +CHECK_LIB([VAAPI], [va], [vaInitialize]) +if test "x$HAVE_VAAPI" = "xyes" -a "x$WANT_VAAPI" != "xno"; then + CHECK_HEADERS([vaapi_x11], [va x11 headers], [va/va_x11.h]) + CHECK_LIB([vaapi_x11], [va-x11], [vaGetDisplay]) + CHECK_HEADERS([vaapi_drm], [va drm headers], [va/va_drm.h]) + CHECK_LIB([vaapi_drm], [va-drm], [vaGetDisplayDRM]) +fi +if test "x$HAVE_VAAPI" != "xyes" -a "x$WANT_VAAPI" = "xyes"; then + AC_MSG_ERROR([requires vaapi support.]) +fi + +#CHECK_LIB([NVENC], [nvidia-encode], [NvEncodeAPICreateInstance]) #if test "x$HAVE_mjpegtools" = "xyes"; then #CFG_CFLAGS+=" -I/usr/include/mjpegtools -I/usr/local/include/mjpegtools" @@ -559,18 +705,17 @@ CHECK_LIB([vdpau], [vdpau], [vdp_device_create_x11]) AC_DEFUN([CHECK_WANT], [ RESULT=yes # WANT_$1 -if test "x$WANT_$1" != "xyes" -a "x$WANT_$1" != "xno" ; then AC_ARG_WITH(m4_tolower([$1]), - AC_HELP_STRING([m4_join([-],[--with],m4_tolower([$1]))], [$3] (auto)), + AS_HELP_STRING([m4_join([-],[--with],m4_tolower([$1]))],[$3 (auto)]), [WANT_$1=$withval],[WANT_$1=$2]) m4_quote($4) - if test "x$RESULT" = "xno" -a "x$PKG_$1" = "x"; then - echo "=== want $1 Failed." - WANT_$1=no - elif test "x$WANT_$1" = "xauto" ; then - WANT_$1=yes + if test "x$WANT_$1" = "xauto" ; then + WANT_$1="$RESULT" + elif test "x$WANT_$1" = "xyes" ; then + if test "x$RESULT" = "xno" -a "x$PKG_$1" = "x"; then + AC_MSG_ERROR([required for $1 support.]) + fi fi -fi CFG_WANTS+=" $1" AC_SUBST([WANT_$1]) ]) @@ -580,6 +725,10 @@ CHECK_WANT([GL], [auto], [use opengl], [ CHECK_LIB([GL], [GLU], [gluOrtho2D]) CHECK_HEADERS([GL], [opengl headers], [GL/gl.h GL/glext.h GL/glu.h GL/glx.h])]) +CHECK_WANT([XV], [auto], [use xv], [ + CHECK_LIB([xv], [Xv], [XvQueryExtension]) + CHECK_HEADERS([xv], [Xlib Xv extention], [X11/Xlib.h X11/extensions/Xvlib.h])]) + CHECK_WANT([OSS], [auto], [use OSS audio], [ CHECK_HEADERS([OSS], [oss headers], [sys/soundcard.h])]) @@ -591,6 +740,16 @@ CHECK_WANT([ALSA], [auto], [use libasound/alsa], [ CHECK_LIB([ALSA], [asound], [snd_pcm_open]) CHECK_HEADERS([ALSA], [asound headers], [alsa/asoundlib.h])]) +CHECK_WANT([OGG], [auto], [use ogg/theora/vorbis], [ + CHECK_LIB([libogg], [ogg], [ogg_stream_init]) + CHECK_HEADERS([libogg], [ogg headers], [ogg/ogg.h]) + CHECK_LIB([libtheora], [theora], [theora_info_init], [-ltheoraenc -ltheoradec -logg]) + CHECK_HEADERS([libtheora], [threora headers], [theora/theoraenc.h]) + CHECK_LIB([libvorbis], [vorbisenc], [vorbis_encode_init], [-lvorbis -lvorbisfile -logg]) + CHECK_HEADERS([libvorbis], [vorbis encoders headers], [vorbis/vorbisenc.h]) + CHECK_LIB([libvorbis], [vorbisfile], [ov_open]) + CHECK_HEADERS([libvorbis], [vorbis file headers], [vorbis/vorbisfile.h])]) + CHECK_WANT([FIREWIRE], [auto], [use firewire], [ CHECK_LIB([libavc1394], [avc1394], [avc1394_init_target]) CHECK_HEADERS([libavc1394], [libavc1394 headers], [libavc1394/avc1394.h]) @@ -600,6 +759,15 @@ CHECK_WANT([FIREWIRE], [auto], [use firewire], [ CHECK_HEADERS([libiec61883], [libiec61883 headers], [libiec61883/iec61883.h]) CHECK_LIB([libraw1394], [raw1394], [raw1394_iso_recv_init]) CHECK_HEADERS([libraw1394], [libraw1394 headers], [libraw1394/raw1394.h])]) +# have all or none +test "x$HAVE_libavc1394" = "xyes" && \ +test "x$HAVE_libiec61883" = "xyes" && \ +test "x$HAVE_libraw1394" = "xyes" && \ + HAVE_FIREWIRE=yes || \ +HAVE_libavc1394=no \ +HAVE_libiec61883=no \ +HAVE_libraw1394=no \ + HAVE_FIREWIRE=no CHECK_WANT([DV], [auto], [use dv], [ CHECK_LIB([libdv], [dv], [dv_init]) @@ -619,29 +787,83 @@ CHECK_WANT([ESOUND], [no], [use esd], [ CHECK_HEADERS([esound], [esound headers], [esd.h]) CHECK_LIB([audiofile], [audiofile], [afOpenFile]) CHECK_HEADERS([audiofile], [audiofile headers], [audiofile.h])]) +# have all or none +test "x$HAVE_esound" = "xyes" && \ +test "x$HAVE_audiofile" = "xyes" && \ + HAVE_ESOUND=yes || \ +HAVE_esound=no \ +HAVE_audiofile=no \ + HAVE_ESOUND=no + +CHECK_WANT([PULSE], [auto], [use pulseaudio], [ + CHECK_LIB([pulse_simple], [pulse-simple], [pa_simple_new]) + CHECK_HEADERS([pulse_simple], [pulse-simple headers], [pulse/simple.h]) + CHECK_LIB([pulse], [pulse], [pa_context_new]) + CHECK_HEADERS([pulse], [pulse headers], [pulse/error.h])]) + +CHECK_WANT([ISOFS], [auto], [use isofs], [ + CHECK_HEADERS([isofs], [isofs headers], [linux/isofs.h])]) + +if test "x$WANT_LADSPA_BUILD" != "xyes" ; then + CHECK_WANT([LADSPA], [auto], [ladspa plugin clients], [ + CHECK_HEADERS([ladspa], [ladspa headers], [ladspa.h])]) +else + WANT_LADSPA=yes +fi -CHECK_WANT([OPUS], [auto], [use libopus], [ - CHECK_LIB([opus], [opus], [opus_multistream_decoder_create]) - CHECK_HEADERS([opus], [libopus headers], [opus/opus_multistream.h])]) +CHECK_WANT([SHUTTLE], [yes], [shuttle dev support], [ + CHECK_HEADERS([keysyms], [x11 keysym defs], [X11/keysymdef.h])]) +if test "x$WANT_SHUTTLE" = "xno"; then + WANT_SHUTTLE_USB="no" +fi +CHECK_WANT([SHUTTLE_USB], [yes], [use libusb-1.0], [ + CHECK_LIB([libusbx], [usb-1.0], [libusb_init]) + CHECK_HEADERS([libusbx], [libusb headers], [libusb-1.0/libusb.h])]) CHECK_WANT([LV2], [auto], [use lv2], [ + AC_MSG_CHECKING([for lv2 availability]) + saved_LIBS="$LIBS" saved_CFLAGS="$CFLAGS" + LIBS=" $(pkg-config --libs lilv-0 2>/dev/null)" CHECK_LIB([lilv], [lilv-0], [lilv_world_new]) CHECK_LIB([sord], [sord-0], [sord_world_new]) CHECK_LIB([serd], [serd-0], [serd_reader_new]) CHECK_LIB([sratom], [sratom-0], [sratom_new]) - CFLAGS="-I/usr/include/lilv-0 -I/usr/local/include/lilv-0" - CHECK_HEADERS([lv2], [lilv headers], [lilv/lilv.h]) + CFLAGS="-I/usr/include/lilv-0 -I/usr/local/include/lilv-0 `pkg-config --cflags lilv-0 2>/dev/null`" + CHECK_HEADERS([lilv], [lilv headers], [lilv/lilv.h]) + CFLAGS="-I/usr/include/serd-0 -I/usr/local/include/serd-0 `pkg-config --cflags serd-0 2>/dev/null`" + CHECK_HEADERS([serd], [serd headers], [serd/serd.h]) + CFLAGS="-I/usr/include/sord-0 -I/usr/local/include/sord-0 `pkg-config --cflags sord-0 2>/dev/null`" + CHECK_HEADERS([sord], [sord headers], [sord/sord.h]) + CFLAGS="-I/usr/include/sratom-0 -I/usr/local/include/sratom-0 `pkg-config --cflags sratom-0 2>/dev/null`" + CHECK_HEADERS([sratom], [sratom headers], [sratom/sratom.h]) CHECK_LIB([suil], [suil-0], [suil_instance_new]) - CFLAGS="-I/usr/include/suil-0 -I/usr/local/include/suil-0" - CHECK_HEADERS([lv2], [suil headers], [suil/suil.h]) + CFLAGS="-I/usr/include/suil-0 -I/usr/local/include/suil-0 `pkg-config --cflags suil-0 2>/dev/null`" + CHECK_HEADERS([suil], [suil headers], [suil/suil.h]) + CFG_CFLAGS+=" $(pkg-config --cflags lilv-0 2>/dev/null) $(pkg-config --cflags suil-0 2>/dev/null)" + LIBS="$saved_LIBS" CFLAGS="$saved_CFLAGS"]) +# have all or none +test "x$HAVE_lilv" = "xyes" && \ +test "x$HAVE_sord" = "xyes" && \ +test "x$HAVE_serd" = "xyes" && \ +test "x$HAVE_sratom" = "xyes" && \ +test "x$HAVE_suil" = "xyes" && \ + HAVE_LV2=yes || \ +HAVE_lv2=no \ +HAVE_lilv=no \ +HAVE_sord=no \ +HAVE_serd=no \ +HAVE_sratom=no \ +HAVE_suil=no \ + HAVE_LV2=no + +CHECK_WANT([CUDA], [auto], [build cuda plugins], [ + CHECK_HEADERS([CUDA], [cuda sdk], [${CUDA_PATH:-/usr/local/cuda}/include/cuda.h])]) CHECK_WANT([DL], [auto], [system has libdl], [ CHECK_LIB([DL], [dl], [dlopen])]) -CHECK_WANT([EXR], [auto], [use exr], []) - CHECK_WANT([OPENCV], [no], [opencv=sys/sta/dyn,git/tar=url], [ ]) @@ -653,8 +875,13 @@ CHECK_WANT([OPENEXR], [auto], [use openexr], [ saved_LIBS="$LIBS" saved_CXXFLAGS="$CXXFLAGS" # ilmbase libs + if test "xHAVE_Imath"="xyes"; then + LIBS=" -lImath -lIlmThread -lIex -lpthread" + else LIBS=" -lIlmImf -lIlmThread -lIex -lpthread" + fi CXXFLAGS="-I/usr/include/OpenEXR -I/usr/local/include/OpenEXR" + CXXFLAGS+=" $(pkg-config --cflags OpenEXR)" AC_LANG_PUSH(C++) AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include "ImfChannelList.h" @@ -672,36 +899,64 @@ EXRIStream() : Imf::IStream("mypath") {} }; class EXROStream : public Imf::OStream { public: EXROStream() : Imf::OStream("mypath") {} }; ]])], [HAVE_OPENEXR=yes], [HAVE_OPENEXR=no]) - RESULT="$HAVE_OPENEXR" - if test "x$RESULT" = "xyes"; then - SHARED_openexr="$LIBS" - CFG_CFLAGS+=" -I/usr/include/OpenEXR -I/usr/local/include/OpenEXR" + if test "x$WANT_OPENEXR" = "xauto"; then + WANT_OPENEXR="yes" + fi + if test "x$WANT_OPENEXR" = "xyes" -a "x$HAVE_OPENEXR" = "xyes"; then + if test "x$WANT_STATIC_BUILD" = "xno"; then + SHARED_openexr="$LIBS" + SHARED_LIBS+=" $LIBS" + CFG_CFLAGS+=" -I/usr/local/include/Imath -I/usr/include/OpenEXR -I/usr/local/include/OpenEXR" + CFG_CFLAGS+=" $(pkg-config --cflags OpenEXR)" + CFG_CFLAGS+=" $(pkg-config --cflags Imath)" + fi + CFG_CFLAGS+=" $(pkg-config --cflags OpenEXR)" fi LIBS="$saved_LIBS" CXXFLAGS="$saved_CXXFLAGS" AC_LANG_POP(C++) AC_MSG_RESULT([$HAVE_OPENEXR]) ]) + +if test "x$WANT_CIN_3RDPARTY" = "xno"; then + if test "x$HAVE_OPENEXR" != "xyes" -a "x$WANT_OPENEXR" = "xyes"; then + AC_MSG_ERROR([requires OpenEXR but OpenEXR not found.]) + fi +fi + AC_SUBST([HAVE_OPENEXR]) +# have all or none +test "x$HAVE_openexr" = "xyes" && \ +test "x$HAVE_ilmbase" = "xyes" && \ + HAVE_OPENEXR=yes || \ +HAVE_openexr=no \ +HAVE_ilmbase=no \ + HAVE_OPENEXR=no + +if test "x$WANT_CIN_3RDPARTY" = "xno"; then + if test "x$HAVE_LV2" != "xyes" -a "x$WANT_LV2" = "xyes"; then + AC_MSG_ERROR([lv2 requested but no lv2 headers found]) + fi +fi # build global_config OBJDIR=`uname -m` AC_SUBST(OBJDIR) -echo "AC_HELP_STRING([Reason],[Package])" -echo "AC_HELP_STRING([------],[-------])" +echo "AS_HELP_STRING([Reason],[Package])" +echo "AS_HELP_STRING([------],[-------])" AC_DEFUN([PKG_DISABLED],[ PKG_$1="no" BUILD_$1=0 AC_SUBST(BUILD_$1) - echo "AC_HELP_STRING([disabled],[$1])" + echo "AS_HELP_STRING([disabled],[$1])" ]) AC_DEFUN([PKG_SHARED],[ + PKG_$1="shared" BUILD_$1=0 AC_SUBST(BUILD_$1) SHARED_LIBS+="$SHARED_$1" - echo "AC_HELP_STRING([shared],[$1])" ]) AC_DEFUN([PKG_STATIC],[ @@ -710,7 +965,7 @@ AC_DEFUN([PKG_STATIC],[ BUILD_$1=1 AC_SUBST(BUILD_$1) STATIC_BLDS+=" [$1]" - echo "AC_HELP_STRING([$2],[$1])" + echo "AS_HELP_STRING([$2],[$1])" fi ]) @@ -725,7 +980,7 @@ for dep in \ openexr/ilmbase ilmbase/libogg \ libtheora/libogg libtheora/libvorbis ; do lib=`dirname $dep`; needs=`basename $dep` - eval pkg_lib="\$PKG_$lib"; eval needs_lib="\$HAVE_$needs"; + eval pkg_lib="\$PKG_$lib" if test "x$pkg_lib" != "xno"; then eval "PKG_$needs=yes" fi @@ -735,7 +990,11 @@ fi AC_DEFUN([PKG_PROVIDE],[ if test "x$BUILD_$1" = "x" ; then if test "x$PKG_$1" = "xyes"; then - PKG_FORCED([$1]) + if test "x$WANT_CIN_3RDPARTY" = "xno"; then + PKG_SHARED([$1]) + else + PKG_FORCED([$1]) + fi elif test "x$2" = "xno" -o "x$PKG_$1" = "xno"; then PKG_DISABLED([$1]) elif test "x$WANT_STATIC_BUILD" = "xyes"; then @@ -748,6 +1007,7 @@ if test "x$BUILD_$1" = "x" ; then fi ]) +PKG_PROVIDE([libbthread]) PKG_PROVIDE([a52dec]) PKG_PROVIDE([djbfft]) PKG_PROVIDE([encore]) @@ -756,8 +1016,8 @@ PKG_PROVIDE([esound],[$WANT_ESOUND]) PKG_PROVIDE([ffmpeg]) PKG_PROVIDE([fftw]) PKG_PROVIDE([flac]) -PKG_PROVIDE([giflib]) -PKG_PROVIDE([ilmbase], [$WANT_OPENEXR]) +PKG_PROVIDE([giflib], [$WANT_GIFLIB]) +PKG_PROVIDE([ilmBase], [$WANT_OPENEXR]) PKG_PROVIDE([ladspa],[$WANT_LADSPA_BUILD]) PKG_PROVIDE([lame]) PKG_PROVIDE([libavc1394],[$WANT_FIREWIRE]) @@ -771,6 +1031,11 @@ PKG_PROVIDE([libtheora]) PKG_PROVIDE([libuuid]) PKG_PROVIDE([libvorbis]) PKG_PROVIDE([mjpegtools]) +PKG_PROVIDE([libaom]) +PKG_PROVIDE([libsvtav1]) +PKG_PROVIDE([dav1d]) +PKG_PROVIDE([libwebp]) +PKG_PROVIDE([openExr], [$WANT_OPENEXR]) PKG_PROVIDE([openexr], [$WANT_OPENEXR]) PKG_PROVIDE([openjpeg]) PKG_PROVIDE([tiff]) @@ -778,13 +1043,15 @@ PKG_PROVIDE([twolame]) PKG_PROVIDE([x264]) PKG_PROVIDE([x265]) PKG_PROVIDE([libvpx]) -PKG_PROVIDE([opus], [$WANT_OPUS]) +PKG_PROVIDE([opus]) PKG_PROVIDE([lv2], [$WANT_LV2]) PKG_PROVIDE([lilv], [$WANT_LV2]) PKG_PROVIDE([sratom], [$WANT_LV2]) PKG_PROVIDE([serd], [$WANT_LV2]) PKG_PROVIDE([sord], [$WANT_LV2]) PKG_PROVIDE([suil], [$WANT_LV2]) +PKG_PROVIDE([ffnvcodec], [$WANT_NV]) +PKG_PROVIDE([libdpx]) if test "x$WANT_LV2" = "xyes"; then if test "x$HAVE_lv2" = "xyes" -a "x$BUILD_lilv" = "x0"; then @@ -794,10 +1061,12 @@ if test "x$WANT_LV2" = "xyes"; then fi AC_SUBST(STATIC_BLDS) +for f in $SHARED_LIBS; do + echo "AS_HELP_STRING([shared],[$f])" +done AC_SUBST(SHARED_LIBS) - for f in $SYSTEM_LIBS; do - echo "AC_HELP_STRING([system],[$f])" + echo "AS_HELP_STRING([system],[$f])" done AC_SUBST(SYSTEM_LIBS) @@ -805,9 +1074,10 @@ echo "" if test "x$WANT_CIN_3RDPARTY" != "xno"; then CFG_CFLAGS+=" -DHAVE_CIN_3RDPARTY" fi -for v in GL XFT XXF86VM OSS ALSA FIREWIRE DV DVB \ - VIDEO4LINUX2 ESOUND PACTL OPENEXR LV2 \ - COMMERCIAL LIBZMPEG; do +for v in GL XFT XXF86VM OSS ALSA FIREWIRE OGG DV DVB LADSPA \ + VIDEO4LINUX2 ESOUND PULSE PACTL OPENEXR LV2 \ + COMMERCIAL GIFLIB LIBZMPEG LIBDPX SHUTTLE SHUTTLE_USB XV \ + VAAPI VDPAU CUDA NV WINTV X10TV; do eval vv="\$WANT_$v" if test "x$vv" != "xno"; then CFG_CFLAGS+=" -DHAVE_$v" @@ -819,28 +1089,11 @@ for v in GL XFT XXF86VM OSS ALSA FIREWIRE DV DVB \ echo " using: $vv-$v" done -echo " using: with-jobs = $WANT_JOBS" -echo " using: exec-name = $WANT_CIN" -echo " using: with-cinlib = $WANT_CINLIB_DIR" -echo " using: with-cindat = $WANT_CINDAT_DIR" -echo " using: with-config-dir = $WANT_CONFIG_DIR" -echo " using: with-browser = $WANT_CIN_BROWSER" -echo " using: with-plugin-dir = $WANT_PLUGIN_DIR" -echo " using: with-ladspa-dir = $WANT_LADSPA_DIR" -echo " using: with-opencv = $WANT_OPENCV" -echo " using: with-git-ffmpeg = $WANT_GIT_FFMPEG" -echo " using: with-noelision = $WANT_NOELISION" -echo " using: with-booby = $WANT_BOOBY" -echo " using: with-libzmpeg = $WANT_LIBZMPEG" -echo " using: with-commerical = $WANT_COMMERCIAL" -echo "" -echo " using: thirdparty build = $WANT_CIN_3RDPARTY" -echo " using: single-user = $WANT_CINBIN_BUILD" -echo " using: static-build = $WANT_STATIC_BUILD" -echo " using: ladspa-build = $WANT_LADSPA_BUILD" -echo "" - # build extras +if test "x$WANT_CLANG" = "xyes" ; then + FFMPEG_EXTRA_CFG+=' --cc=clang --cxx=clang++' + CFG_CFLAGS+=" -Wno-unknown-warning-option" +fi if test "x$HAVE_tiff" = "xyes"; then if test "x$HAVE_jbig" = "xyes"; then EXTRA_LIBS+=' -ljbig' @@ -849,21 +1102,50 @@ fi if test "x$HAVE_NUMA" = "xyes"; then EXTRA_LIBS+=' -lnuma' fi + +FFMPEG_EXTRA_LDFLAGS="" +if test "x$WANT_VAAPI" != "xno" -a "x$HAVE_VAAPI" = "xyes"; then + FFMPEG_EXTRA_LDFLAGS+=' -lva `pkg-config --libs libva`' + EXTRA_LIBS+=' -lva ' + WANT_VAAPI="yes" + if test "x$HAVE_vaapi_x11" = "xyes"; then + FFMPEG_EXTRA_LDFLAGS+=' -lva-x11' + EXTRA_LIBS+=' -lva-x11 `pkg-config --libs x11`' + fi + if test "x$HAVE_vaapi_drm" = "xyes"; then + FFMPEG_EXTRA_LDFLAGS+=' -lva-drm' + EXTRA_LIBS+=' -lva-drm' + fi +fi +CFG_WANTS+=" VAAPI" + +if test "x$WANT_VDPAU" != "xno" -a "x$HAVE_VDPAU" = "xyes"; then + WANT_VDPAU="yes" +fi +CFG_WANTS+=" VDPAU" + +if test "x$WANT_NV" != "xno"; then + WANT_NV="yes" + CFG_WANTS+=" NV" +fi + if test "x$HAVE_DL" = "xyes"; then EXTRA_LIBS+=' -ldl' - FFMPEG_EXTRA_CFG+=' --extra-ldflags="-ldl"' + FFMPEG_EXTRA_LDFLAGS+=' -ldl' fi -if test "x$WANT_OPUS" = "xyes"; then - FFMPEG_EXTRA_CFG+=' --enable-libopus' - if test "x$HAVE_opus" = "xyes" -a "x$BUILD_opus" = "x0"; then - EXTRA_LIBS+=' -lopus' - CFG_CFLAGS+=' -I/usr/include/opus -I/usr/local/include/opus' - fi +if test "x$FFMPEG_EXTRA_LDFLAGS" != "x"; then + FFMPEG_EXTRA_CFG+=' --extra-ldflags="'$FFMPEG_EXTRA_LDFLAGS'"' fi + if test "x$WANT_BOOBY" != "xno"; then CFG_CFLAGS+=" -DBOOBY" fi +if test [ "$(uname -o)"] = "Android" ; then +# termux +EXTRA_LIBS+=' -liconv -landroid-shmem' +fi + # intel lock elision bugs if test "x$WANT_NOELISION" != "xno"; then CFG_RPATH=`ls -1fd 2> /dev/null \ @@ -874,6 +1156,28 @@ if test "x$WANT_NOELISION" != "xno"; then | tail -1` fi +echo " using: with-jobs = $WANT_JOBS" +echo " using: exec-name = $WANT_CIN" +echo " using: with-cinlib = $WANT_CINLIB_DIR" +echo " using: with-cindat = $WANT_CINDAT_DIR" +echo " using: with-config-dir = $WANT_CONFIG_DIR" +echo " using: with-nested-dir = $WANT_NESTED_DIR" +echo " using: with-snap-dir = $WANT_SNAP_DIR" +echo " using: with-browser = $WANT_CIN_BROWSER" +echo " using: with-plugin-dir = $WANT_PLUGIN_DIR" +echo " using: with-ladspa-dir = $WANT_LADSPA_DIR" +echo " using: with-opencv = $WANT_OPENCV" +echo " using: with-git-ffmpeg = $WANT_GIT_FFMPEG" +echo " using: with-noelision = $WANT_NOELISION" +echo " using: with-booby = $WANT_BOOBY" +echo " using: with-clang = $WANT_CLANG" +echo "" +echo " using: thirdparty build = $WANT_CIN_3RDPARTY" +echo " using: single-user = $WANT_CINBIN_BUILD" +echo " using: static-build = $WANT_STATIC_BUILD" +echo " using: ladspa-build = $WANT_LADSPA_BUILD" +echo "" + AC_SUBST(WANT_CIN_3RDPARTY) AC_SUBST(EXTRA_LIBS) AC_SUBST(FFMPEG_EXTRA_CFG) @@ -891,6 +1195,11 @@ exec > global_config echo "SHELL := /bin/bash" echo "export SHELL" echo "WANT_JOBS := $WANT_JOBS" +if test "x$WANT_CLANG" = "xyes" ; then + echo "CC = clang" + echo "CXX = clang++" + echo "export CC CXX" +fi echo "" echo "OBJDIR := $OBJDIR" echo "BINDIR := \$(TOPDIR)/bin" @@ -910,7 +1219,7 @@ echo "export THIRDPARTY EXTRA_LIBS FFMPEG_EXTRA_CFG" echo "" echo "WANT_CIN := $WANT_CIN" -CFG_WANTS+=" CIN_3RDPARTY LIBZMPEG COMMERCIAL" +CFG_WANTS+=" CIN_3RDPARTY LIBZMPEG COMMERCIAL STATIC_BUILD" for w in $CFG_WANTS; do ww=WANT_$w; echo "WANT_$w := ${!ww}"; done echo "" @@ -937,6 +1246,8 @@ echo "CFLAGS += '-DCIN=\"\$(WANT_CIN)\"'" echo "CFLAGS += '-DCINLIB_DIR=\"$WANT_CINLIB_DIR\"'" echo "CFLAGS += '-DCINDAT_DIR=\"$WANT_CINDAT_DIR\"'" echo "CFLAGS += '-DCONFIG_DIR=\"$WANT_CONFIG_DIR\"'" +echo "CFLAGS += '-DNESTED_DIR=\"$WANT_NESTED_DIR\"'" +echo "CFLAGS += '-DSNAP_DIR=\"$WANT_SNAP_DIR\"'" echo "CFLAGS += '-DPLUGIN_DIR=\"$WANT_PLUGIN_DIR\"'" echo "CFLAGS += '-DLOCALE_DIR=\"$WANT_LOCALE_DIR\"'" echo "CFLAGS += '-DLADSPA_DIR=\"$WANT_LADSPA_DIR\"'" @@ -952,6 +1263,43 @@ if test "x$CFG_LDFLAGS" != "x" ; then echo "" fi +if test "x$CYGWIN" != "x" ; then + echo 'FF_PATH ?= /usr/local' + echo 'LDFLAGS += -L$(FF_PATH)/lib' + echo 'CFLAGS += -I$(FF_PATH)/include' + echo "" + echo "CFLAGS += -DNO_BTRACE" + echo "CFLAGS += -DNO_GDB" + echo "CFLAGS += -DNO_CTX" + echo "CFLAGS += -DNO_PRCTL" + echo "CFLAGS += -DNO_TID" + echo "CFLAGS += -DNO_XSELECT" + echo "" +else + LDFLAGS+=" -z noexecstack" +fi +if test "x$BSD" != "x" ; then + echo "CFLAGS += -DNO_PRCTL" + echo "CFLAGS += -DNO_TID" + echo "CFLAGS += -DNO_GDB" +fi + +if test [ "$(uname)"] = "NetBSD" ; then +echo "CFLAGS += -DNO_BTRACE" +echo "CFLAGS += -DNO_CTX" +echo "system_libs += -L/usr/pkg/lib/ffmpeg6" +echo "system_libs += -L/usr/pkg/lib/" +echo "system_libs += -lpng16" +echo "system_libs += -lintl" +echo "system_libs += -lossaudio" +echo "CFLAGS += -I/usr/X11R7/include" +echo "CFLAGS += -I/usr/pkg/include/ffmpeg6" +echo "CFLAGS += $(pkg-config --cflags xft)" +echo "CFLAGS += -I/usr/pkg/include" +echo "CFLAGS += -I/usr/pkg/include/uuid" + +fi + if test "x$WANT_X264_HIDEPTH" = "xyes" ; then X264_CFG_PARAMS="$X264_CFG_PARAMS --bit-depth=10" fi @@ -961,8 +1309,11 @@ fi for pkg in $STATIC_PKGS; do eval pkg_lib="\$PKG_$pkg" - if test "x$pkg_lib" = "xno"; then continue; fi; - echo "static_pkgs += $pkg" + if test "x$pkg_lib" = "xyes"; then + echo "static_pkgs += $pkg" + elif test "x$pkg_lib" = "xshared"; then + echo "shared_pkgs += $pkg" + fi done echo "" @@ -991,7 +1342,7 @@ echo "" for lib in $SHARED_LIBS; do echo "shared_libs += $lib"; done echo "" for lib in $SYSTEM_LIBS; do echo "system_libs += $lib"; done -echo "export static_pkgs static_blds shared_libs system_libs" +echo "export static_pkgs shared_pkgs static_blds shared_libs system_libs" echo "" echo "thirdparty_libraries := \$(static_libs) \$(shared_libs)" @@ -1002,11 +1353,13 @@ fi echo "libraries += -Wl,--start-group" echo "libraries += \$(thirdparty_libraries)" +echo "libraries += \$(shared_libs)" echo "libraries += \$(system_libs)" echo "libraries += \$(EXTRA_LIBS)" echo "libraries += -Wl,--end-group" # -Wl,--start-group ... -Wl,--end-group does not work on ubuntu echo "libraries += \$(thirdparty_libraries)" +echo "libraries += \$(shared_libs)" echo "libraries += \$(system_libs)" echo "libraries += \$(EXTRA_LIBS)" echo "" @@ -1023,12 +1376,10 @@ fi if test "x$WANT_GIT_FFMPEG" != "xno"; then echo "ffmpeg.git := $WANT_GIT_FFMPEG" fi -if test "x$WANT_OPUS" = "xyes" -a "x$BUILD_opus" = "x0"; then - echo 'ffmpeg.cflags+=" -I/usr/include/opus -I/usr/local/include/opus"' -fi if test "x$X264_CFG_PARAMS" != "x" ; then echo "x264.cfg_params :=$X264_CFG_PARAMS --enable-static --enable-pic" fi if test "x$X265_CFG_PARAMS" != "x" ; then echo "x265.cfg_params :=$X265_CFG_PARAMS -DENABLE_SHARED=no" fi +