Browse code

Merge commit '11a9320de54759340531177c9f2b1e31e6112cc2'

* 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>

Clément Bœsch authored on 2017/05/03 19:51:48
Showing 23 changed files
... ...
@@ -27,7 +27,8 @@
27 27
 /ffplay
28 28
 /ffprobe
29 29
 /ffserver
30
-/config.*
30
+/config.asm
31
+/config.h
31 32
 /coverage.info
32 33
 /avversion.h
33 34
 /lcov/
... ...
@@ -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
 ==================
52 52
new file mode 100644
... ...
@@ -0,0 +1,4 @@
0
+/.config
1
+/config.fate
2
+/config.log
3
+/config.mak
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
... ...
@@ -1,4 +1,4 @@
1
-include $(SUBDIR)../config.mak
1
+include $(SUBDIR)../ffbuild/config.mak
2 2
 
3 3
 NAME = avcodec
4 4
 
... ...
@@ -1,4 +1,4 @@
1
-include $(SUBDIR)../config.mak
1
+include $(SUBDIR)../ffbuild/config.mak
2 2
 
3 3
 NAME    = avdevice
4 4
 
... ...
@@ -1,4 +1,4 @@
1
-include $(SUBDIR)../config.mak
1
+include $(SUBDIR)../ffbuild/config.mak
2 2
 
3 3
 NAME = avfilter
4 4
 
... ...
@@ -1,4 +1,4 @@
1
-include $(SUBDIR)../config.mak
1
+include $(SUBDIR)../ffbuild/config.mak
2 2
 
3 3
 NAME = avformat
4 4
 
... ...
@@ -1,4 +1,4 @@
1
-include $(SUBDIR)../config.mak
1
+include $(SUBDIR)../ffbuild/config.mak
2 2
 
3 3
 NAME = avutil
4 4
 
... ...
@@ -1,4 +1,4 @@
1
-include $(SUBDIR)../config.mak
1
+include $(SUBDIR)../ffbuild/config.mak
2 2
 
3 3
 NAME = postproc
4 4
 FFLIBS = avutil
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)
... ...
@@ -1,4 +1,4 @@
1
-include $(SUBDIR)../config.mak
1
+include $(SUBDIR)../ffbuild/config.mak
2 2
 
3 3
 NAME = swresample
4 4
 FFLIBS = avutil
... ...
@@ -1,4 +1,4 @@
1
-include $(SUBDIR)../config.mak
1
+include $(SUBDIR)../ffbuild/config.mak
2 2
 
3 3
 NAME = swscale
4 4
 
... ...
@@ -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