OLD | NEW |
1 # | 1 # |
2 # common bits used by all libraries | 2 # common bits used by all libraries |
3 # | 3 # |
4 | 4 |
5 all: # make "all" default target | 5 all: # make "all" default target |
6 | 6 |
7 ifndef SUBDIR | 7 ifndef SUBDIR |
8 vpath %.c $(SRC_DIR) | 8 vpath %.c $(SRC_DIR) |
9 vpath %.h $(SRC_DIR) | 9 vpath %.h $(SRC_DIR) |
10 vpath %.S $(SRC_DIR) | 10 vpath %.S $(SRC_DIR) |
11 vpath %.asm $(SRC_DIR) | 11 vpath %.asm $(SRC_DIR) |
12 vpath %.v $(SRC_DIR) | 12 vpath %.v $(SRC_DIR) |
13 | 13 |
14 ifeq ($(SRC_DIR),$(SRC_PATH_BARE)) | 14 ifeq ($(SRC_DIR),$(SRC_PATH_BARE)) |
15 BUILD_ROOT_REL = . | 15 BUILD_ROOT_REL = . |
16 else | 16 else |
17 BUILD_ROOT_REL = .. | 17 BUILD_ROOT_REL = .. |
18 endif | 18 endif |
19 | 19 |
| 20 ifndef V |
| 21 Q = @ |
| 22 ECHO = printf "$(1)\t%s\n" $(2) |
| 23 BRIEF = CC AS YASM AR LD HOSTCC RANLIB STRIP CP |
| 24 SILENT = DEPCC YASMDEP RM |
| 25 MSG = $@ |
| 26 $(foreach VAR,$(BRIEF), \ |
| 27 $(eval $(VAR) = @$$(call ECHO,$(VAR),$$(MSG)); $($(VAR)))) |
| 28 $(foreach VAR,$(SILENT),$(eval $(VAR) = @$($(VAR)))) |
| 29 $(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL)) |
| 30 endif |
| 31 |
20 ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale | 32 ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale |
21 | 33 |
22 CPPFLAGS := -DHAVE_AV_CONFIG_H -I$(BUILD_ROOT_REL) -I$(SRC_PATH) $(CPPFLAGS) | 34 CPPFLAGS := -I$(BUILD_ROOT_REL) -I$(SRC_PATH) $(CPPFLAGS) |
23 CFLAGS += $(ECFLAGS) | 35 CFLAGS += $(ECFLAGS) |
24 | 36 |
25 %.o: %.c | 37 %.o: %.c |
26 $(CCDEP) | 38 $(CCDEP) |
27 $(CC) $(CPPFLAGS) $(CFLAGS) $(CC_DEPFLAGS) -c $(CC_O) $< | 39 $(CC) $(CPPFLAGS) $(CFLAGS) $(CC_DEPFLAGS) -c $(CC_O) $< |
28 | 40 |
29 %.o: %.S | 41 %.o: %.S |
30 $(ASDEP) | 42 $(ASDEP) |
31 $(AS) $(CPPFLAGS) $(ASFLAGS) $(AS_DEPFLAGS) -c -o $@ $< | 43 $(AS) $(CPPFLAGS) $(ASFLAGS) $(AS_DEPFLAGS) -c -o $@ $< |
32 | 44 |
33 %.ho: %.h | 45 %.ho: %.h |
34 $(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused -c -o $@ -x c $< | 46 $(CC) $(CPPFLAGS) $(CFLAGS) -Wno-unused -c -o $@ -x c $< |
35 | 47 |
36 %$(EXESUF): %.c | 48 %$(EXESUF): %.c |
37 | 49 |
38 %.ver: %.v | 50 %.ver: %.v |
39 » sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@ | 51 » $(Q)sed 's/$$MAJOR/$($(basename $(@F))_VERSION_MAJOR)/' $^ > $@ |
40 | 52 |
41 SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries | 53 SVN_ENTRIES = $(SRC_PATH_BARE)/.svn/entries |
42 ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES)) | 54 ifeq ($(wildcard $(SVN_ENTRIES)),$(SVN_ENTRIES)) |
43 $(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES) | 55 $(BUILD_ROOT_REL)/version.h: $(SVN_ENTRIES) |
44 endif | 56 endif |
45 | 57 |
46 $(BUILD_ROOT_REL)/version.h: $(SRC_PATH_BARE)/version.sh config.mak | 58 $(BUILD_ROOT_REL)/version.h: $(SRC_PATH_BARE)/version.sh config.mak |
47 $< $(SRC_PATH) $@ $(EXTRA_VERSION) | 59 $< $(SRC_PATH) $@ $(EXTRA_VERSION) |
48 | 60 |
49 install: install-libs install-headers | 61 install: install-libs install-headers |
50 | 62 |
51 uninstall: uninstall-libs uninstall-headers | 63 uninstall: uninstall-libs uninstall-headers |
52 | 64 |
53 .PHONY: all depend dep *clean install* uninstall* examples testprogs | 65 .PHONY: all depend dep *clean install* uninstall* examples testprogs |
| 66 |
| 67 # Disable suffix rules. Most of the builtin rules are suffix rules, |
| 68 # so this saves some time on slow systems. |
| 69 .SUFFIXES: |
| 70 |
| 71 # Do not delete intermediate files from chains of implicit rules |
| 72 .SECONDARY: |
54 endif | 73 endif |
55 | 74 |
56 OBJS-$(HAVE_MMX) += $(MMX-OBJS-yes) | 75 OBJS-$(HAVE_MMX) += $(MMX-OBJS-yes) |
57 | 76 |
58 CFLAGS += $(CFLAGS-yes) | 77 CFLAGS += $(CFLAGS-yes) |
59 OBJS += $(OBJS-yes) | 78 OBJS += $(OBJS-yes) |
60 FFLIBS := $(FFLIBS-yes) $(FFLIBS) | 79 FFLIBS := $(FFLIBS-yes) $(FFLIBS) |
61 TESTPROGS += $(TESTPROGS-yes) | 80 TESTPROGS += $(TESTPROGS-yes) |
62 | 81 |
63 FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) | 82 FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) |
64 FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(ALLFFLIBS)) $(LDFLAGS) | 83 FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(ALLFFLIBS)) $(LDFLAGS) |
65 | 84 |
66 EXAMPLES := $(addprefix $(SUBDIR),$(addsuffix -example$(EXESUF),$(EXAMPLES))) | 85 EXAMPLES := $(addprefix $(SUBDIR),$(addsuffix -example$(EXESUF),$(EXAMPLES))) |
67 OBJS := $(addprefix $(SUBDIR),$(OBJS)) | 86 OBJS := $(addprefix $(SUBDIR),$(OBJS)) |
| 87 TESTOBJS := $(addprefix $(SUBDIR),$(TESTOBJS)) |
68 TESTPROGS := $(addprefix $(SUBDIR),$(addsuffix -test$(EXESUF),$(TESTPROGS))) | 88 TESTPROGS := $(addprefix $(SUBDIR),$(addsuffix -test$(EXESUF),$(TESTPROGS))) |
69 HOSTOBJS := $(addprefix $(SUBDIR),$(addsuffix .o,$(HOSTPROGS))) | 89 HOSTOBJS := $(addprefix $(SUBDIR),$(addsuffix .o,$(HOSTPROGS))) |
70 HOSTPROGS := $(addprefix $(SUBDIR),$(addsuffix $(HOSTEXESUF),$(HOSTPROGS))) | 90 HOSTPROGS := $(addprefix $(SUBDIR),$(addsuffix $(HOSTEXESUF),$(HOSTPROGS))) |
71 | 91 |
72 DEP_LIBS := $(foreach NAME,$(FFLIBS),$(BUILD_ROOT_REL)/lib$(NAME)/$($(CONFIG_SHA
RED:yes=S)LIBNAME)) | 92 DEP_LIBS := $(foreach NAME,$(FFLIBS),$(BUILD_ROOT_REL)/lib$(NAME)/$($(CONFIG_SHA
RED:yes=S)LIBNAME)) |
73 | 93 |
74 ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)
/$(ARCH)/*.h)) | 94 ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h $(SRC_DIR)
/$(ARCH)/*.h)) |
75 SKIPHEADERS = $(addprefix $(SUBDIR),$(SKIPHEADERS-)) | 95 SKIPHEADERS += $(addprefix $(ARCH)/,$(ARCH_HEADERS)) |
| 96 SKIPHEADERS := $(addprefix $(SUBDIR),$(SKIPHEADERS-) $(SKIPHEADERS)) |
76 checkheaders: $(filter-out $(SKIPHEADERS:.h=.ho),$(ALLHEADERS:.h=.ho)) | 97 checkheaders: $(filter-out $(SKIPHEADERS:.h=.ho),$(ALLHEADERS:.h=.ho)) |
77 | 98 |
78 $(HOSTOBJS): %.o: %.c | 99 $(HOSTOBJS): %.o: %.c |
79 $(HOSTCC) $(HOSTCFLAGS) -c -o $@ $< | 100 $(HOSTCC) $(HOSTCFLAGS) -c -o $@ $< |
80 | 101 |
81 $(HOSTPROGS): %$(HOSTEXESUF): %.o | 102 $(HOSTPROGS): %$(HOSTEXESUF): %.o |
82 $(HOSTCC) $(HOSTLDFLAGS) -o $@ $< $(HOSTLIBS) | 103 $(HOSTCC) $(HOSTLDFLAGS) -o $@ $< $(HOSTLIBS) |
83 | 104 |
84 DEPS := $(OBJS:.o=.d) | 105 DEPS := $(OBJS:.o=.d) |
85 depend dep: $(DEPS) | 106 depend dep: $(DEPS) |
86 | 107 |
87 CLEANSUFFIXES = *.d *.o *~ *.ho *.map *.ver | 108 CLEANSUFFIXES = *.d *.o *~ *.ho *.map *.ver |
88 DISTCLEANSUFFIXES = *.pc | 109 DISTCLEANSUFFIXES = *.pc |
89 LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp | 110 LIBSUFFIXES = *.a *.lib *.so *.so.* *.dylib *.dll *.def *.dll.a *.exp |
90 | 111 |
91 -include $(wildcard $(DEPS)) | 112 -include $(wildcard $(DEPS)) |
OLD | NEW |