* commit '11a9320de54759340531177c9f2b1e31e6112cc2':
build: Move build-system-related helper files to a separate subdirectory
"ffbuild" directory name is used instead of "avbuild".
Merged-by: Clément Bœsch <u@pkh.me>
| ... | ... |
@@ -1,5 +1,5 @@ |
| 1 | 1 |
MAIN_MAKEFILE=1 |
| 2 |
-include config.mak |
|
| 2 |
+include ffbuild/config.mak |
|
| 3 | 3 |
|
| 4 | 4 |
vpath %.c $(SRC_PATH) |
| 5 | 5 |
vpath %.cpp $(SRC_PATH) |
| ... | ... |
@@ -66,7 +66,7 @@ SKIPHEADERS = cmdutils_common_opts.h \ |
| 66 | 66 |
all: all-yes |
| 67 | 67 |
|
| 68 | 68 |
include $(SRC_PATH)/tools/Makefile |
| 69 |
-include $(SRC_PATH)/common.mak |
|
| 69 |
+include $(SRC_PATH)/ffbuild/common.mak |
|
| 70 | 70 |
|
| 71 | 71 |
FF_EXTRALIBS := $(FFEXTRALIBS) |
| 72 | 72 |
FF_DEP_LIBS := $(DEP_LIBS) |
| ... | ... |
@@ -91,8 +91,8 @@ CONFIGURABLE_COMPONENTS = \ |
| 91 | 91 |
$(SRC_PATH)/libavcodec/bitstream_filters.c \ |
| 92 | 92 |
$(SRC_PATH)/libavformat/protocols.c \ |
| 93 | 93 |
|
| 94 |
-config.h: .config |
|
| 95 |
-.config: $(CONFIGURABLE_COMPONENTS) |
|
| 94 |
+config.h: ffbuild/.config |
|
| 95 |
+ffbuild/.config: $(CONFIGURABLE_COMPONENTS) |
|
| 96 | 96 |
@-tput bold 2>/dev/null |
| 97 | 97 |
@-printf '\nWARNING: $(?) newer than config.h, rerun configure\n\n' |
| 98 | 98 |
@-tput sgr0 2>/dev/null |
| ... | ... |
@@ -115,7 +115,7 @@ SUBDIR := $(1)/ |
| 115 | 115 |
include $(SRC_PATH)/$(1)/Makefile |
| 116 | 116 |
-include $(SRC_PATH)/$(1)/$(ARCH)/Makefile |
| 117 | 117 |
-include $(SRC_PATH)/$(1)/$(INTRINSICS)/Makefile |
| 118 |
-include $(SRC_PATH)/library.mak |
|
| 118 |
+include $(SRC_PATH)/ffbuild/library.mak |
|
| 119 | 119 |
endef |
| 120 | 120 |
|
| 121 | 121 |
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) |
| ... | ... |
@@ -142,10 +142,10 @@ $(PROGS): %$(PROGSSUF)$(EXESUF): %$(PROGSSUF)_g$(EXESUF) |
| 142 | 142 |
%$(PROGSSUF)_g$(EXESUF): %.o $(FF_DEP_LIBS) |
| 143 | 143 |
$(LD) $(LDFLAGS) $(LDEXEFLAGS) $(LD_O) $(OBJS-$*) $(FF_EXTRALIBS) |
| 144 | 144 |
|
| 145 |
-VERSION_SH = $(SRC_PATH)/version.sh |
|
| 145 |
+VERSION_SH = $(SRC_PATH)/ffbuild/version.sh |
|
| 146 | 146 |
GIT_LOG = $(SRC_PATH)/.git/logs/HEAD |
| 147 | 147 |
|
| 148 |
-.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) config.mak |
|
| 148 |
+.version: $(wildcard $(GIT_LOG)) $(VERSION_SH) ffbuild/config.mak |
|
| 149 | 149 |
.version: M=@ |
| 150 | 150 |
|
| 151 | 151 |
libavutil/ffversion.h .version: |
| ... | ... |
@@ -194,7 +194,10 @@ clean:: |
| 194 | 194 |
|
| 195 | 195 |
distclean:: |
| 196 | 196 |
$(RM) $(DISTCLEANSUFFIXES) |
| 197 |
- $(RM) config.* .config libavutil/avconfig.h .version mapfile avversion.h version.h libavutil/ffversion.h libavcodec/codec_names.h libavcodec/bsf_list.c libavformat/protocol_list.c |
|
| 197 |
+ $(RM) .version avversion.h config.asm config.h mapfile \ |
|
| 198 |
+ ffbuild/.config ffbuild/config.* libavutil/avconfig.h \ |
|
| 199 |
+ version.h libavutil/ffversion.h libavcodec/codec_names.h \ |
|
| 200 |
+ libavcodec/bsf_list.c libavformat/protocol_list.c |
|
| 198 | 201 |
ifeq ($(SRC_LINK),src) |
| 199 | 202 |
$(RM) src |
| 200 | 203 |
endif |
| 201 | 204 |
deleted file mode 100644 |
| ... | ... |
@@ -1,17 +0,0 @@ |
| 1 |
-OBJS-$(HAVE_ARMV5TE) += $(ARMV5TE-OBJS) $(ARMV5TE-OBJS-yes) |
|
| 2 |
-OBJS-$(HAVE_ARMV6) += $(ARMV6-OBJS) $(ARMV6-OBJS-yes) |
|
| 3 |
-OBJS-$(HAVE_ARMV8) += $(ARMV8-OBJS) $(ARMV8-OBJS-yes) |
|
| 4 |
-OBJS-$(HAVE_VFP) += $(VFP-OBJS) $(VFP-OBJS-yes) |
|
| 5 |
-OBJS-$(HAVE_NEON) += $(NEON-OBJS) $(NEON-OBJS-yes) |
|
| 6 |
- |
|
| 7 |
-OBJS-$(HAVE_MIPSFPU) += $(MIPSFPU-OBJS) $(MIPSFPU-OBJS-yes) |
|
| 8 |
-OBJS-$(HAVE_MIPSDSP) += $(MIPSDSP-OBJS) $(MIPSDSP-OBJS-yes) |
|
| 9 |
-OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes) |
|
| 10 |
-OBJS-$(HAVE_MSA) += $(MSA-OBJS) $(MSA-OBJS-yes) |
|
| 11 |
-OBJS-$(HAVE_MMI) += $(MMI-OBJS) $(MMI-OBJS-yes) |
|
| 12 |
- |
|
| 13 |
-OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes) |
|
| 14 |
-OBJS-$(HAVE_VSX) += $(VSX-OBJS) $(VSX-OBJS-yes) |
|
| 15 |
- |
|
| 16 |
-OBJS-$(HAVE_MMX) += $(MMX-OBJS) $(MMX-OBJS-yes) |
|
| 17 |
-OBJS-$(HAVE_YASM) += $(YASM-OBJS) $(YASM-OBJS-yes) |
| 18 | 1 |
deleted file mode 100644 |
| ... | ... |
@@ -1,168 +0,0 @@ |
| 1 |
-# |
|
| 2 |
-# common bits used by all libraries |
|
| 3 |
-# |
|
| 4 |
- |
|
| 5 |
-DEFAULT_YASMD=.dbg |
|
| 6 |
- |
|
| 7 |
-ifeq ($(DBG),1) |
|
| 8 |
-YASMD=$(DEFAULT_YASMD) |
|
| 9 |
-else |
|
| 10 |
-YASMD= |
|
| 11 |
-endif |
|
| 12 |
- |
|
| 13 |
-ifndef SUBDIR |
|
| 14 |
- |
|
| 15 |
-ifndef V |
|
| 16 |
-Q = @ |
|
| 17 |
-ECHO = printf "$(1)\t%s\n" $(2) |
|
| 18 |
-BRIEF = CC CXX OBJCC HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES |
|
| 19 |
-SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM |
|
| 20 |
- |
|
| 21 |
-MSG = $@ |
|
| 22 |
-M = @$(call ECHO,$(TAG),$@); |
|
| 23 |
-$(foreach VAR,$(BRIEF), \ |
|
| 24 |
- $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR)))) |
|
| 25 |
-$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR)))) |
|
| 26 |
-$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL)) |
|
| 27 |
-endif |
|
| 28 |
- |
|
| 29 |
-ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample |
|
| 30 |
- |
|
| 31 |
-# NASM requires -I path terminated with / |
|
| 32 |
-IFLAGS := -I. -I$(SRC_LINK)/ |
|
| 33 |
-CPPFLAGS := $(IFLAGS) $(CPPFLAGS) |
|
| 34 |
-CFLAGS += $(ECFLAGS) |
|
| 35 |
-CCFLAGS = $(CPPFLAGS) $(CFLAGS) |
|
| 36 |
-OBJCFLAGS += $(EOBJCFLAGS) |
|
| 37 |
-OBJCCFLAGS = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS) |
|
| 38 |
-ASFLAGS := $(CPPFLAGS) $(ASFLAGS) |
|
| 39 |
-CXXFLAGS := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) |
|
| 40 |
-YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm |
|
| 41 |
- |
|
| 42 |
-HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS) |
|
| 43 |
-LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS) |
|
| 44 |
- |
|
| 45 |
-define COMPILE |
|
| 46 |
- $(call $(1)DEP,$(1)) |
|
| 47 |
- $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) |
|
| 48 |
-endef |
|
| 49 |
- |
|
| 50 |
-COMPILE_C = $(call COMPILE,CC) |
|
| 51 |
-COMPILE_CXX = $(call COMPILE,CXX) |
|
| 52 |
-COMPILE_S = $(call COMPILE,AS) |
|
| 53 |
-COMPILE_M = $(call COMPILE,OBJCC) |
|
| 54 |
-COMPILE_HOSTC = $(call COMPILE,HOSTCC) |
|
| 55 |
- |
|
| 56 |
-%.o: %.c |
|
| 57 |
- $(COMPILE_C) |
|
| 58 |
- |
|
| 59 |
-%.o: %.cpp |
|
| 60 |
- $(COMPILE_CXX) |
|
| 61 |
- |
|
| 62 |
-%.o: %.m |
|
| 63 |
- $(COMPILE_M) |
|
| 64 |
- |
|
| 65 |
-%.s: %.c |
|
| 66 |
- $(CC) $(CCFLAGS) -S -o $@ $< |
|
| 67 |
- |
|
| 68 |
-%.o: %.S |
|
| 69 |
- $(COMPILE_S) |
|
| 70 |
- |
|
| 71 |
-%_host.o: %.c |
|
| 72 |
- $(COMPILE_HOSTC) |
|
| 73 |
- |
|
| 74 |
-%$(DEFAULT_YASMD).asm: %.asm |
|
| 75 |
- $(DEPYASM) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.asm=.d) |
|
| 76 |
- $(YASM) $(YASMFLAGS) -I $(<D)/ -e $< | sed '/^%/d;/^$$/d;' > $@ |
|
| 77 |
- |
|
| 78 |
-%.o: %.asm |
|
| 79 |
- $(DEPYASM) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.o=.d) |
|
| 80 |
- $(YASM) $(YASMFLAGS) -I $(<D)/ -o $@ $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) |
|
| 81 |
- -$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@) |
|
| 82 |
- |
|
| 83 |
-%.o: %.rc |
|
| 84 |
- $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $< |
|
| 85 |
- |
|
| 86 |
-%.i: %.c |
|
| 87 |
- $(CC) $(CCFLAGS) $(CC_E) $< |
|
| 88 |
- |
|
| 89 |
-%.h.c: |
|
| 90 |
- $(Q)echo '#include "$*.h"' >$@ |
|
| 91 |
- |
|
| 92 |
-%.c %.h %.ver: TAG = GEN |
|
| 93 |
- |
|
| 94 |
-# Dummy rule to stop make trying to rebuild removed or renamed headers |
|
| 95 |
-%.h: |
|
| 96 |
- @: |
|
| 97 |
- |
|
| 98 |
-# Disable suffix rules. Most of the builtin rules are suffix rules, |
|
| 99 |
-# so this saves some time on slow systems. |
|
| 100 |
-.SUFFIXES: |
|
| 101 |
- |
|
| 102 |
-# Do not delete intermediate files from chains of implicit rules |
|
| 103 |
-$(OBJS): |
|
| 104 |
-endif |
|
| 105 |
- |
|
| 106 |
-include $(SRC_PATH)/arch.mak |
|
| 107 |
- |
|
| 108 |
-OBJS += $(OBJS-yes) |
|
| 109 |
-SLIBOBJS += $(SLIBOBJS-yes) |
|
| 110 |
-FFLIBS := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS) |
|
| 111 |
-TESTPROGS += $(TESTPROGS-yes) |
|
| 112 |
- |
|
| 113 |
-LDLIBS = $(FFLIBS:%=%$(BUILDSUF)) |
|
| 114 |
-FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS) |
|
| 115 |
- |
|
| 116 |
-OBJS := $(sort $(OBJS:%=$(SUBDIR)%)) |
|
| 117 |
-SLIBOBJS := $(sort $(SLIBOBJS:%=$(SUBDIR)%)) |
|
| 118 |
-TESTOBJS := $(TESTOBJS:%=$(SUBDIR)tests/%) $(TESTPROGS:%=$(SUBDIR)tests/%.o) |
|
| 119 |
-TESTPROGS := $(TESTPROGS:%=$(SUBDIR)tests/%$(EXESUF)) |
|
| 120 |
-HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o) |
|
| 121 |
-HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF)) |
|
| 122 |
-TOOLS += $(TOOLS-yes) |
|
| 123 |
-TOOLOBJS := $(TOOLS:%=tools/%.o) |
|
| 124 |
-TOOLS := $(TOOLS:%=tools/%$(EXESUF)) |
|
| 125 |
-HEADERS += $(HEADERS-yes) |
|
| 126 |
- |
|
| 127 |
-PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME)) |
|
| 128 |
-DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S))) |
|
| 129 |
-STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib))) |
|
| 130 |
- |
|
| 131 |
-SRC_DIR := $(SRC_PATH)/lib$(NAME) |
|
| 132 |
-ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h)) |
|
| 133 |
-SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-) |
|
| 134 |
-SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%) |
|
| 135 |
-HOBJS = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o)) |
|
| 136 |
-$(HOBJS): CCFLAGS += $(CFLAGS_HEADERS) |
|
| 137 |
-checkheaders: $(HOBJS) |
|
| 138 |
-.SECONDARY: $(HOBJS:.o=.c) |
|
| 139 |
- |
|
| 140 |
-alltools: $(TOOLS) |
|
| 141 |
- |
|
| 142 |
-$(HOSTOBJS): %.o: %.c |
|
| 143 |
- $(COMPILE_HOSTC) |
|
| 144 |
- |
|
| 145 |
-$(HOSTPROGS): %$(HOSTEXESUF): %.o |
|
| 146 |
- $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS) |
|
| 147 |
- |
|
| 148 |
-$(OBJS): | $(sort $(dir $(OBJS))) |
|
| 149 |
-$(HOBJS): | $(sort $(dir $(HOBJS))) |
|
| 150 |
-$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS))) |
|
| 151 |
-$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS))) |
|
| 152 |
-$(TESTOBJS): | $(sort $(dir $(TESTOBJS))) |
|
| 153 |
-$(TOOLOBJS): | tools |
|
| 154 |
- |
|
| 155 |
-OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS)) |
|
| 156 |
- |
|
| 157 |
-CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.ho *$(DEFAULT_YASMD).asm |
|
| 158 |
-DISTCLEANSUFFIXES = *.pc |
|
| 159 |
-LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a |
|
| 160 |
- |
|
| 161 |
-define RULES |
|
| 162 |
-clean:: |
|
| 163 |
- $(RM) $(HOSTPROGS) $(TESTPROGS) $(TOOLS) |
|
| 164 |
-endef |
|
| 165 |
- |
|
| 166 |
-$(eval $(RULES)) |
|
| 167 |
- |
|
| 168 |
--include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d)) $(OBJS:.o=$(DEFAULT_YASMD).d) |
| ... | ... |
@@ -77,7 +77,7 @@ Help options: |
| 77 | 77 |
--list-filters show all available filters |
| 78 | 78 |
|
| 79 | 79 |
Standard options: |
| 80 |
- --logfile=FILE log tests and output to FILE [config.log] |
|
| 80 |
+ --logfile=FILE log tests and output to FILE [ffbuild/config.log] |
|
| 81 | 81 |
--disable-logging do not log configure debug information |
| 82 | 82 |
--fatal-warnings fail if any configure warning is generated |
| 83 | 83 |
--prefix=PREFIX install in PREFIX [$prefix_default] |
| ... | ... |
@@ -3224,7 +3224,7 @@ doc_deps_any="manpages htmlpages podpages txtpages" |
| 3224 | 3224 |
|
| 3225 | 3225 |
# default parameters |
| 3226 | 3226 |
|
| 3227 |
-logfile="config.log" |
|
| 3227 |
+logfile="ffbuild/config.log" |
|
| 3228 | 3228 |
|
| 3229 | 3229 |
# installation paths |
| 3230 | 3230 |
prefix_default="/usr/local" |
| ... | ... |
@@ -3581,6 +3581,7 @@ disable_components(){
|
| 3581 | 3581 |
|
| 3582 | 3582 |
map 'disable_components $v' $LIBRARY_LIST |
| 3583 | 3583 |
|
| 3584 |
+mkdir -p ffbuild |
|
| 3584 | 3585 |
echo "# $0 $FFMPEG_CONFIGURATION" > $logfile |
| 3585 | 3586 |
set >> $logfile |
| 3586 | 3587 |
|
| ... | ... |
@@ -5152,7 +5153,7 @@ esc(){
|
| 5152 | 5152 |
echo "$*" | sed 's/%/%25/g;s/:/%3a/g' |
| 5153 | 5153 |
} |
| 5154 | 5154 |
|
| 5155 |
-echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" >config.fate |
|
| 5155 |
+echo "config:$arch:$subarch:$cpu:$target_os:$(esc $cc_ident):$(esc $FFMPEG_CONFIGURATION)" > ffbuild/config.fate |
|
| 5156 | 5156 |
|
| 5157 | 5157 |
check_cpp_condition stdlib.h "defined(__PIC__) || defined(__pic__) || defined(PIC)" && enable_weak pic |
| 5158 | 5158 |
|
| ... | ... |
@@ -6619,9 +6620,9 @@ test -e Makefile || echo "include $source_path/Makefile" > Makefile |
| 6619 | 6619 |
|
| 6620 | 6620 |
enabled stripping || strip="echo skipping strip" |
| 6621 | 6621 |
|
| 6622 |
-config_files="$TMPH config.mak doc/config.texi" |
|
| 6622 |
+config_files="$TMPH ffbuild/config.mak doc/config.texi" |
|
| 6623 | 6623 |
|
| 6624 |
-cat > config.mak <<EOF |
|
| 6624 |
+cat > ffbuild/config.mak <<EOF |
|
| 6625 | 6625 |
# Automatically generated by configure - do not modify! |
| 6626 | 6626 |
ifndef FFMPEG_CONFIG_MAK |
| 6627 | 6627 |
FFMPEG_CONFIG_MAK=1 |
| ... | ... |
@@ -6755,18 +6756,18 @@ get_version(){
|
| 6755 | 6755 |
eval $(awk "/#define ${name}_VERSION_M/ { print \$2 \"=\" \$3 }" "$file")
|
| 6756 | 6756 |
enabled raise_major && eval ${name}_VERSION_MAJOR=$((${name}_VERSION_MAJOR+100))
|
| 6757 | 6757 |
eval ${name}_VERSION=\$${name}_VERSION_MAJOR.\$${name}_VERSION_MINOR.\$${name}_VERSION_MICRO
|
| 6758 |
- eval echo "${lcname}_VERSION=\$${name}_VERSION" >> config.mak
|
|
| 6759 |
- eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> config.mak
|
|
| 6760 |
- eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> config.mak
|
|
| 6758 |
+ eval echo "${lcname}_VERSION=\$${name}_VERSION" >> ffbuild/config.mak
|
|
| 6759 |
+ eval echo "${lcname}_VERSION_MAJOR=\$${name}_VERSION_MAJOR" >> ffbuild/config.mak
|
|
| 6760 |
+ eval echo "${lcname}_VERSION_MINOR=\$${name}_VERSION_MINOR" >> ffbuild/config.mak
|
|
| 6761 | 6761 |
} |
| 6762 | 6762 |
|
| 6763 | 6763 |
map 'get_version $v' $LIBRARY_LIST |
| 6764 | 6764 |
|
| 6765 |
-map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> config.mak' $LIBRARY_LIST
|
|
| 6765 |
+map 'eval echo "${v}_FFLIBS=\$${v}_deps" >> ffbuild/config.mak' $LIBRARY_LIST
|
|
| 6766 | 6766 |
|
| 6767 | 6767 |
print_program_extralibs(){
|
| 6768 | 6768 |
eval "program_extralibs=\$${1}_extralibs"
|
| 6769 |
- eval echo "EXTRALIBS-${1}=${program_extralibs}" >> config.mak
|
|
| 6769 |
+ eval echo "EXTRALIBS-${1}=${program_extralibs}" >> ffbuild/config.mak
|
|
| 6770 | 6770 |
} |
| 6771 | 6771 |
|
| 6772 | 6772 |
map 'print_program_extralibs $v' $PROGRAM_LIST |
| ... | ... |
@@ -6816,11 +6817,11 @@ print_config CONFIG_ "$config_files" $CONFIG_LIST \ |
| 6816 | 6816 |
$ALL_COMPONENTS \ |
| 6817 | 6817 |
|
| 6818 | 6818 |
echo "#endif /* FFMPEG_CONFIG_H */" >> $TMPH |
| 6819 |
-echo "endif # FFMPEG_CONFIG_MAK" >> config.mak |
|
| 6819 |
+echo "endif # FFMPEG_CONFIG_MAK" >> ffbuild/config.mak |
|
| 6820 | 6820 |
|
| 6821 | 6821 |
# Do not overwrite an unchanged config.h to avoid superfluous rebuilds. |
| 6822 | 6822 |
cp_if_changed $TMPH config.h |
| 6823 |
-touch .config |
|
| 6823 |
+touch ffbuild/.config |
|
| 6824 | 6824 |
|
| 6825 | 6825 |
enabled yasm && cp_if_changed $TMPASM config.asm |
| 6826 | 6826 |
|
| ... | ... |
@@ -128,7 +128,7 @@ $(DOC_EXAMPLES:%$(EXESUF)=%.o): | doc/examples |
| 128 | 128 |
OBJDIRS += doc/examples |
| 129 | 129 |
|
| 130 | 130 |
DOXY_INPUT = $(INSTHEADERS) $(DOC_EXAMPLES:%$(EXESUF)=%.c) $(LIB_EXAMPLES:%$(EXESUF)=%.c) |
| 131 |
-DOXY_INPUT_DEPS = $(addprefix $(SRC_PATH)/, $(DOXY_INPUT)) config.mak |
|
| 131 |
+DOXY_INPUT_DEPS = $(addprefix $(SRC_PATH)/, $(DOXY_INPUT)) ffbuild/config.mak |
|
| 132 | 132 |
|
| 133 | 133 |
doc/doxy/html: TAG = DOXY |
| 134 | 134 |
doc/doxy/html: $(SRC_PATH)/doc/Doxyfile $(SRC_PATH)/doc/doxy-wrapper.sh $(DOXY_INPUT_DEPS) |
| ... | ... |
@@ -38,14 +38,14 @@ the build system and the C: |
| 38 | 38 |
|
| 39 | 39 |
--- after running configure --- |
| 40 | 40 |
|
| 41 |
- $ grep FOOBAR config.mak |
|
| 41 |
+ $ grep FOOBAR ffbuild/config.mak |
|
| 42 | 42 |
CONFIG_FOOBAR_FILTER=yes |
| 43 | 43 |
$ grep FOOBAR config.h |
| 44 | 44 |
#define CONFIG_FOOBAR_FILTER 1 |
| 45 | 45 |
|
| 46 |
-CONFIG_FOOBAR_FILTER=yes from the config.mak is later used to enable the filter in |
|
| 47 |
-libavfilter/Makefile and CONFIG_FOOBAR_FILTER=1 from the config.h will be used |
|
| 48 |
-for registering the filter in libavfilter/allfilters.c. |
|
| 46 |
+CONFIG_FOOBAR_FILTER=yes from the ffbuild/config.mak is later used to enable |
|
| 47 |
+the filter in libavfilter/Makefile and CONFIG_FOOBAR_FILTER=1 from the config.h |
|
| 48 |
+will be used for registering the filter in libavfilter/allfilters.c. |
|
| 49 | 49 |
|
| 50 | 50 |
Filter code layout |
| 51 | 51 |
================== |
| 0 | 4 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,17 @@ |
| 0 |
+OBJS-$(HAVE_ARMV5TE) += $(ARMV5TE-OBJS) $(ARMV5TE-OBJS-yes) |
|
| 1 |
+OBJS-$(HAVE_ARMV6) += $(ARMV6-OBJS) $(ARMV6-OBJS-yes) |
|
| 2 |
+OBJS-$(HAVE_ARMV8) += $(ARMV8-OBJS) $(ARMV8-OBJS-yes) |
|
| 3 |
+OBJS-$(HAVE_VFP) += $(VFP-OBJS) $(VFP-OBJS-yes) |
|
| 4 |
+OBJS-$(HAVE_NEON) += $(NEON-OBJS) $(NEON-OBJS-yes) |
|
| 5 |
+ |
|
| 6 |
+OBJS-$(HAVE_MIPSFPU) += $(MIPSFPU-OBJS) $(MIPSFPU-OBJS-yes) |
|
| 7 |
+OBJS-$(HAVE_MIPSDSP) += $(MIPSDSP-OBJS) $(MIPSDSP-OBJS-yes) |
|
| 8 |
+OBJS-$(HAVE_MIPSDSPR2) += $(MIPSDSPR2-OBJS) $(MIPSDSPR2-OBJS-yes) |
|
| 9 |
+OBJS-$(HAVE_MSA) += $(MSA-OBJS) $(MSA-OBJS-yes) |
|
| 10 |
+OBJS-$(HAVE_MMI) += $(MMI-OBJS) $(MMI-OBJS-yes) |
|
| 11 |
+ |
|
| 12 |
+OBJS-$(HAVE_ALTIVEC) += $(ALTIVEC-OBJS) $(ALTIVEC-OBJS-yes) |
|
| 13 |
+OBJS-$(HAVE_VSX) += $(VSX-OBJS) $(VSX-OBJS-yes) |
|
| 14 |
+ |
|
| 15 |
+OBJS-$(HAVE_MMX) += $(MMX-OBJS) $(MMX-OBJS-yes) |
|
| 16 |
+OBJS-$(HAVE_YASM) += $(YASM-OBJS) $(YASM-OBJS-yes) |
| 0 | 17 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,168 @@ |
| 0 |
+# |
|
| 1 |
+# common bits used by all libraries |
|
| 2 |
+# |
|
| 3 |
+ |
|
| 4 |
+DEFAULT_YASMD=.dbg |
|
| 5 |
+ |
|
| 6 |
+ifeq ($(DBG),1) |
|
| 7 |
+YASMD=$(DEFAULT_YASMD) |
|
| 8 |
+else |
|
| 9 |
+YASMD= |
|
| 10 |
+endif |
|
| 11 |
+ |
|
| 12 |
+ifndef SUBDIR |
|
| 13 |
+ |
|
| 14 |
+ifndef V |
|
| 15 |
+Q = @ |
|
| 16 |
+ECHO = printf "$(1)\t%s\n" $(2) |
|
| 17 |
+BRIEF = CC CXX OBJCC HOSTCC HOSTLD AS YASM AR LD STRIP CP WINDRES |
|
| 18 |
+SILENT = DEPCC DEPHOSTCC DEPAS DEPYASM RANLIB RM |
|
| 19 |
+ |
|
| 20 |
+MSG = $@ |
|
| 21 |
+M = @$(call ECHO,$(TAG),$@); |
|
| 22 |
+$(foreach VAR,$(BRIEF), \ |
|
| 23 |
+ $(eval override $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR)))) |
|
| 24 |
+$(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR)))) |
|
| 25 |
+$(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL)) |
|
| 26 |
+endif |
|
| 27 |
+ |
|
| 28 |
+ALLFFLIBS = avcodec avdevice avfilter avformat avresample avutil postproc swscale swresample |
|
| 29 |
+ |
|
| 30 |
+# NASM requires -I path terminated with / |
|
| 31 |
+IFLAGS := -I. -I$(SRC_LINK)/ |
|
| 32 |
+CPPFLAGS := $(IFLAGS) $(CPPFLAGS) |
|
| 33 |
+CFLAGS += $(ECFLAGS) |
|
| 34 |
+CCFLAGS = $(CPPFLAGS) $(CFLAGS) |
|
| 35 |
+OBJCFLAGS += $(EOBJCFLAGS) |
|
| 36 |
+OBJCCFLAGS = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS) |
|
| 37 |
+ASFLAGS := $(CPPFLAGS) $(ASFLAGS) |
|
| 38 |
+CXXFLAGS := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) |
|
| 39 |
+YASMFLAGS += $(IFLAGS:%=%/) -Pconfig.asm |
|
| 40 |
+ |
|
| 41 |
+HOSTCCFLAGS = $(IFLAGS) $(HOSTCPPFLAGS) $(HOSTCFLAGS) |
|
| 42 |
+LDFLAGS := $(ALLFFLIBS:%=$(LD_PATH)lib%) $(LDFLAGS) |
|
| 43 |
+ |
|
| 44 |
+define COMPILE |
|
| 45 |
+ $(call $(1)DEP,$(1)) |
|
| 46 |
+ $($(1)) $($(1)FLAGS) $($(1)_DEPFLAGS) $($(1)_C) $($(1)_O) $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) |
|
| 47 |
+endef |
|
| 48 |
+ |
|
| 49 |
+COMPILE_C = $(call COMPILE,CC) |
|
| 50 |
+COMPILE_CXX = $(call COMPILE,CXX) |
|
| 51 |
+COMPILE_S = $(call COMPILE,AS) |
|
| 52 |
+COMPILE_M = $(call COMPILE,OBJCC) |
|
| 53 |
+COMPILE_HOSTC = $(call COMPILE,HOSTCC) |
|
| 54 |
+ |
|
| 55 |
+%.o: %.c |
|
| 56 |
+ $(COMPILE_C) |
|
| 57 |
+ |
|
| 58 |
+%.o: %.cpp |
|
| 59 |
+ $(COMPILE_CXX) |
|
| 60 |
+ |
|
| 61 |
+%.o: %.m |
|
| 62 |
+ $(COMPILE_M) |
|
| 63 |
+ |
|
| 64 |
+%.s: %.c |
|
| 65 |
+ $(CC) $(CCFLAGS) -S -o $@ $< |
|
| 66 |
+ |
|
| 67 |
+%.o: %.S |
|
| 68 |
+ $(COMPILE_S) |
|
| 69 |
+ |
|
| 70 |
+%_host.o: %.c |
|
| 71 |
+ $(COMPILE_HOSTC) |
|
| 72 |
+ |
|
| 73 |
+%$(DEFAULT_YASMD).asm: %.asm |
|
| 74 |
+ $(DEPYASM) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.asm=.d) |
|
| 75 |
+ $(YASM) $(YASMFLAGS) -I $(<D)/ -e $< | sed '/^%/d;/^$$/d;' > $@ |
|
| 76 |
+ |
|
| 77 |
+%.o: %.asm |
|
| 78 |
+ $(DEPYASM) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.o=.d) |
|
| 79 |
+ $(YASM) $(YASMFLAGS) -I $(<D)/ -o $@ $(patsubst $(SRC_PATH)/%,$(SRC_LINK)/%,$<) |
|
| 80 |
+ -$(if $(ASMSTRIPFLAGS), $(STRIP) $(ASMSTRIPFLAGS) $@) |
|
| 81 |
+ |
|
| 82 |
+%.o: %.rc |
|
| 83 |
+ $(WINDRES) $(IFLAGS) --preprocessor "$(DEPWINDRES) -E -xc-header -DRC_INVOKED $(CC_DEPFLAGS)" -o $@ $< |
|
| 84 |
+ |
|
| 85 |
+%.i: %.c |
|
| 86 |
+ $(CC) $(CCFLAGS) $(CC_E) $< |
|
| 87 |
+ |
|
| 88 |
+%.h.c: |
|
| 89 |
+ $(Q)echo '#include "$*.h"' >$@ |
|
| 90 |
+ |
|
| 91 |
+%.c %.h %.ver: TAG = GEN |
|
| 92 |
+ |
|
| 93 |
+# Dummy rule to stop make trying to rebuild removed or renamed headers |
|
| 94 |
+%.h: |
|
| 95 |
+ @: |
|
| 96 |
+ |
|
| 97 |
+# Disable suffix rules. Most of the builtin rules are suffix rules, |
|
| 98 |
+# so this saves some time on slow systems. |
|
| 99 |
+.SUFFIXES: |
|
| 100 |
+ |
|
| 101 |
+# Do not delete intermediate files from chains of implicit rules |
|
| 102 |
+$(OBJS): |
|
| 103 |
+endif |
|
| 104 |
+ |
|
| 105 |
+include $(SRC_PATH)/ffbuild/arch.mak |
|
| 106 |
+ |
|
| 107 |
+OBJS += $(OBJS-yes) |
|
| 108 |
+SLIBOBJS += $(SLIBOBJS-yes) |
|
| 109 |
+FFLIBS := $($(NAME)_FFLIBS) $(FFLIBS-yes) $(FFLIBS) |
|
| 110 |
+TESTPROGS += $(TESTPROGS-yes) |
|
| 111 |
+ |
|
| 112 |
+LDLIBS = $(FFLIBS:%=%$(BUILDSUF)) |
|
| 113 |
+FFEXTRALIBS := $(LDLIBS:%=$(LD_LIB)) $(EXTRALIBS) |
|
| 114 |
+ |
|
| 115 |
+OBJS := $(sort $(OBJS:%=$(SUBDIR)%)) |
|
| 116 |
+SLIBOBJS := $(sort $(SLIBOBJS:%=$(SUBDIR)%)) |
|
| 117 |
+TESTOBJS := $(TESTOBJS:%=$(SUBDIR)tests/%) $(TESTPROGS:%=$(SUBDIR)tests/%.o) |
|
| 118 |
+TESTPROGS := $(TESTPROGS:%=$(SUBDIR)tests/%$(EXESUF)) |
|
| 119 |
+HOSTOBJS := $(HOSTPROGS:%=$(SUBDIR)%.o) |
|
| 120 |
+HOSTPROGS := $(HOSTPROGS:%=$(SUBDIR)%$(HOSTEXESUF)) |
|
| 121 |
+TOOLS += $(TOOLS-yes) |
|
| 122 |
+TOOLOBJS := $(TOOLS:%=tools/%.o) |
|
| 123 |
+TOOLS := $(TOOLS:%=tools/%$(EXESUF)) |
|
| 124 |
+HEADERS += $(HEADERS-yes) |
|
| 125 |
+ |
|
| 126 |
+PATH_LIBNAME = $(foreach NAME,$(1),lib$(NAME)/$($(2)LIBNAME)) |
|
| 127 |
+DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib),$(CONFIG_SHARED:yes=S))) |
|
| 128 |
+STATIC_DEP_LIBS := $(foreach lib,$(FFLIBS),$(call PATH_LIBNAME,$(lib))) |
|
| 129 |
+ |
|
| 130 |
+SRC_DIR := $(SRC_PATH)/lib$(NAME) |
|
| 131 |
+ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)/$(ARCH)/*.h)) |
|
| 132 |
+SKIPHEADERS += $(ARCH_HEADERS:%=$(ARCH)/%) $(SKIPHEADERS-) |
|
| 133 |
+SKIPHEADERS := $(SKIPHEADERS:%=$(SUBDIR)%) |
|
| 134 |
+HOBJS = $(filter-out $(SKIPHEADERS:.h=.h.o),$(ALLHEADERS:.h=.h.o)) |
|
| 135 |
+$(HOBJS): CCFLAGS += $(CFLAGS_HEADERS) |
|
| 136 |
+checkheaders: $(HOBJS) |
|
| 137 |
+.SECONDARY: $(HOBJS:.o=.c) |
|
| 138 |
+ |
|
| 139 |
+alltools: $(TOOLS) |
|
| 140 |
+ |
|
| 141 |
+$(HOSTOBJS): %.o: %.c |
|
| 142 |
+ $(COMPILE_HOSTC) |
|
| 143 |
+ |
|
| 144 |
+$(HOSTPROGS): %$(HOSTEXESUF): %.o |
|
| 145 |
+ $(HOSTLD) $(HOSTLDFLAGS) $(HOSTLD_O) $^ $(HOSTEXTRALIBS) |
|
| 146 |
+ |
|
| 147 |
+$(OBJS): | $(sort $(dir $(OBJS))) |
|
| 148 |
+$(HOBJS): | $(sort $(dir $(HOBJS))) |
|
| 149 |
+$(HOSTOBJS): | $(sort $(dir $(HOSTOBJS))) |
|
| 150 |
+$(SLIBOBJS): | $(sort $(dir $(SLIBOBJS))) |
|
| 151 |
+$(TESTOBJS): | $(sort $(dir $(TESTOBJS))) |
|
| 152 |
+$(TOOLOBJS): | tools |
|
| 153 |
+ |
|
| 154 |
+OBJDIRS := $(OBJDIRS) $(dir $(OBJS) $(HOBJS) $(HOSTOBJS) $(SLIBOBJS) $(TESTOBJS)) |
|
| 155 |
+ |
|
| 156 |
+CLEANSUFFIXES = *.d *.o *~ *.h.c *.gcda *.gcno *.map *.ver *.ho *$(DEFAULT_YASMD).asm |
|
| 157 |
+DISTCLEANSUFFIXES = *.pc |
|
| 158 |
+LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a |
|
| 159 |
+ |
|
| 160 |
+define RULES |
|
| 161 |
+clean:: |
|
| 162 |
+ $(RM) $(HOSTPROGS) $(TESTPROGS) $(TOOLS) |
|
| 163 |
+endef |
|
| 164 |
+ |
|
| 165 |
+$(eval $(RULES)) |
|
| 166 |
+ |
|
| 167 |
+-include $(wildcard $(OBJS:.o=.d) $(HOSTOBJS:.o=.d) $(TESTOBJS:.o=.d) $(HOBJS:.o=.d) $(SLIBOBJS:.o=.d)) $(OBJS:.o=$(DEFAULT_YASMD).d) |
| 0 | 168 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,98 @@ |
| 0 |
+include $(SRC_PATH)/ffbuild/common.mak |
|
| 1 |
+ |
|
| 2 |
+LIBVERSION := $(lib$(NAME)_VERSION) |
|
| 3 |
+LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) |
|
| 4 |
+LIBMINOR := $(lib$(NAME)_VERSION_MINOR) |
|
| 5 |
+INCINSTDIR := $(INCDIR)/lib$(NAME) |
|
| 6 |
+ |
|
| 7 |
+INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%) |
|
| 8 |
+ |
|
| 9 |
+all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) |
|
| 10 |
+all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) |
|
| 11 |
+ |
|
| 12 |
+LIBOBJS := $(OBJS) $(SUBDIR)%.h.o $(TESTOBJS) |
|
| 13 |
+$(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i): CPPFLAGS += -DHAVE_AV_CONFIG_H |
|
| 14 |
+$(TESTOBJS) $(TESTOBJS:.o=.i): CFLAGS += -Umain |
|
| 15 |
+ |
|
| 16 |
+$(SUBDIR)$(LIBNAME): $(OBJS) |
|
| 17 |
+ $(RM) $@ |
|
| 18 |
+ $(AR) $(ARFLAGS) $(AR_O) $^ |
|
| 19 |
+ $(RANLIB) $@ |
|
| 20 |
+ |
|
| 21 |
+install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig |
|
| 22 |
+ |
|
| 23 |
+install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static |
|
| 24 |
+install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared |
|
| 25 |
+ |
|
| 26 |
+define RULES |
|
| 27 |
+$(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB)) |
|
| 28 |
+$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) |
|
| 29 |
+ |
|
| 30 |
+$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o |
|
| 31 |
+ $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) |
|
| 32 |
+ |
|
| 33 |
+$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS) |
|
| 34 |
+ $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@ |
|
| 35 |
+ |
|
| 36 |
+$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) |
|
| 37 |
+ $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |
|
| 38 |
+ |
|
| 39 |
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver |
|
| 40 |
+ $(SLIB_CREATE_DEF_CMD) |
|
| 41 |
+ $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDLIBFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS) |
|
| 42 |
+ $(SLIB_EXTRA_CMD) |
|
| 43 |
+ |
|
| 44 |
+ifdef SUBDIR |
|
| 45 |
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS) |
|
| 46 |
+endif |
|
| 47 |
+ |
|
| 48 |
+clean:: |
|
| 49 |
+ $(RM) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \ |
|
| 50 |
+ $(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) $(CLEANSUFFIXES:%=$(SUBDIR)tests/%) |
|
| 51 |
+ |
|
| 52 |
+distclean:: clean |
|
| 53 |
+ $(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) \ |
|
| 54 |
+ $(DISTCLEANSUFFIXES:%=$(SUBDIR)tests/%) |
|
| 55 |
+ |
|
| 56 |
+install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME) |
|
| 57 |
+ $(Q)mkdir -p "$(SHLIBDIR)" |
|
| 58 |
+ $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
|
| 59 |
+ $$(STRIP) "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
|
| 60 |
+ $(Q)$(foreach F,$(SLIB_INSTALL_LINKS),(cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F));) |
|
| 61 |
+ $(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)") |
|
| 62 |
+ $(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)") |
|
| 63 |
+ $(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)") |
|
| 64 |
+ |
|
| 65 |
+install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME) |
|
| 66 |
+ $(Q)mkdir -p "$(LIBDIR)" |
|
| 67 |
+ $$(INSTALL) -m 644 $$< "$(LIBDIR)" |
|
| 68 |
+ $(LIB_INSTALL_EXTRA_CMD) |
|
| 69 |
+ |
|
| 70 |
+install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS)) |
|
| 71 |
+ $(Q)mkdir -p "$(INCINSTDIR)" |
|
| 72 |
+ $$(INSTALL) -m 644 $$^ "$(INCINSTDIR)" |
|
| 73 |
+ |
|
| 74 |
+install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(FULLNAME).pc |
|
| 75 |
+ $(Q)mkdir -p "$(PKGCONFIGDIR)" |
|
| 76 |
+ $$(INSTALL) -m 644 $$^ "$(PKGCONFIGDIR)" |
|
| 77 |
+ |
|
| 78 |
+uninstall-libs:: |
|
| 79 |
+ -$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ |
|
| 80 |
+ "$(SHLIBDIR)/$(SLIBNAME)" \ |
|
| 81 |
+ "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" |
|
| 82 |
+ -$(RM) $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)/%") |
|
| 83 |
+ -$(RM) $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)/%") |
|
| 84 |
+ -$(RM) "$(LIBDIR)/$(LIBNAME)" |
|
| 85 |
+ |
|
| 86 |
+uninstall-headers:: |
|
| 87 |
+ $(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS) $(BUILT_HEADERS)) |
|
| 88 |
+ $(RM) "$(PKGCONFIGDIR)/lib$(FULLNAME).pc" |
|
| 89 |
+ -rmdir "$(INCINSTDIR)" |
|
| 90 |
+endef |
|
| 91 |
+ |
|
| 92 |
+$(eval $(RULES)) |
|
| 93 |
+ |
|
| 94 |
+$(TOOLS): $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME) |
|
| 95 |
+$(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME) |
|
| 96 |
+ |
|
| 97 |
+testprogs: $(TESTPROGS) |
| 0 | 98 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,63 @@ |
| 0 |
+#!/bin/sh |
|
| 1 |
+ |
|
| 2 |
+# Usage: version.sh <ffmpeg-root-dir> <output-version.h> <extra-version> |
|
| 3 |
+ |
|
| 4 |
+# check for git short hash |
|
| 5 |
+if ! test "$revision"; then |
|
| 6 |
+ if (cd "$1" && grep git RELEASE 2> /dev/null >/dev/null) ; then |
|
| 7 |
+ revision=$(cd "$1" && git describe --tags --match N 2> /dev/null) |
|
| 8 |
+ else |
|
| 9 |
+ revision=$(cd "$1" && git describe --tags --always 2> /dev/null) |
|
| 10 |
+ fi |
|
| 11 |
+fi |
|
| 12 |
+ |
|
| 13 |
+# Shallow Git clones (--depth) do not have the N tag: |
|
| 14 |
+# use 'git-YYYY-MM-DD-hhhhhhh'. |
|
| 15 |
+test "$revision" || revision=$(cd "$1" && |
|
| 16 |
+ git log -1 --pretty=format:"git-%cd-%h" --date=short 2> /dev/null) |
|
| 17 |
+ |
|
| 18 |
+# Snapshots from gitweb are in a directory called ffmpeg-hhhhhhh or |
|
| 19 |
+# ffmpeg-HEAD-hhhhhhh. |
|
| 20 |
+if [ -z "$revision" ]; then |
|
| 21 |
+ srcdir=$(cd "$1" && pwd) |
|
| 22 |
+ case "$srcdir" in |
|
| 23 |
+ */ffmpeg-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]) |
|
| 24 |
+ git_hash="${srcdir##*-}";;
|
|
| 25 |
+ */ffmpeg-HEAD-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]) |
|
| 26 |
+ git_hash="${srcdir##*-}";;
|
|
| 27 |
+ esac |
|
| 28 |
+fi |
|
| 29 |
+ |
|
| 30 |
+# no revision number found |
|
| 31 |
+test "$revision" || revision=$(cd "$1" && cat RELEASE 2> /dev/null) |
|
| 32 |
+ |
|
| 33 |
+# Append the Git hash if we have one |
|
| 34 |
+test "$revision" && test "$git_hash" && revision="$revision-$git_hash" |
|
| 35 |
+ |
|
| 36 |
+# releases extract the version number from the VERSION file |
|
| 37 |
+version=$(cd "$1" && cat VERSION 2> /dev/null) |
|
| 38 |
+test "$version" || version=$revision |
|
| 39 |
+ |
|
| 40 |
+test -n "$3" && version=$version-$3 |
|
| 41 |
+ |
|
| 42 |
+if [ -z "$2" ]; then |
|
| 43 |
+ echo "$version" |
|
| 44 |
+ exit |
|
| 45 |
+fi |
|
| 46 |
+ |
|
| 47 |
+NEW_REVISION="#define FFMPEG_VERSION \"$version\"" |
|
| 48 |
+OLD_REVISION=$(cat "$2" 2> /dev/null | head -4 | tail -1) |
|
| 49 |
+ |
|
| 50 |
+# String used for preprocessor guard |
|
| 51 |
+GUARD=$(echo "$2" | sed 's/\//_/' | sed 's/\./_/' | tr '[:lower:]' '[:upper:]' | sed 's/LIB//') |
|
| 52 |
+ |
|
| 53 |
+# Update version header only on revision changes to avoid spurious rebuilds |
|
| 54 |
+if test "$NEW_REVISION" != "$OLD_REVISION"; then |
|
| 55 |
+ cat << EOF > "$2" |
|
| 56 |
+/* Automatically generated by version.sh, do not manually edit! */ |
|
| 57 |
+#ifndef $GUARD |
|
| 58 |
+#define $GUARD |
|
| 59 |
+$NEW_REVISION |
|
| 60 |
+#endif /* $GUARD */ |
|
| 61 |
+EOF |
|
| 62 |
+fi |
| 5 | 5 |
deleted file mode 100644 |
| ... | ... |
@@ -1,98 +0,0 @@ |
| 1 |
-include $(SRC_PATH)/common.mak |
|
| 2 |
- |
|
| 3 |
-LIBVERSION := $(lib$(NAME)_VERSION) |
|
| 4 |
-LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) |
|
| 5 |
-LIBMINOR := $(lib$(NAME)_VERSION_MINOR) |
|
| 6 |
-INCINSTDIR := $(INCDIR)/lib$(NAME) |
|
| 7 |
- |
|
| 8 |
-INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%) |
|
| 9 |
- |
|
| 10 |
-all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) |
|
| 11 |
-all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) |
|
| 12 |
- |
|
| 13 |
-LIBOBJS := $(OBJS) $(SUBDIR)%.h.o $(TESTOBJS) |
|
| 14 |
-$(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i): CPPFLAGS += -DHAVE_AV_CONFIG_H |
|
| 15 |
-$(TESTOBJS) $(TESTOBJS:.o=.i): CFLAGS += -Umain |
|
| 16 |
- |
|
| 17 |
-$(SUBDIR)$(LIBNAME): $(OBJS) |
|
| 18 |
- $(RM) $@ |
|
| 19 |
- $(AR) $(ARFLAGS) $(AR_O) $^ |
|
| 20 |
- $(RANLIB) $@ |
|
| 21 |
- |
|
| 22 |
-install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig |
|
| 23 |
- |
|
| 24 |
-install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static |
|
| 25 |
-install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared |
|
| 26 |
- |
|
| 27 |
-define RULES |
|
| 28 |
-$(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB)) |
|
| 29 |
-$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) |
|
| 30 |
- |
|
| 31 |
-$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o |
|
| 32 |
- $$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) |
|
| 33 |
- |
|
| 34 |
-$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS) |
|
| 35 |
- $$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@ |
|
| 36 |
- |
|
| 37 |
-$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) |
|
| 38 |
- $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |
|
| 39 |
- |
|
| 40 |
-$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver |
|
| 41 |
- $(SLIB_CREATE_DEF_CMD) |
|
| 42 |
- $$(LD) $(SHFLAGS) $(LDFLAGS) $(LDLIBFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS) |
|
| 43 |
- $(SLIB_EXTRA_CMD) |
|
| 44 |
- |
|
| 45 |
-ifdef SUBDIR |
|
| 46 |
-$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS) |
|
| 47 |
-endif |
|
| 48 |
- |
|
| 49 |
-clean:: |
|
| 50 |
- $(RM) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \ |
|
| 51 |
- $(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) $(CLEANSUFFIXES:%=$(SUBDIR)tests/%) |
|
| 52 |
- |
|
| 53 |
-distclean:: clean |
|
| 54 |
- $(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) \ |
|
| 55 |
- $(DISTCLEANSUFFIXES:%=$(SUBDIR)tests/%) |
|
| 56 |
- |
|
| 57 |
-install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME) |
|
| 58 |
- $(Q)mkdir -p "$(SHLIBDIR)" |
|
| 59 |
- $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
|
| 60 |
- $$(STRIP) "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
|
| 61 |
- $(Q)$(foreach F,$(SLIB_INSTALL_LINKS),(cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F));) |
|
| 62 |
- $(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)") |
|
| 63 |
- $(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)") |
|
| 64 |
- $(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)") |
|
| 65 |
- |
|
| 66 |
-install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME) |
|
| 67 |
- $(Q)mkdir -p "$(LIBDIR)" |
|
| 68 |
- $$(INSTALL) -m 644 $$< "$(LIBDIR)" |
|
| 69 |
- $(LIB_INSTALL_EXTRA_CMD) |
|
| 70 |
- |
|
| 71 |
-install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS)) |
|
| 72 |
- $(Q)mkdir -p "$(INCINSTDIR)" |
|
| 73 |
- $$(INSTALL) -m 644 $$^ "$(INCINSTDIR)" |
|
| 74 |
- |
|
| 75 |
-install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(FULLNAME).pc |
|
| 76 |
- $(Q)mkdir -p "$(PKGCONFIGDIR)" |
|
| 77 |
- $$(INSTALL) -m 644 $$^ "$(PKGCONFIGDIR)" |
|
| 78 |
- |
|
| 79 |
-uninstall-libs:: |
|
| 80 |
- -$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ |
|
| 81 |
- "$(SHLIBDIR)/$(SLIBNAME)" \ |
|
| 82 |
- "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" |
|
| 83 |
- -$(RM) $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)/%") |
|
| 84 |
- -$(RM) $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)/%") |
|
| 85 |
- -$(RM) "$(LIBDIR)/$(LIBNAME)" |
|
| 86 |
- |
|
| 87 |
-uninstall-headers:: |
|
| 88 |
- $(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS) $(BUILT_HEADERS)) |
|
| 89 |
- $(RM) "$(PKGCONFIGDIR)/lib$(FULLNAME).pc" |
|
| 90 |
- -rmdir "$(INCINSTDIR)" |
|
| 91 |
-endef |
|
| 92 |
- |
|
| 93 |
-$(eval $(RULES)) |
|
| 94 |
- |
|
| 95 |
-$(TOOLS): $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME) |
|
| 96 |
-$(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME) |
|
| 97 |
- |
|
| 98 |
-testprogs: $(TESTPROGS) |
| ... | ... |
@@ -85,7 +85,7 @@ clean(){
|
| 85 | 85 |
report(){
|
| 86 | 86 |
date=$(date -u +%Y%m%d%H%M%S) |
| 87 | 87 |
echo "fate:1:${date}:${slot}:${version}:$1:$2:${branch}:${comment}" >report
|
| 88 |
- cat ${build}/config.fate >>report
|
|
| 88 |
+ cat ${build}/ffbuild/config.fate >>report
|
|
| 89 | 89 |
cat ${build}/tests/data/fate/*.rep >>report 2>/dev/null || for i in ${build}/tests/data/fate/*.rep ; do cat "$i" >>report 2>/dev/null; done
|
| 90 | 90 |
test -n "$fate_recv" && $tar report *.log | gzip | $fate_recv |
| 91 | 91 |
} |
| ... | ... |
@@ -108,7 +108,7 @@ test -d "$src" && update || checkout || die "Error fetching source" |
| 108 | 108 |
|
| 109 | 109 |
cd ${workdir}
|
| 110 | 110 |
|
| 111 |
-version=$(${src}/version.sh ${src})
|
|
| 111 |
+version=$(${src}/ffbuild/version.sh ${src})
|
|
| 112 | 112 |
test "$version" = "$(cat version-$slot 2>/dev/null)" && exit 0 |
| 113 | 113 |
echo ${version} >version-$slot
|
| 114 | 114 |
|
| 115 | 115 |
deleted file mode 100755 |
| ... | ... |
@@ -1,63 +0,0 @@ |
| 1 |
-#!/bin/sh |
|
| 2 |
- |
|
| 3 |
-# Usage: version.sh <ffmpeg-root-dir> <output-version.h> <extra-version> |
|
| 4 |
- |
|
| 5 |
-# check for git short hash |
|
| 6 |
-if ! test "$revision"; then |
|
| 7 |
- if (cd "$1" && grep git RELEASE 2> /dev/null >/dev/null) ; then |
|
| 8 |
- revision=$(cd "$1" && git describe --tags --match N 2> /dev/null) |
|
| 9 |
- else |
|
| 10 |
- revision=$(cd "$1" && git describe --tags --always 2> /dev/null) |
|
| 11 |
- fi |
|
| 12 |
-fi |
|
| 13 |
- |
|
| 14 |
-# Shallow Git clones (--depth) do not have the N tag: |
|
| 15 |
-# use 'git-YYYY-MM-DD-hhhhhhh'. |
|
| 16 |
-test "$revision" || revision=$(cd "$1" && |
|
| 17 |
- git log -1 --pretty=format:"git-%cd-%h" --date=short 2> /dev/null) |
|
| 18 |
- |
|
| 19 |
-# Snapshots from gitweb are in a directory called ffmpeg-hhhhhhh or |
|
| 20 |
-# ffmpeg-HEAD-hhhhhhh. |
|
| 21 |
-if [ -z "$revision" ]; then |
|
| 22 |
- srcdir=$(cd "$1" && pwd) |
|
| 23 |
- case "$srcdir" in |
|
| 24 |
- */ffmpeg-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]) |
|
| 25 |
- git_hash="${srcdir##*-}";;
|
|
| 26 |
- */ffmpeg-HEAD-[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]) |
|
| 27 |
- git_hash="${srcdir##*-}";;
|
|
| 28 |
- esac |
|
| 29 |
-fi |
|
| 30 |
- |
|
| 31 |
-# no revision number found |
|
| 32 |
-test "$revision" || revision=$(cd "$1" && cat RELEASE 2> /dev/null) |
|
| 33 |
- |
|
| 34 |
-# Append the Git hash if we have one |
|
| 35 |
-test "$revision" && test "$git_hash" && revision="$revision-$git_hash" |
|
| 36 |
- |
|
| 37 |
-# releases extract the version number from the VERSION file |
|
| 38 |
-version=$(cd "$1" && cat VERSION 2> /dev/null) |
|
| 39 |
-test "$version" || version=$revision |
|
| 40 |
- |
|
| 41 |
-test -n "$3" && version=$version-$3 |
|
| 42 |
- |
|
| 43 |
-if [ -z "$2" ]; then |
|
| 44 |
- echo "$version" |
|
| 45 |
- exit |
|
| 46 |
-fi |
|
| 47 |
- |
|
| 48 |
-NEW_REVISION="#define FFMPEG_VERSION \"$version\"" |
|
| 49 |
-OLD_REVISION=$(cat "$2" 2> /dev/null | head -4 | tail -1) |
|
| 50 |
- |
|
| 51 |
-# String used for preprocessor guard |
|
| 52 |
-GUARD=$(echo "$2" | sed 's/\//_/' | sed 's/\./_/' | tr '[:lower:]' '[:upper:]' | sed 's/LIB//') |
|
| 53 |
- |
|
| 54 |
-# Update version header only on revision changes to avoid spurious rebuilds |
|
| 55 |
-if test "$NEW_REVISION" != "$OLD_REVISION"; then |
|
| 56 |
- cat << EOF > "$2" |
|
| 57 |
-/* Automatically generated by version.sh, do not manually edit! */ |
|
| 58 |
-#ifndef $GUARD |
|
| 59 |
-#define $GUARD |
|
| 60 |
-$NEW_REVISION |
|
| 61 |
-#endif /* $GUARD */ |
|
| 62 |
-EOF |
|
| 63 |
-fi |