X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fthirdparty%2FMakefile;h=8faa94dd1f3f16da1aa5e505a23883ec6913d5c2;hb=74afbc29ac4ce9d94d53e10342979f2c59f1f193;hp=c4251e273f7949094fc106965cfc505479e18e00;hpb=235c9cc4df8306babbbfda46189108fe262d44ef;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/thirdparty/Makefile b/cinelerra-5.1/thirdparty/Makefile index c4251e27..8faa94dd 100644 --- a/cinelerra-5.1/thirdparty/Makefile +++ b/cinelerra-5.1/thirdparty/Makefile @@ -1,22 +1,21 @@ - # to see the make rules: # make rules # # command uses: -# ./configure # make -clean # make # make rules -# make list # make val- # # to add a new library: -# vi configure -# add inc_ -# add add_library name -# add probe call if the library may be already in system -# fix forced_libs list: for lib in $forced_libs; do -# add dependencies (order matters): for dep in ; do +# vi ../configure.ac +# add PKG_3RD(pkg,, , , ) +# add CHECK_LIB(pkg, , , [opt libs]) if may be in system +# add CHECK_HEADERS(pkg, , <entry_pt>) to check for devel headers +# add CHECK_WANT(<want>, <title>, [ checks ]) around tests if conditional +# see openexr check for example if c++ lib +# add PKG_PROVIDE(pkg,<cond>) to instance pkg if probe succeeds +# add to exec > global_config if additional environment needed # vi Makefile # add pkg.<data> (pkg.x = .flags, .vars, .params) # add $(call rules,$(call std-build,<name>,<dep>...)) @@ -24,24 +23,36 @@ # add config enables if other libraries use the new library # -include ../global_config --include config.mak +TOPDIR ?= $(CURDIR)/.. +include $(TOPDIR)/global_config +-include $(TOPDIR)/cin_config BLD := $(THIRDPARTY)/build +# package build flags, if needed +# need frame pointer for debugs and helps with profiling +# NOTE: the trailing blank is MANDITORY or the builds fail +# due to bugs in the build scripts from auto* +CFLAGS_ ?= -g -O2 -fno-omit-frame-pointer +CFLAGS ?= $(CFLAGS_) +LDFLAGS += $(LDFLAGS_) +CXXFLAGS += $(CXXFLAGS_) + pkg-source=$(BLD)/$(1).source pkg-config=$(BLD)/$(1).configure pkg-built=$(BLD)/$(1).built ext=$(lastword $(subst ., ,$(1))) -tarball=$(lastword $(wildcard src/$(1)*.tar.*)) +tarball=$(if $($(1).git),$(1).git,$(lastword $(sort $(wildcard src/$(1)*.tar.*)))) unpack=$(call unpack_$(call ext,$(1)),$(1)) +unpack_git=git clone $($(1)) $(1) unpack_gz=tar -xzf $(1) unpack_bz2=tar -xjf $(1) unpack_xz=tar -xJf $(1) -bld_depends=$(if $(filter $(firstword $($(1))),static),$(call pkg-built,$(1))) -bld_path=`echo $(THIRDPARTY)/$(1)*`/$(2) -inc_path=$(if $(filter $(firstword $($(1))),static),-I$(call bld_path,$(1),$(2))) -ld_path=$(if $(filter $(firstword $($(1))),static),-L$(call bld_path,$(1),$(2))) +bld_depends=$(if $(ver_$(1)),$(call pkg-built,$(1))) +bld_path=$(ver_$(1))/$(2) +if_pkg=$(if $(ver_$(1)),$(2)) +inc_path=$(call if_pkg,$(1),$(inc_$(1))) +ld_path=$(call if_pkg,$(1),-L$(call bld_path,$(1),$(2)) $(lib_$(1))) #$(eval $(call std-build,pkg,deps...)) #$(pkg.cflags) added as CFLAGS+=$(cflags) to pkg.vars @@ -62,7 +73,7 @@ $(1)-clean: $(call pkg-source,$(1)): $(call unpack,$(call tarball,$(1))) \ - $(foreach pch,$(wildcard src/$(1).patch*), + $(foreach pch,$(sort $(wildcard src/$(notdir $(ver_$(1))).patch*)), patch -d $(1)* -p1 < $(pch)) touch $$@ @@ -78,7 +89,7 @@ $(call pkg-built,$(1)): $(call pkg-config,$(1)) endef -TARGETS := $(static_libs) +TARGETS := $(static_blds) all: $(TARGETS) @@ -92,33 +103,32 @@ encore.cfg_vars= true || esound.cfg_vars:= AUDIOFILE_CFLAGS="$(call inc_path,audiofile,libaudiofile) -laudiofile" esound.cfg_vars+= AUDIOFILE_LIBS="$(call ld_path,audiofile,libaudiofile/.libs)" esound.cfg_params= --enable-shared=no --with-pic -esound.ldflags="-lm -lstdc++" -faac.cfg_params= --enable-shared=no -faad2.cfg_params= --enable-shared=no -fdk.cfg_vars= ./autogen.sh ; +esound.mak_vars+= CFLAGS="" +esound.ldflags=" -lm -lstdc++" +#fdk.cfg_vars= ./autogen.sh ; CFLAGS+=" -Wno-narrowing" CXXFLAGS+=" -Wno-narrowing" fdk.cfg_params= --enable-shared=no -fdk.mak_params= ; for f in $(call bld_path,fdk,/lib*/include); do ln -s include `dirname $$$$f`/fdk-aac ; done +fdk.mak_params= ; for f in $(call bld_path,fdk,/lib*/include); do ln -s . $$$$f/fdk-aac; done fftw.cfg_params= --disable-fortran --enable-shared=no ffmpeg.cfg_params= \ --enable-pthreads --enable-gpl \ --disable-ffserver --disable-ffplay \ - --enable-libfaac \ - --enable-libfdk-aac \ - --enable-libtwolame \ - --enable-libopenjpeg \ - --enable-libmp3lame \ - --enable-libvorbis \ - --enable-libtheora \ - --enable-libvpx \ - --enable-libx264 \ - --enable-libx265 \ + --disable-vaapi \ + $(call if_pkg,fdk,--enable-libfdk-aac) \ + $(call if_pkg,twolame,--enable-libtwolame) \ + $(call if_pkg,openjpeg,--enable-libopenjpeg) \ + $(call if_pkg,lame,--enable-libmp3lame) \ + $(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) \ --enable-nonfree \ --extra-cflags="\ - $(call inc_path,faad2,include) \ - $(call inc_path,faac,include) \ $(call inc_path,twolame,libtwolame) \ $(call inc_path,lame,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 inc_path,libvpx) \ @@ -130,64 +140,79 @@ ffmpeg.cfg_params= \ $(call inc_path,fdk,libSYS) \ $(call inc_path,fdk,libSYS/include)" \ --extra-cxxflags="-D__STDC_CONSTANT_MACROS" \ - --extra-libs="\ - $(call ld_path,faad2,libfaad/.libs) \ - $(call ld_path,faac,libfaac/.libs) \ + --pkg-config=true \ + --extra-libs="-Wl,--start-group \ $(call ld_path,twolame,libtwolame/.libs) \ $(call ld_path,lame,libmp3lame/.libs) \ $(call ld_path,openjpeg,bin) \ + $(call ld_path,opus,.libs) \ + $(call ld_path,libogg,lib/.libs) \ $(call ld_path,libvorbis,lib/.libs) \ $(call ld_path,libtheora,lib/.libs) \ $(call ld_path,libvpx) \ $(call ld_path,x264) \ $(call ld_path,x265) \ $(call ld_path,fdk,.libs) \ - $(EXTRA_LIBS)" $(EXTRA_FFMPEG_CFG) \ + -Wl,--end-group -lm -lstdc++ -pthread \ + $(EXTRA_LIBS)" $(FFMPEG_EXTRA_CFG) \ -a52dec.mak_params= ; cd $(call bld_path,a52dec,include); ln -sf . a52dec -a52dec.cfg_vars= CFLAGS+=" -U__FreeBSD__" -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)" -giflib.cfg_params=--enable-shared=no -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 -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 -ladspa.mak_params=; $(MAKE) -C ladspa* install DESTDIR=$(call bld_path,ladspa) -libavc1394.cfg_vars=PKG_CONFIG_PATH=$(bld_path libraw1394) -libavc1394.cflags="$(inc_path libraw1394)" -libavc1394.ldflags="$(ld_path libraw1394,src/.libs)" -libavc1394.cfg_params= --enable-shared=no -libdv.cfg_params= --disable-gtk --enable-shared=no -libiec61883.cfg_vars=PKG_CONFIG_PATH=$(bld_path libraw1394) -libiec61883.cflags="$(inc_path libraw1394)" -libiec61883.ldflags="$(ld_path libraw1394,src/.libs)" -libiec61883.cfg_params= --enable-shared=no -libjpeg.cfg_params= --enable-shared=no -libogg.cfg_params= --enable-shared=no -libraw1394.cfg_params= --enable-shared=no; ln -sf src libraw1394 -libtheora.cfg_vars=PKG_CONFIG_PATH=$(bld_path libogg):$(bld_path libvorbis) -libtheora.cflags="$(inc_path libogg,include) $(inc_path libogg,src) $(inc_path libvorbis,include)" -libtheora.ldflags="$(ld_path libvorbis,lib/.libs) $(ld_path libogg,src/.libs)" -libtheora.cfg_params= --disable-examples --enable-shared=no -libuuid.cfg_params=--enable-shared=no -libvorbis.cfg_params= --disable-oggtest --enable-shared=no -openjpeg.cfg_vars=echo "exec cmake -DBUILD_SHARED_LIBS:BOOL=OFF ." > ./configure; chmod +x ./configure; -openjpeg.mak_params= ; cd $(call bld_path,openjpeg,src/lib/openjp2); ln -sf . openjpeg-2.1 -opencv.cfg_vars=echo "exec cmake -DBUILD_SHARED_LIBS:BOOL=OFF ." > ./configure; chmod +x ./configure; -openexr.cfg_vars=LD_LIBRARY_PATH=$(call bld_path,ilmbase,usr/lib) -openexr.cfg_params=--enable-shared=no -openexr.cfg_params+=--with-ilmbase-prefix=$(call bld_path,ilmbase,usr) -speech_tools.mak_params=-j1 -twolame.cfg_params=--enable-shared=no -x264.cfg_params= --enable-static -x265.cfg_vars=echo "exec cmake source -DENABLE_SHARED=no" > ./configure; chmod +x ./configure; +cmake_config=echo "exec 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 +djbfft.cfg_vars?=echo "$(call bld_path,djbfft)" > conf-home; \ + (CFLAGS="$(CFLAGS)"; $(CFG_VARS)$(if $(CFG_VARS),; )echo "$(CC) $$$$CFLAGS") > conf-cc; \ + echo > ./configure; chmod +x ./configure; +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)" +giflib.cfg_params?=--enable-shared=no +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 +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 +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) +libavc1394.cflags?="$(call inc_path,libraw1394)" +libavc1394.ldflags?="$(call ld_path,libraw1394,src/.libs)" +libavc1394.cfg_params?= --enable-shared=no +libavc1394.mak_params?=; cd $(call bld_path,libavc1394); ln -sf ../librom1394/rom1394.h libavc1394/. +libdv.cfg_params?= --disable-gtk --enable-shared=no +libiec61883.cfg_vars?=PKG_CONFIG_PATH=$(call bld_path,libraw1394) +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 +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.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 +libvorbis.cfg_params?= --disable-oggtest --enable-shared=no +openjpeg.cfg_params?= -DBUILD_SHARED_LIBS:BOOL=OFF +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) +speech_tools.mak_params?=-j1 +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 # compile flag vars $(foreach tgt,$(TARGETS), \ @@ -209,23 +234,22 @@ else rules=$(eval $(1)) endif -$(call rules,$(call std-build,a52dec)) +$(call rules,$(call std-build,a52dec,djbfft)) +$(call rules,$(call std-build,djbfft)) $(call rules,$(call std-build,audiofile)) $(call rules,$(call std-build,encore)) $(call rules,$(call std-build,esound,audiofile)) -$(call rules,$(call std-build,faac)) -$(call rules,$(call std-build,faad2)) $(call rules,$(call std-build,fdk)) -$(call rules,$(call std-build,ffmpeg, faad2 faac fdk twolame lame openjpeg libtheora x264 x265 libvpx)) +$(call rules,$(call std-build,ffmpeg, fdk twolame lame openjpeg opus libtheora x264 x265 libvpx)) $(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,ladspa)) $(call rules,$(call std-build,lame)) -$(call rules,$(call std-build,libavc1394)) +$(call rules,$(call std-build,libavc1394,libraw1394)) $(call rules,$(call std-build,libdv)) -$(call rules,$(call std-build,libiec61883)) +$(call rules,$(call std-build,libiec61883,libraw1394)) $(call rules,$(call std-build,libjpeg)) $(call rules,$(call std-build,libogg)) $(call rules,$(call std-build,libraw1394)) @@ -237,6 +261,7 @@ $(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,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,twolame)) @@ -267,9 +292,13 @@ $(call pkg-built,festival): $(call pkg-config,festival) touch $@ clean: - for f in $(thirdparty); do rm -rf $$f*; done + for f in $(static_pkgs); do rm -rf $$f*; done rm -rf $(BLD) +install: + cp -a $(ver_mjpegtools)/mpeg2enc/mpeg2enc $(BINDIR)/. + cp -a $(ver_mjpegtools)/mplex/mplex $(BINDIR)/. + val-%: @echo $($(subst val-,,$@))