X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fconfigure.ac;h=996054f37991261d23604510ec99dc5dcae25f13;hp=32e0aa17e8902ab92ab68b2a4f0ace412ed9e4c9;hb=964a629cd40e9cf5ca64e7ec8c5f630830e9d11b;hpb=e51e8d64881ef494548697203c82e5be8646cd4b diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac index 32e0aa17..996054f3 100644 --- a/cinelerra-5.1/configure.ac +++ b/cinelerra-5.1/configure.ac @@ -11,7 +11,9 @@ AC_PROG_CXX 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" @@ -24,11 +26,11 @@ 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/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)]), @@ -39,20 +41,30 @@ 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([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]) if test "x$WANT_LV2" != "xno"; then GTK2_LIBS=`pkg-config --libs gtk+-2.0` @@ -130,7 +142,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 @@ -179,7 +192,7 @@ PKG_3RD([esound],[no], [ . ]) PKG_3RD([ffmpeg],[yes], - [ffmpeg-4.1], + [ffmpeg-4.4], [ libavutil/libavutil.a \ libavcodec/libavcodec.a \ libpostproc/libpostproc.a \ @@ -195,7 +208,7 @@ if test "x$WANT_GIT_FFMPEG" != "xno" ; then fi PKG_3RD([fftw],[auto], - [fftw-3.3.7], + [fftw-3.3.8], [ .libs/libfftw3.a \ libbench2/libbench2.a \ rdft/scalar/r2cb/.libs/librdft_scalar_r2cb.a \ @@ -224,19 +237,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,24 +273,23 @@ 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.0], + [ 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.4.0], [ bin/libopenjp2.a ], [ src/lib/openjp2 ]) PKG_3RD([libogg],[auto], - [libogg-1.3.2], + [libogg-1.3.4], [ src/.libs/libogg.a ], [ include ]) @@ -303,7 +306,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 +314,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 +338,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,62 +376,91 @@ PKG_3RD([openexr],[auto], # []) # PKG_3RD([tiff],[auto], - [tiff-4.0.9], + [tiff-4.1.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-snapshot-20210615-master], [ libx264.a ], [ . ]) PKG_3RD([x265],[auto], - [x265_2.8], + [x265_3.5], [ libx265.a ], [ . source ]) PKG_3RD([libvpx],[auto], - [libvpx-1.7.0], + [libvpx-1.8.2], [ 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.2.0], + [ usr/local/lib*/libaom*.a ], + [ usr/local/include ]) + +PKG_3RD([dav1d],[auto], + [dav1d-0.5.1], + [ usr/local/lib*/libdav1d*.a ], + [ usr/local/include ]) + +PKG_3RD([libwebp],[auto], + [libwebp-1.1.0], + [ usr/local/lib*/libwebp*.a ], + [ usr/local/include ]) + +PKG_3RD([ffnvcodec],[auto], + [ffnvcodec], + [ ], + [ . ]) + +if test [ "$(uname -o)"] = "Android" ; then + +PKG_3RD([libbthread],[auto], + [libbthread-master], + [ *.a ], + [ . ]) +fi + + AC_SUBST(STATIC_PKGS) AC_DEFUN([CHECK_ENABLE], [ @@ -425,10 +486,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 +522,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,18 +545,22 @@ 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 ]) @@ -495,8 +572,6 @@ 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]) CHECK_LIB([XFIXES], [Xfixes], [XFixesQueryVersion]) CHECK_LIB([BZ2], [bz2], [BZ2_bzDecompress]) CHECK_LIB([FONTCONFIG], [fontconfig], [FcInit]) @@ -517,20 +592,12 @@ 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([libvpx], [vpx], [vpx_codec_decode]) CHECK_HEADERS([libvpx], [vpx headers], [vpx/vpx_decoder.h]) CHECK_LIB([mjpegtools], [mjpegutils], [mjpeg_info]) @@ -543,14 +610,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 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 +651,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)), [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 +671,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 +686,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 +705,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,10 +733,38 @@ 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], [ saved_CFLAGS="$CFLAGS" @@ -636,12 +778,28 @@ CHECK_WANT([LV2], [auto], [use lv2], [ CFLAGS="-I/usr/include/suil-0 -I/usr/local/include/suil-0" CHECK_HEADERS([lv2], [suil headers], [suil/suil.h]) CFLAGS="$saved_CFLAGS"]) +# have all or none +test "x$HAVE_lv2" = "xyes" && \ +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], [ ]) @@ -672,10 +830,15 @@ 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/include/OpenEXR -I/usr/local/include/OpenEXR" + fi fi LIBS="$saved_LIBS" CXXFLAGS="$saved_CXXFLAGS" @@ -683,6 +846,13 @@ EXROStream() : Imf::OStream("mypath") {} }; AC_MSG_RESULT([$HAVE_OPENEXR]) ]) 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 # build global_config OBJDIR=`uname -m` @@ -698,10 +868,10 @@ AC_DEFUN([PKG_DISABLED],[ echo "AC_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],[ @@ -725,7 +895,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 +905,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 +922,7 @@ if test "x$BUILD_$1" = "x" ; then fi ]) +PKG_PROVIDE([libbthread]) PKG_PROVIDE([a52dec]) PKG_PROVIDE([djbfft]) PKG_PROVIDE([encore]) @@ -757,7 +932,7 @@ PKG_PROVIDE([ffmpeg]) PKG_PROVIDE([fftw]) PKG_PROVIDE([flac]) PKG_PROVIDE([giflib]) -PKG_PROVIDE([ilmbase], [$WANT_OPENEXR]) +PKG_PROVIDE([ilmBase], [$WANT_OPENEXR]) PKG_PROVIDE([ladspa],[$WANT_LADSPA_BUILD]) PKG_PROVIDE([lame]) PKG_PROVIDE([libavc1394],[$WANT_FIREWIRE]) @@ -771,6 +946,10 @@ PKG_PROVIDE([libtheora]) PKG_PROVIDE([libuuid]) PKG_PROVIDE([libvorbis]) PKG_PROVIDE([mjpegtools]) +PKG_PROVIDE([libaom]) +PKG_PROVIDE([dav1d]) +PKG_PROVIDE([libwebp]) +PKG_PROVIDE([openExr], [$WANT_OPENEXR]) PKG_PROVIDE([openexr], [$WANT_OPENEXR]) PKG_PROVIDE([openjpeg]) PKG_PROVIDE([tiff]) @@ -778,13 +957,14 @@ 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]) if test "x$WANT_LV2" = "xyes"; then if test "x$HAVE_lv2" = "xyes" -a "x$BUILD_lilv" = "x0"; then @@ -794,8 +974,10 @@ if test "x$WANT_LV2" = "xyes"; then fi AC_SUBST(STATIC_BLDS) +for f in $SHARED_LIBS; do + echo "AC_HELP_STRING([shared],[$f])" +done AC_SUBST(SHARED_LIBS) - for f in $SYSTEM_LIBS; do echo "AC_HELP_STRING([system],[$f])" done @@ -805,9 +987,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 LIBZMPEG 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 +1002,10 @@ 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++' +fi if test "x$HAVE_tiff" = "xyes"; then if test "x$HAVE_jbig" = "xyes"; then EXTRA_LIBS+=' -ljbig' @@ -849,21 +1014,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' + EXTRA_LIBS+=' -lva' + WANT_VAAPI="yes" + if test "x$HAVE_vaapi_x11" = "xyes"; then + FFMPEG_EXTRA_LDFLAGS+=' -lva-x11' + EXTRA_LIBS+=' -lva-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' +fi + # intel lock elision bugs if test "x$WANT_NOELISION" != "xno"; then CFG_RPATH=`ls -1fd 2> /dev/null \ @@ -874,6 +1068,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 +1107,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 +1131,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 +1158,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 +1175,27 @@ 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 "x$WANT_X264_HIDEPTH" = "xyes" ; then X264_CFG_PARAMS="$X264_CFG_PARAMS --bit-depth=10" fi @@ -961,8 +1205,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 +1238,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 +1249,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 +1272,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 +