X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fthirdparty%2FMakefile;h=0bab9fdbb7b64fe09d9ce0c306fe0a459bec8c8b;hp=acaf4efacd63f73daa047da170aac9d0d8cbf3b6;hb=b9fa786adcb3624582d1a63bd52b9179e9a8dadb;hpb=b1649fe7b38cfb4bbec58b19fb8dda2daa0ce520 diff --git a/cinelerra-5.1/thirdparty/Makefile b/cinelerra-5.1/thirdparty/Makefile index acaf4efa..0bab9fdb 100644 --- a/cinelerra-5.1/thirdparty/Makefile +++ b/cinelerra-5.1/thirdparty/Makefile @@ -21,6 +21,7 @@ # add $(call rules,$(call std-build,,...)) # add deps to other call rules if they require the new library # add config enables if other libraries use the new library +# add pc_= if needed for system build # TOPDIR ?= $(CURDIR)/.. @@ -52,10 +53,18 @@ unpack_bz2=tar -xjf $(1) unpack_xz=tar -xJf $(1) bld_depends=$(if $(ver_$(1)),$(call pkg-built,$(1))) bld_path=$(ver_$(1))/$(2) -if_pkg=$(if $(ver_$(1)),$(2)) +if_pkg=$(if $(ver_$(1)),$(2),$(3)) if_npkg=$(if $(ver_$(1)),,$(2)) -inc_path=$(call if_pkg,$(1),$(inc_$(1))) +if_shr=$(if $(filter $(1),$(shared_pkgs)),$(2),$(3)) +pkg_conf=$(call if_shr,$(1),$(foreach p,$(pc_$(1)), $(shell pkg-config 2> /dev/null $(2) $(p)))) +inc_path=$(call if_pkg,$(1),$(inc_$(1)), $(call pkg_conf,$(1),--cflags)) ld_path=$(call if_pkg,$(1),-L$(call bld_path,$(1),$(2)) $(lib_$(1))) +if_ena=$(if $(or $(ver_$(1)),$(filter $(1),$(shared_pkgs))),$(2)) +if_want=$(if $(filter x$(WANT_$(1)),xyes),$(2),$(3)) +sysincs:=usr/include usr/local/include +syslibs:=usr/lib usr/lib32 usr/lib64 lib lib32 lib64 usr/local/lib usr/local/lib32 usr/local/lib64 +pkg_incl=$(lastword $(wildcard $(foreach f,$(sysincs), $(call bld_path,$(1),$(f))))) +pkg_libs=$(lastword $(wildcard $(foreach f,$(syslibs), $(call bld_path,$(1),$(f))))) #$(eval $(call std-build,pkg,deps...)) #$(pkg.cflags) added as CFLAGS+=$(cflags) to pkg.vars @@ -101,9 +110,20 @@ $(TARGETS): $(BLD) $(BLD): mkdir $(BLD) +# pkg-config names +pc_libaom=aom +pc_dav1d=dav1d +pc_libwebp=libwebp libwebpmux +pc_opus=opus +pc_openjpeg=libopenjp2 +pc_libvorbis=vorbis vorbisenc +pc_libvpx=vpx +pc_x264=x264 +pc_x265=x265 + # vars first encore.cfg_vars= true || -esound.cfg_vars:= AUDIOFILE_CFLAGS="$(call inc_path,audiofile,libaudiofile) -laudiofile" +esound.cfg_vars:= AUDIOFILE_CFLAGS="$(call inc_path,audiofile) -laudiofile" esound.cfg_vars+= AUDIOFILE_LIBS="$(call ld_path,audiofile,libaudiofile/.libs)" esound.cfg_params= --enable-shared=no --with-pic esound.mak_vars+= CFLAGS="" @@ -111,41 +131,43 @@ esound.ldflags=" -lm -lstdc++" fftw.cfg_params= --disable-fortran --enable-shared=no ffmpeg.cfg_params= \ --enable-pthreads --enable-gpl --disable-ffplay \ - $(if $(WANT_VAAPI),--enable-vaapi,--disable-vaapi) \ - $(if $(WANT_VDPAU),--enable-vdpau,--disable-vdpau) \ - $(if $(WANT_NV), --enable-nvenc --enable-nvdec) \ - $(call if_pkg,twolame,--enable-libtwolame) \ - $(call if_pkg,openjpeg,--enable-libopenjpeg) \ - $(call if_pkg,lame,--enable-libmp3lame) \ - $(call if_pkg,libaom,--enable-libaom) \ - $(call if_pkg,libwebp,--enable-libwebp) \ - $(call if_pkg,opus,--enable-libopus) \ - $(call if_pkg,libvorbis,--enable-libvorbis) \ - $(call if_pkg,libtheora,--enable-libtheora) \ - $(call if_pkg,libvpx,--enable-libvpx) \ - $(call if_pkg,x264,--enable-libx264) \ - $(call if_pkg,x265,--enable-libx265) \ - --extra-cflags="\ - $(if $(WANT_NV), $(inc_ffnvcodec)) \ - $(call inc_path,twolame,libtwolame) \ - $(call inc_path,lame,include) \ - $(call inc_path,libaom,usr/local/include) \ - $(call inc_path,libwebp,usr/local/include) \ - $(call inc_path,openjpeg,src/lib/openjp2) \ - $(call inc_path,libogg,include) \ - $(call inc_path,opus,include) \ - $(call inc_path,libvorbis,include) \ - $(call inc_path,libtheora,include) \ + $(call if_want,VAAPI,--enable-vaapi,--disable-vaapi) \ + $(call if_want,VDPAU,--enable-vdpau,--disable-vdpau) \ + $(call if_want,NV, --enable-nvenc --enable-nvdec --enable-ffnvcodec) \ + $(call if_ena,twolame,--enable-libtwolame) \ + $(call if_ena,openjpeg,--enable-libopenjpeg) \ + $(call if_ena,lame,--enable-libmp3lame) \ + $(call if_ena,libaom,--enable-libaom) \ + $(call if_ena,dav1d,--enable-libdav1d) \ + $(call if_ena,libwebp,--enable-libwebp) \ + $(call if_ena,opus,--enable-libopus) \ + $(call if_ena,libvorbis,--enable-libvorbis) \ + $(call if_ena,libtheora,--enable-libtheora) \ + $(call if_ena,libvpx,--enable-libvpx) \ + $(call if_ena,x264,--enable-libx264) \ + $(call if_ena,x265,--enable-libx265) \ + --extra-cflags="-Wno-attributes \ + $(call if_want,NV,$(inc_ffnvcodec)) \ + $(call inc_path,twolame) \ + $(call inc_path,lame) \ + $(call inc_path,libaom) \ + $(call inc_path,dav1d) \ + $(call inc_path,libwebp) \ + $(call inc_path,openjpeg) \ + $(call inc_path,libogg) \ + $(call inc_path,opus) \ + $(call inc_path,libvorbis) \ + $(call inc_path,libtheora) \ $(call inc_path,libvpx) \ $(call inc_path,x264) \ - $(call inc_path,x265) \ - $(call inc_path,x265,source)" \ + $(call inc_path,x265)" \ --extra-cxxflags="-D__STDC_CONSTANT_MACROS" \ --pkg-config=true \ --extra-libs="-Wl,--start-group \ $(call ld_path,twolame,libtwolame/.libs) \ $(call ld_path,lame,libmp3lame/.libs) \ $(call ld_path,libaom,usr/local/lib) \ + $(call ld_path,dav1d,usr/local/lib) \ $(call ld_path,libwebp,usr/local/lib) \ $(call ld_path,openjpeg,bin) \ $(call ld_path,opus,.libs) \ @@ -155,11 +177,12 @@ ffmpeg.cfg_params= \ $(call ld_path,libvpx) \ $(call ld_path,x264) \ $(call ld_path,x265) \ + $(shared_libs) \ -Wl,--end-group -lm -lstdc++ -pthread \ $(EXTRA_LIBS)" $(FFMPEG_EXTRA_CFG) \ #cmake_config=echo "exec cmake \$$$$@ $(1)" > ./configure; chmod +x ./configure; -cmake_config=echo "exec cmake $(1) \$$$$@" > ./configure; chmod +x ./configure; +cmake_config=echo 'cmake "$$$$@" "$(1)"' > ./configure; chmod +x ./configure; a52dec.mak_params?= ; cd $(call bld_path,a52dec,include); ln -sf . a52dec a52dec.cfg_vars?= CFLAGS+=" -U__FreeBSD__ $(call inc_path,djbfft)" LIBS+=" $(call ld_path,djbfft)" a52dec.cfg_params?=--enable-djbfft @@ -170,23 +193,24 @@ djbfft.mak_params?=; cd $(call bld_path,djbfft); ln -sf djbfft.a libdjbfft.a audiofile.cfg_params?=--enable-shared=no audiofile.mak_params?=LIBS="-lm -lstdc++" flac.cfg_params?= --enable-shared=no -flac.cflags?="$(call inc_path,libogg,include) $(call ld_path,libogg,src/.libs)" +flac.cflags?="$(call inc_path,libogg) $(call ld_path,libogg,src/.libs)" giflib.cfg_params=echo "exec true" > ./configure; chmod +x ./configure; -ilmbase.cfg_vars= CFLAGS+=" -Wno-narrowing" CXXFLAGS+=" -Wno-narrowing" -ilmbase.cfg_params?=--prefix=$(call bld_path,ilmbase,usr) -ilmbase.mak_params?=; $(MAKE) -C ilmbase* install; cd $(call bld_path,ilmbase); ln -sf lib64 usr/lib lame.cfg_vars?= CFLAGS+=" -O" lame.cfg_params?=--enable-shared=no lame.mak_params?= ; cd $(call bld_path,lame,include); ln -sf . lame -libaom.cfg_vars?=$(call cmake_config,aom-master) -libaom.cfg_params?= -DENABLE_SHARED=no -DCMAKE_INSTALL_LIBDIR=lib \ - -DCMAKE_INSTALL_PREFIX=$(call bld_path,libaom)/usr/local -libaom.mak_params?= ; $(MAKE) -C libaom* install +libaom.cfg_vars?= mkdir aom.build && cd aom.build && $(call cmake_config,..) +libaom.cfg_params?= -DENABLE_TESTS=no -DCMAKE_BUILD_TYPE=Release -DENABLE_DOCS=no -DENABLE_SHARED=no -DCMAKE_INSTALL_LIBDIR=lib \ + -DENABLE_EXAMPLES=no -DCMAKE_INSTALL_PREFIX=$(call bld_path,libaom)/usr/local +libaom.mak_params?= ; $(MAKE) -C libaom*/aom.build install +dav1d.cfg_vars?=echo "echo dav1d custom make" >> configure; chmod +x ./configure; +dav1d.mak_params?=; $(MAKE) -C dav1d* install DESTDIR="$(call bld_path,dav1d)" libwebp.cfg_vars?= mkdir build && cd build && $(call cmake_config,..) libwebp.mak_params?= -C build all install DESTDIR=$(call bld_path,libwebp) -mjpegtools.cflags?="$(call inc_path,libjpeg) $(call ld_path,libjpeg,.libs)" -mjpegtools.mak_params?=; ln -s . $(call bld_path,mjpegtools,utils)/mjpegtools -mjpegtools.cfg_params?= --enable-shared=no --without-libsdl --without-v4l +mjpegtools.cflags?="$(call inc_path,libjpeg) $(call ld_path,libjpeg,build)" +mjpegtools.cfg_vars?= ./autogen.sh; +mjpegtools.cfg_params?= --enable-shared=no --without-libquicktime --without-libdv \ + --without-libpng --without-dga --without-gtk --without-libsdl --without-sdlgfx +mjpegtools.mak_params?= all ladspa.cfg_vars?= CFLAGS+=' -Dinline="" ' ladspa.mak_params?=; $(MAKE) -C ladspa* install DESTDIR=$(call bld_path,ladspa) libavc1394.cfg_vars?=PKG_CONFIG_PATH=$(call bld_path,libraw1394) @@ -200,11 +224,13 @@ libiec61883.cflags?="$(call inc_path,libraw1394)" libiec61883.ldflags?="$(call ld_path,libraw1394,src/.libs)" libiec61883.cfg_params?= --enable-shared=no libiec61883.mak_params?=; cd $(call bld_path,libiec61883,src); ln -sf . libiec61883 -libjpeg.cfg_params?= --enable-shared=no +libjpeg.cfg_vars?= mkdir build && cd build && $(call cmake_config,..) +libjpeg.cfg_params?= -DENABLE_SHARED=no -DCMAKE_INSTALL_LIBDIR=lib +libjpeg.mak_params?= -C build all install DESTDIR=$(call bld_path,libjpeg) libogg.cfg_params?= --enable-shared=no libraw1394.cfg_params?= --enable-shared=no; ln -sf src libraw1394 libtheora.cfg_vars?=PKG_CONFIG_PATH=$(call bld_path,libogg):$(call bld_path,libvorbis) -libtheora.cflags?="$(call inc_path,libogg,include) $(call inc_path,libogg,src) $(call inc_path,libvorbis,include)" +libtheora.cflags?="$(call inc_path,libogg) $(call inc_path,libvorbis)" libtheora.ldflags?="$(call ld_path,libvorbis,lib/.libs) $(call ld_path,libogg,src/.libs)" libtheora.cfg_params?= --disable-examples --disable-spec --enable-shared=no libuuid.cfg_params?=--enable-shared=no @@ -214,15 +240,19 @@ openjpeg.cfg_vars?=$(call cmake_config,.) openjpeg.mak_params?= ; cd $(call bld_path,openjpeg,src/lib/openjp2); ln -sf . openjpeg-2.1 opencv.cfg_vars?=$(call cmake_config,.) opencv.cfg_params?= -DBUILD_SHARED_LIBS:BOOL=OFF -openexr.cfg_vars?=LD_LIBRARY_PATH=$(call bld_path,ilmbase,usr/lib) -openexr.cfg_params?=--enable-shared=no --with-ilmbase-prefix=$(call bld_path,ilmbase,usr) +openexr.cfg_vars?=true; \# +openexr.mak_vars?=true; \# speech_tools.mak_params?=-j1 -tiff.cfg_params+= --enable-shared=no --disable-zstd $(call if_npkg,libwebp,--without-webp) +tiff.cfg_vars+=LIBS+=" -lpthread" +tiff.cfg_params+= --enable-shared=no --disable-zstd $(call if_pkg,libwebp,\ + --with-webp-include-dir=$(call pkg_incl,libwebp)\ + --with-webp-lib-dir=$(call pkg_libs,libwebp))\ + $(call if_npkg,libwebp,--disable-webp) twolame.cfg_params?=--enable-shared=no x264.cfg_params?= --enable-static --enable-pic x265.cfg_vars?=$(call cmake_config,source) x265.cfg_params?= -DENABLE_SHARED=no -libvpx.cfg_params?= --enable-pic +libvpx.cfg_params?= --enable-pic --disable-avx512 --disable-examples --disable-unit_tests DS:=$$$$$$$$ pkg_cfg=$(call bld_path,$(1),usr/local/lib/pkgconfig): @@ -233,15 +263,15 @@ define waf-setup $(1).cfg_vars+=./waf --version; find .waf* -type f -name "*.py" | \ while read f; do sed -e '/StopIter/d' -i "$(DS)f"; done; \ echo 'exec ./waf configure "$(DS)@"' > ./configure; chmod +x \ - ./configure; PKG_CONFIG_PATH=$(LV2_PKGCFG) LD_LIBRARY_PATH=$(LV2_LIBPATH) + ./configure; PKG_CONFIG_PATH=$(LV2_PKGCFG):$(PKG_CONFIG_PATH) LD_LIBRARY_PATH=$(LV2_LIBPATH) $(1).cfg_params+=\ CFLAGS="-I$(call bld_path,lv2) $(foreach f,$(2), $(call inc_path,$(f))) -fPIC -std=c99"\ - LDFLAGS="-lm $(foreach f,$(2), $(call ld_path,$(f),usr/local/lib)) " + LDFLAGS="-lm `pkg-config --libs x11` $(foreach f,$(2), $(call ld_path,$(f),usr/local/lib)) " $(1).mak_vars=(echo "all:"; echo " ./waf -v build") > $(call bld_path,$(1),Makefile); $(1).mak_params+=; ( cd $(1)*; ./waf install --destdir=$(call bld_path,$(1)) ) endef -SYS_LIB:=$(notdir $(lastword $(wildcard /usr/lib /usrlib32 /usr/lib64))) +SYS_LIB:=$(notdir $(lastword $(wildcard /usr/lib /usr/lib32 /usr/lib64))) SYS_LV2:=$(lastword $(wildcard /usr/$(SYS_LIB)/lv2 /usr/local/$(SYS_LIB)/lv2)) $(if $(SYS_LV2),,$(eval SYS_LV2:=/usr/$(SYS_LIB)/lv2)) lv2.cfg_params?= --lv2dir=$(SYS_LV2) @@ -253,7 +283,7 @@ sratom.cfg_params?= --static --no-shared serd.cfg_params?= --static --no-shared sord.cfg_params?= --static --no-shared lilv.cfg_params?= --static --dyn-manifest -suil.cfg_params?= --static --no-qt +suil.cfg_params?= --static --no-qt --no-qt5 $(eval $(call waf-setup,lv2)) $(eval $(call waf-setup,serd)) @@ -292,15 +322,16 @@ $(call rules,$(call std-build,audiofile)) $(call rules,$(call std-build,encore)) $(call rules,$(call std-build,esound,audiofile)) $(call rules,$(call std-build,ffmpeg, twolame lame openjpeg opus \ - libtheora x264 x265 libvpx libaom libwebp \ - $(if $(WANT_NV), ffnvcodec))) + libtheora x264 x265 libvpx libaom dav1d libwebp \ + $(call if_want,NV, ffnvcodec))) $(call rules,$(call std-build,fftw)) $(call rules,$(call std-build,flac,libogg)) $(call rules,$(call std-build,giflib)) -$(call rules,$(call std-build,ilmbase)) +$(call rules,$(call std-build,ilmBase, openexr)) $(call rules,$(call std-build,ladspa)) $(call rules,$(call std-build,lame)) $(call rules,$(call std-build,libaom)) +$(call rules,$(call std-build,dav1d)) $(call rules,$(call std-build,libwebp)) $(call rules,$(call std-build,libavc1394,libraw1394)) $(call rules,$(call std-build,libdv)) @@ -314,11 +345,12 @@ $(call rules,$(call std-build,libuuid)) $(call rules,$(call std-build,libvorbis)) $(call rules,$(call std-build,mjpegtools, libjpeg)) $(call rules,$(call std-build,opencv)) -$(call rules,$(call std-build,openexr, ilmbase)) +$(call rules,$(call std-build,openexr)) +$(call rules,$(call std-build,openExr, ilmBase)) $(call rules,$(call std-build,openjpeg)) $(call rules,$(call std-build,opus)) $(call rules,$(call std-build,speech_tools)) -$(call rules,$(call std-build,tiff)) +$(call rules,$(call std-build,tiff, libwebp)) $(call rules,$(call std-build,twolame)) $(call rules,$(call std-build,x264)) $(call rules,$(call std-build,x265))