ffmpeg / common.mak @ caec74dd
History | View | Annotate | Download (1.99 KB)
1 |
# |
---|---|
2 |
# common bits used by all libraries |
3 |
# |
4 |
|
5 |
all: # make "all" default target |
6 |
|
7 |
ifndef SUBDIR |
8 |
vpath %.c $(SRC_DIR) |
9 |
vpath %.h $(SRC_DIR) |
10 |
vpath %.S $(SRC_DIR) |
11 |
|
12 |
ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale |
13 |
|
14 |
CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ |
15 |
-D_ISOC9X_SOURCE -I$(BUILD_ROOT) -I$(SRC_PATH) \ |
16 |
$(addprefix -I$(SRC_PATH)/lib,$(ALLFFLIBS)) $(OPTFLAGS) |
17 |
|
18 |
%.o: %.c |
19 |
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< |
20 |
|
21 |
%.o: %.S |
22 |
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< |
23 |
|
24 |
%.ho: %.h |
25 |
$(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $< |
26 |
|
27 |
%.d: %.c |
28 |
$(DEPEND_CMD) > $@ |
29 |
|
30 |
%.d: %.S |
31 |
$(DEPEND_CMD) > $@ |
32 |
|
33 |
%.d: %.cpp |
34 |
$(DEPEND_CMD) > $@ |
35 |
|
36 |
install: install-libs install-headers |
37 |
|
38 |
uninstall: uninstall-libs uninstall-headers |
39 |
|
40 |
.PHONY: all depend dep clean distclean install* uninstall* tests |
41 |
endif |
42 |
|
43 |
CFLAGS += $(CFLAGS-yes) |
44 |
OBJS += $(OBJS-yes) |
45 |
ASM_OBJS += $(ASM_OBJS-yes) |
46 |
CPP_OBJS += $(CPP_OBJS-yes) |
47 |
FFLIBS := $(FFLIBS-yes) $(FFLIBS) |
48 |
TESTS += $(TESTS-yes) |
49 |
|
50 |
FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) |
51 |
FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS) |
52 |
|
53 |
SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPP_OBJS:.o=.cpp) |
54 |
OBJS := $(OBJS) $(ASM_OBJS) $(CPP_OBJS) |
55 |
|
56 |
SRCS := $(addprefix $(SUBDIR),$(SRCS)) |
57 |
OBJS := $(addprefix $(SUBDIR),$(OBJS)) |
58 |
TESTS := $(addprefix $(SUBDIR),$(TESTS)) |
59 |
|
60 |
ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h)) |
61 |
checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) |
62 |
|
63 |
DEPS := $(OBJS:.o=.d) |
64 |
depend dep: $(DEPS) |
65 |
|
66 |
CLEANFILES += *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \ |
67 |
*.def *.dll.a *.exp *.ho *.map |
68 |
|
69 |
define RULES |
70 |
$(SUBDIR)%: $(SUBDIR)%.o $(LIBNAME) |
71 |
$(CC) $(FFLDFLAGS) -o $$@ $$^ $(FFEXTRALIBS) |
72 |
|
73 |
$(SUBDIR)%-test$(EXESUF): $(SUBDIR)%.c $(LIBNAME) |
74 |
$(CC) $(CFLAGS) $(FFLDFLAGS) -DTEST -o $$@ $$^ $(FFEXTRALIBS) |
75 |
|
76 |
clean:: |
77 |
rm -f $(TESTS) $(addprefix $(SUBDIR),$(CLEANFILES)) |
78 |
|
79 |
distclean:: clean |
80 |
rm -f $(DEPS) |
81 |
endef |
82 |
|
83 |
$(eval $(RULES)) |
84 |
|
85 |
tests: $(TESTS) |
86 |
|
87 |
-include $(DEPS) |