2 # common bits used by all libraries
5 # first so "all" becomes default target
12 vpath
%.asm
$(SRC_DIR
)
15 ifeq ($(SRC_DIR
),$(SRC_PATH_BARE
))
23 ECHO
= printf
"$(1)\t%s\n" $(2)
24 BRIEF
= CC AS YASM AR LD HOSTCC STRIP CP
25 SILENT
= DEPCC YASMDEP RM RANLIB
27 M
= @
$(call ECHO
,$(TAG
),$@
);
28 $(foreach VAR
,$(BRIEF
), \
29 $(eval
override $(VAR
) = @
$$(call ECHO
,$(VAR
),$$(MSG
)); $($(VAR
))))
30 $(foreach VAR
,$(SILENT
),$(eval
override $(VAR
) = @
$($(VAR
))))
31 $(eval INSTALL
= @
$(call ECHO
,INSTALL
,$$(^
:$(SRC_DIR
)/%=%)); $(INSTALL
))
34 ALLFFLIBS
= avcodec avcore avdevice avfilter avformat avutil postproc swscale
36 IFLAGS
:= -I
$(BUILD_ROOT_REL
) -I
$(SRC_PATH
)
37 CPPFLAGS
:= $(IFLAGS
) $(CPPFLAGS
)
40 HOSTCFLAGS
+= $(IFLAGS
)
44 $(CC
) $(CPPFLAGS
) $(CFLAGS
) $(CC_DEPFLAGS
) -c
$(CC_O
) $<
48 $(AS
) $(CPPFLAGS
) $(ASFLAGS
) $(AS_DEPFLAGS
) -c
-o
$@
$<
51 $(CC
) $(CPPFLAGS
) $(CFLAGS
) -Wno-unused
-c
-o
$@
-x c
$<
56 $(Q
)sed
's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^
> $@
60 # Dummy rule to stop make trying to rebuild removed or renamed headers
64 install: install-libs install-headers
65 install-libs
: install-libs-yes
67 uninstall: uninstall-libs uninstall-headers
69 .PHONY
: all depend dep
*clean install* uninstall* examples testprogs
71 # Disable suffix rules. Most of the builtin rules are suffix rules,
72 # so this saves some time on slow systems.
75 # Do not delete intermediate files from chains of implicit rules
79 OBJS-
$(HAVE_MMX
) += $(MMX-OBJS-yes
)
81 CFLAGS
+= $(CFLAGS-yes
)
83 FFLIBS
:= $(FFLIBS-yes
) $(FFLIBS
)
84 TESTPROGS
+= $(TESTPROGS-yes
)
86 FFEXTRALIBS
:= $(addprefix -l
,$(addsuffix $(BUILDSUF
),$(FFLIBS
))) $(EXTRALIBS
)
87 FFLDFLAGS
:= $(addprefix -L
$(BUILD_ROOT
)/lib
,$(ALLFFLIBS
)) $(LDFLAGS
)
89 EXAMPLES
:= $(addprefix $(SUBDIR
),$(addsuffix -example
$(EXESUF
),$(EXAMPLES
)))
90 OBJS
:= $(addprefix $(SUBDIR
),$(sort $(OBJS
)))
91 TESTOBJS
:= $(addprefix $(SUBDIR
),$(TESTOBJS
))
92 TESTPROGS
:= $(addprefix $(SUBDIR
),$(addsuffix -test$(EXESUF
),$(TESTPROGS
)))
93 HOSTOBJS
:= $(addprefix $(SUBDIR
),$(addsuffix .o
,$(HOSTPROGS
)))
94 HOSTPROGS
:= $(addprefix $(SUBDIR
),$(addsuffix $(HOSTEXESUF
),$(HOSTPROGS
)))
96 DEP_LIBS
:= $(foreach NAME
,$(FFLIBS
),$(BUILD_ROOT_REL
)/lib
$(NAME
)/$($(CONFIG_SHARED
:yes
=S
)LIBNAME
))
98 ALLHEADERS
:= $(subst $(SRC_DIR
)/,$(SUBDIR
),$(wildcard $(SRC_DIR
)/*.h
$(SRC_DIR
)/$(ARCH
)/*.h
))
99 SKIPHEADERS
+= $(addprefix $(ARCH
)/,$(ARCH_HEADERS
))
100 SKIPHEADERS
:= $(addprefix $(SUBDIR
),$(SKIPHEADERS-
) $(SKIPHEADERS
))
101 checkheaders
: $(filter-out $(SKIPHEADERS
:.h
=.ho
),$(ALLHEADERS
:.h
=.ho
))
103 $(HOSTOBJS
): %.o
: %.c
104 $(HOSTCC
) $(HOSTCFLAGS
) -c
-o
$@
$<
106 $(HOSTPROGS
): %$(HOSTEXESUF
): %.o
107 $(HOSTCC
) $(HOSTLDFLAGS
) -o
$@
$< $(HOSTLIBS
)
109 DEPS
:= $(OBJS
:.o
=.d
)
112 CLEANSUFFIXES
= *.d
*.o
*~
*.ho
*.map
*.ver
113 DISTCLEANSUFFIXES
= *.
pc
114 LIBSUFFIXES
= *.a
*.lib
*.so
*.so.
* *.dylib
*.dll
*.def
*.dll.a
*.exp
116 -include $(wildcard $(DEPS
))