upgrade ffmpeg to 3.4.2, add proxy popup, undo/redo deadlock fix, rework nested edl
[goodguy/history.git] / cinelerra-5.1 / configure.ac
index b4325d5ea2887d4ff9419f04c8f00312a6b0bf80..557aae3cda02b6ddabed47b9914d8c6454f5e0a4 100644 (file)
@@ -9,13 +9,18 @@ AC_LANG_C
 AC_PROG_CXX
 
 CFG_CFLAGS+=" -fno-omit-frame-pointer -fno-math-errno -fno-signed-zeros"
-CFG_CFLAGS+=" -pthread -Wall -Wno-unused-result"
+CFG_CFLAGS+=" -pthread -Wall"
+# misguided pedantic warnings
+CFG_CFLAGS+=" -Wno-unused-result"
+CFG_CFLAGS+=" -Wno-stringop-truncation"
+CFG_CFLAGS+=" -Wno-stringop-overflow"
+CFG_CFLAGS+=" -Wno-format-truncation"
+CFG_CFLAGS+=" -Wno-format-overflow"
 CFG_CFLAGS+=" -D__STDC_CONSTANT_MACROS"
 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/freetype2"
-CFG_CFLAGS+=" -I/usr/include/OpenEXR"
 
 AC_DEFUN([CHECK_WITH], [
 AC_ARG_WITH([$1],
@@ -33,6 +38,8 @@ 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([config-dir],[.bcast config dir],[CONFIG_DIR],[$$HOME/.bcast5])
+CHECK_WITH([browser],[cin_browser path],[CIN_BROWSER],[firefox])
+CHECK_WITH([git-ffmpeg],[git ffmpeg using url],[GIT_FFMPEG],[no])
 
 if test "x$WANT_CINBIN_BUILD" = "xyes"; then
   WANT_LOCALE_DIR='$$CIN_LIB/locale'
@@ -125,7 +132,7 @@ PKG_3RD([fdk],[auto],
   [ libAACdec/include libAACenc/include libSYS/include ])
 
 PKG_3RD([ffmpeg],[yes],
-  [ffmpeg-3.3.2],
+  [ffmpeg-3.4.2],
   [ libavutil/libavutil.a \
     libavcodec/libavcodec.a \
     libpostproc/libpostproc.a \
@@ -136,8 +143,12 @@ PKG_3RD([ffmpeg],[yes],
     libswresample/libswresample.a ],
   [ . ])
 
+if test "x$WANT_GIT_FFMPEG" != "xno" ; then
+  ver_ffmpeg="ffmpeg.git"
+fi
+
 PKG_3RD([fftw],[auto],
-  [fftw-3.3.6-pl2],
+  [fftw-3.3.7],
   [ .libs/libfftw3.a \
     libbench2/libbench2.a \
     rdft/scalar/r2cb/.libs/librdft_scalar_r2cb.a \
@@ -151,8 +162,7 @@ PKG_3RD([fftw],[auto],
     dft/scalar/.libs/libdft_scalar.a \
     dft/.libs/libdft.a \
     kernel/.libs/libkernel.a \
-    simd-support/.libs/libsimd_support.a \
-    simd-support/.libs/libsimd_sse2_nonportable.a ],
+    simd-support/.libs/libsimd_support.a ],
   [ api ])
 
 PKG_3RD([flac],[auto],
@@ -173,7 +183,7 @@ PKG_3RD([giflib],[yes],
   [ lib ])
 
 PKG_3RD([ilmbase],[auto],
-  [ilmbase-2.2.0],
+  [ilmbase-2.2.1],
   [ Iex/.libs/libIex.a \
     IexMath/.libs/libIexMath.a \
     Half/.libs/libHalf.a \
@@ -184,7 +194,7 @@ PKG_3RD([ilmbase],[auto],
 PKG_DEF([ladspa], [ladspa-0.4.17], [], [])
 
 PKG_3RD([lame],[auto],
-  [lame-3.99.5],
+  [lame-3.100],
   [ libmp3lame/.libs/libmp3lame.a \
     mpglib/.libs/libmpgdecoder.a ],
   [ include ])
@@ -218,6 +228,11 @@ PKG_3RD([libjpeg],[auto],
     simd/.libs/libsimd.a ],
   [ . ])
 
+PKG_3RD([opus],[auto],
+  [opus-1.2.1],
+  [ .libs/libopus.a ],
+  [ include ])
+
 PKG_3RD([openjpeg],[auto],
   [openjpeg-2.1.0-20160221],
   [ bin/libopenjp2.a ],
@@ -267,7 +282,7 @@ PKG_3RD([mjpegtools],[yes],
   [ .  lavtools utils ])
 
 PKG_3RD([openexr],[auto],
-  [openexr-2.2.0],
+  [openexr-2.2.1],
   [ IlmImf/.libs/libIlmImf.a \
     IlmImfUtil/.libs/libIlmImfUtil.a ],
   [ IlmImf config ])
@@ -282,7 +297,7 @@ PKG_3RD([openexr],[auto],
 #  [])
 #
 PKG_3RD([tiff],[auto],
-  [tiff-4.0.6],
+  [tiff-4.0.9],
   [ libtiff/.libs/libtiff.a \
     libtiff/.libs/libtiffxx.a \
     port/.libs/libport.a ],[
@@ -294,12 +309,12 @@ PKG_3RD([twolame],[auto],
   [  libtwolame ])
 
 PKG_3RD([x264],[auto],
-  [x264-snapshot-20170426-2245],
+  [x264-snapshot-20180118-2245],
   [ libx264.a ],
   [ . ])
 
 PKG_3RD([x265],[auto],
-  [x265_2.4],
+  [x265_v2.6],
   [ libx265.a ],
   [ . source ])
 
@@ -318,7 +333,6 @@ AC_ARG_ENABLE([$1],
 
 CHECK_ENABLE([static-build], [STATIC_BUILD], [build static], [auto])
 CHECK_ENABLE([x264_hidepth], [X264_HIDEPTH], [build x264 10bit], [no])
-CHECK_ENABLE([x265_hidepth], [X265_HIDEPTH], [build x265 10/12bit], [no])
 
 test "x$WANT_STATIC_BUILD" = "xauto" && WANT_STATIC_BUILD=$WANT_CINBIN_BUILD
 
@@ -344,6 +358,19 @@ 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 <X11/Xlib.h>])
 if test "$no_utf" = "yes"; then
   AC_MSG_ERROR([Cinelerra requires utf8 support in X Windows.])
@@ -392,6 +419,7 @@ 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])
 CHECK_LIB([FREETYPE], [freetype], [FT_Init_FreeType])
@@ -463,7 +491,7 @@ if test "x$WANT_$1" != "xno" ; then
  if test "x$RESULT" = "xno" -a "x$PKG_$1" = "x"; then
   echo "=== want $1 Failed."
   WANT_$1=no
- else
+ elif test "x$WANT_$1" = "xauto" ; then
   WANT_$1=yes
  fi
 fi
@@ -516,21 +544,30 @@ CHECK_WANT([ESOUND], [no], [use esd], [
  CHECK_LIB([audiofile], [audiofile], [afOpenFile])
  CHECK_HEADERS([audiofile], [audiofile headers], [audiofile.h])])
 
+CHECK_WANT([LIBOPUS], [auto], [use libopus], [
+ CHECK_LIB([opus], [opus], [opus_multistream_decoder_create])
+ CHECK_HEADERS([opus], [libopus headers], [opus/opus_multistream.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], [
+ WANT_OPENCV="$withval"
+])
+
 CHECK_WANT([NUMA], [auto], [system has libnuma], [
  CHECK_LIB([NUMA], [numa], [numa_alloc])])
 
-
-AC_MSG_CHECKING([for openexr available])
-saved_LIBS="$LIBS"
-saved_CXXFLAGS="$CXXFLAGS"
-# ilmbase libs
-LIBS=" -lIlmImf -lIlmThread -lIex"
-CXXFLAGS="-I/usr/include/OpenEXR"
-AC_LANG_PUSH(C++)
-AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+CHECK_WANT([OPENEXR], [auto], [use openexr], [
+ AC_MSG_CHECKING([for openexr available])
+ saved_LIBS="$LIBS"
+ saved_CXXFLAGS="$CXXFLAGS"
+ # ilmbase libs
+ LIBS=" -lIlmImf -lIlmThread -lIex -lpthread"
+ CXXFLAGS="-I/usr/include/OpenEXR"
+ AC_LANG_PUSH(C++)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include "ImfChannelList.h"
 #include "ImfChromaticities.h"
 #include "ImfCompression.h"
@@ -545,15 +582,18 @@ class EXRIStream : public Imf::IStream { public:
 EXRIStream() : Imf::IStream("mypath") {} };
 class EXROStream : public Imf::OStream { public: 
 EXROStream() : Imf::OStream("mypath") {} };
-]])], [HAVE_openexr=yes], [HAVE_openexr=no])
-if test "x$HAVE_openexr" = "xyes"; then
-  SHARED_openexr="$LIBS"
-fi
-LIBS="$saved_LIBS"
-CXXFLAGS="$saved_CXXFLAGS"
-AC_LANG_POP(C++)
-AC_MSG_RESULT([$HAVE_openexr])
-AC_SUBST([HAVE_openexr])
+]])], [HAVE_OPENEXR=yes], [HAVE_OPENEXR=no])
+ RESULT="$HAVE_OPENEXR"
+ if test "x$RESULT" = "xyes"; then
+   SHARED_openexr="$LIBS"
+   CFG_CFLAGS+=" -I/usr/include/OpenEXR"
+ fi
+ LIBS="$saved_LIBS"
+ CXXFLAGS="$saved_CXXFLAGS"
+ AC_LANG_POP(C++)
+ AC_MSG_RESULT([$HAVE_OPENEXR])
+])
+AC_SUBST([HAVE_OPENEXR])
 
 # build global_config
 OBJDIR=`uname -m`
@@ -563,9 +603,10 @@ echo "AC_HELP_STRING([Reason],[Package])"
 echo "AC_HELP_STRING([------],[-------])"
 
 AC_DEFUN([PKG_DISABLED],[
-  BUILD_$1=0
-  AC_SUBST(BUILD_$1)
-  echo "AC_HELP_STRING([disabled],[$1])"
+ PKG_$1="no"
+ BUILD_$1=0
+ AC_SUBST(BUILD_$1)
+ echo "AC_HELP_STRING([disabled],[$1])"
 ])
 AC_DEFUN([PKG_SHARED],[
  BUILD_$1=0
@@ -574,6 +615,7 @@ AC_DEFUN([PKG_SHARED],[
  echo "AC_HELP_STRING([shared],[$1])"
 ])
 AC_DEFUN([PKG_STATIC],[
+ PKG_$1="yes"
  BUILD_$1=1
  AC_SUBST(BUILD_$1)
  STATIC_BLDS+=" [$1]"
@@ -621,7 +663,7 @@ PKG_PROVIDE([ffmpeg])
 PKG_PROVIDE([fftw])
 PKG_PROVIDE([flac])
 PKG_PROVIDE([giflib])
-PKG_PROVIDE([ilmbase])
+PKG_PROVIDE([ilmbase], [$WANT_OPENEXR])
 PKG_PROVIDE([ladspa],[$WANT_LADSPA_BUILD])
 PKG_PROVIDE([lame])
 PKG_PROVIDE([libavc1394],[$WANT_FIREWIRE])
@@ -635,13 +677,14 @@ PKG_PROVIDE([libtheora])
 PKG_PROVIDE([libuuid])
 PKG_PROVIDE([libvorbis])
 PKG_PROVIDE([mjpegtools])
-PKG_PROVIDE([openexr])
+PKG_PROVIDE([openexr], [$WANT_OPENEXR])
 PKG_PROVIDE([openjpeg])
 PKG_PROVIDE([tiff])
 PKG_PROVIDE([twolame])
 PKG_PROVIDE([x264])
 PKG_PROVIDE([x265])
 PKG_PROVIDE([libvpx])
+PKG_PROVIDE([opus], [$WANT_OPUS])
 
 AC_SUBST(STATIC_BLDS)
 AC_SUBST(SHARED_LIBS)
@@ -653,7 +696,7 @@ AC_SUBST(SYSTEM_LIBS)
 
 echo ""
 for v in GL XFT XXF86VM OSS ALSA FIREWIRE DV DVB \
-        VIDEO4LINUX2 ESOUND PACTL; do
+        VIDEO4LINUX2 ESOUND PACTL OPENEXR; do
   eval vv="\$WANT_$v"
   if test "x$vv" != "xno"; then
     CFG_CFLAGS+=" -DHAVE_$v"
@@ -670,8 +713,11 @@ 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 ""
 echo "  using: single-user  = $WANT_CINBIN_BUILD"
 echo "  using: static-build = $WANT_STATIC_BUILD"
@@ -691,10 +737,15 @@ if test "x$HAVE_DL" = "xyes"; then
   EXTRA_LIBS+=' -ldl'
   FFMPEG_EXTRA_CFG+=' --extra-ldflags="-ldl"'
 fi
+if test "x$HAVE_opus" = "xyes"; then
+  EXTRA_LIBS+=' -lopus'
+  CFG_CFLAGS+=' -I/usr/include/opus'
+  FFMPEG_EXTRA_CFG+=' --enable-libopus'
+fi
+
 AC_SUBST(EXTRA_LIBS)
 AC_SUBST(FFMPEG_EXTRA_CFG)
 AC_SUBST(WANT_X264_HIDEPTH)
-AC_SUBST(WANT_X265_HIDEPTH)
 
 AC_SUBST(CFG_CFLAGS)
 AC_SUBST(CFG_CXXFLAGS)
@@ -745,20 +796,23 @@ echo "CFLAGS += '-DCONFIG_DIR=\"$WANT_CONFIG_DIR\"'"
 echo "CFLAGS += '-DPLUGIN_DIR=\"$WANT_PLUGIN_DIR\"'"
 echo "CFLAGS += '-DLOCALE_DIR=\"$WANT_LOCALE_DIR\"'"
 echo "CFLAGS += '-DLADSPA_DIR=\"$WANT_LADSPA_DIR\"'"
+echo "CFLAGS += '-DCIN_BROWSER=\"$WANT_CIN_BROWSER\"'"
 for flg in $CFG_CFLAGS; do echo "CFLAGS += $flg"; done
 echo ""
 for flg in $CFG_CXXFLAGS; do echo "CXXFLAGS += $flg"; done
 echo ""
 
 if test  $WANT_X264_HIDEPTH = "yes" ; then
-  echo "x264.cfg_params := --enable-static --bit-depth=10"
-fi
-if test  $WANT_X265_HIDEPTH = "yes" ; then
-  echo "x265.cfg_params := -DENABLE_SHARED=no -DHIGH_BIT_DEPTH:BOOL=ON" # -DMAIN12:BOOL=ON"
+  X264_CFG_PARAMS="$X264_CFG_PARAMS --bit-depth=10"
 fi
 
-for pkg in $STATIC_PKGS; do echo "static_pkgs += $pkg"; done
+for pkg in $STATIC_PKGS; do
+  eval pkg_lib="\$PKG_$pkg"
+  if test "x$pkg_lib" = "xno"; then continue; fi;
+  echo "static_pkgs += $pkg"
+done
 echo ""
+
 for pkg in $STATIC_BLDS; do
   echo "static_blds += $pkg"
   ver_pkg=ver_$pkg
@@ -808,3 +862,12 @@ if test "x$HAVE_tiff" = "xyes"; then
   fi
 fi
 
+if test "x$WANT_GIT_FFMPEG" != "xno"; then
+echo "ffmpeg.git := $WANT_GIT_FFMPEG"
+fi
+if test "x$HAVE_opus" = "xyes"; then
+echo 'ffmpeg.cflags+=" -I/usr/include/opus"'
+fi
+if test "x$X264_CFG_PARAMS" != "x" ; then
+  echo "x264.cfg_params :=$X264_CFG_PARAMS --enable-static --enable-pic"
+fi