Mercurial > mplayer.hg
comparison common.mak @ 26315:a80f0a7d73f4
Sync with FFmpeg's shiny new non-recursive build system.
author | diego |
---|---|
date | Mon, 07 Apr 2008 22:25:13 +0000 |
parents | 84e71e0a0546 |
children | 955f4b8ac094 |
comparison
equal
deleted
inserted
replaced
26314:67dbe3155ce5 | 26315:a80f0a7d73f4 |
---|---|
1 # | 1 # |
2 # common bits used by all libraries | 2 # common bits used by all libraries |
3 # | 3 # |
4 | 4 |
5 SRC_DIR = $(SRC_PATH_BARE)/lib$(NAME) | 5 all: # make "all" default target |
6 | 6 |
7 LIBVERSION = $(lib$(NAME)_VERSION) | 7 ifeq ($(SUBDIR),) |
8 LIBMAJOR = $(lib$(NAME)_VERSION_MAJOR) | |
9 | |
10 vpath %.c $(SRC_DIR) | 8 vpath %.c $(SRC_DIR) |
11 vpath %.h $(SRC_DIR) | 9 vpath %.h $(SRC_DIR) |
12 vpath %.S $(SRC_DIR) | 10 vpath %.S $(SRC_DIR) |
13 | 11 |
14 ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale | 12 ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale |
15 | 13 |
16 CFLAGS += $(CFLAGS-yes) | 14 CFLAGS = -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ |
17 OBJS += $(OBJS-yes) | 15 -D_ISOC9X_SOURCE -I$(BUILD_ROOT) -I$(SRC_PATH) \ |
18 ASM_OBJS += $(ASM_OBJS-yes) | 16 $(addprefix -I$(SRC_PATH)/lib,$(ALLFFLIBS)) $(OPTFLAGS) |
19 CPP_OBJS += $(CPP_OBJS-yes) | |
20 FFLIBS += $(FFLIBS-yes) | |
21 | |
22 CFLAGS += -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ | |
23 -D_ISOC9X_SOURCE -I$(BUILD_ROOT) -I$(SRC_PATH) \ | |
24 $(addprefix -I$(SRC_PATH)/lib,$(ALLFFLIBS)) $(OPTFLAGS) | |
25 | |
26 EXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) | |
27 LDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS) | |
28 | |
29 SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPPOBJS:.o=.cpp) | |
30 OBJS := $(OBJS) $(ASM_OBJS) $(CPPOBJS) | |
31 | |
32 all: $(LIBNAME) $(SLIBNAME) | |
33 | |
34 $(LIBNAME): $(OBJS) | |
35 rm -f $@ | |
36 $(AR) rc $@ $^ $(EXTRAOBJS) | |
37 $(RANLIB) $@ | |
38 | |
39 $(SLIBNAME): $(SLIBNAME_WITH_MAJOR) | |
40 $(LN_S) $^ $@ | |
41 | |
42 $(SLIBNAME_WITH_MAJOR): $(OBJS) | |
43 $(SLIB_CREATE_DEF_CMD) | |
44 $(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) $(EXTRAOBJS) | |
45 $(SLIB_EXTRA_CMD) | |
46 | 17 |
47 %.o: %.c | 18 %.o: %.c |
48 $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< | 19 $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< |
49 | 20 |
50 %.o: %.S | 21 %.o: %.S |
51 $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< | 22 $(CC) $(CFLAGS) $(LIBOBJFLAGS) -c -o $@ $< |
52 | 23 |
53 %: %.o $(LIBNAME) | |
54 $(CC) $(LDFLAGS) -o $@ $^ $(EXTRALIBS) | |
55 | |
56 %.ho: %.h | 24 %.ho: %.h |
57 $(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $< | 25 $(CC) $(CFLAGS) $(LIBOBJFLAGS) -Wno-unused -c -o $@ -x c $< |
58 | 26 |
59 ALLHEADERS = $(subst $(SRC_DIR)/,,$(wildcard $(SRC_DIR)/*.h)) | |
60 checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) | |
61 | |
62 depend dep: .depend | |
63 | |
64 .depend: $(SRCS) | |
65 $(DEPEND_CMD) > .depend | |
66 | |
67 clean:: | |
68 rm -f *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \ | |
69 *.def *.dll.a *.exp *.ho *.map $(TESTS) | |
70 | |
71 distclean:: clean | |
72 rm -f .depend | |
73 | |
74 INSTALL_TARGETS-$(BUILD_SHARED) += install-lib-shared | |
75 INSTALL_TARGETS-$(BUILD_STATIC) += install-lib-static | |
76 | |
77 install: install-libs install-headers | 27 install: install-libs install-headers |
78 | |
79 install-libs: $(INSTALL_TARGETS-yes) | |
80 | |
81 install-lib-shared: $(SLIBNAME) | |
82 install -d "$(SHLIBDIR)" | |
83 install -m 755 $(SLIBNAME) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" | |
84 $(STRIP) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" | |
85 cd "$(SHLIBDIR)" && \ | |
86 $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME_WITH_MAJOR) | |
87 cd "$(SHLIBDIR)" && \ | |
88 $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME) | |
89 $(SLIB_INSTALL_EXTRA_CMD) | |
90 | |
91 install-lib-static: $(LIBNAME) | |
92 install -d "$(LIBDIR)" | |
93 install -m 644 $(LIBNAME) "$(LIBDIR)" | |
94 $(LIB_INSTALL_EXTRA_CMD) | |
95 | |
96 INCINSTDIR = $(INCDIR)/lib$(NAME) | |
97 | |
98 install-headers:: | |
99 install -d "$(INCINSTDIR)" | |
100 install -d "$(LIBDIR)/pkgconfig" | |
101 install -m 644 $(addprefix "$(SRC_DIR)"/,$(HEADERS)) "$(INCINSTDIR)" | |
102 install -m 644 $(BUILD_ROOT)/lib$(NAME).pc "$(LIBDIR)/pkgconfig" | |
103 | 28 |
104 uninstall: uninstall-libs uninstall-headers | 29 uninstall: uninstall-libs uninstall-headers |
105 | 30 |
106 uninstall-libs:: | 31 .PHONY: all depend dep clean distclean install* uninstall* tests |
107 -rm -f "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ | 32 endif |
108 "$(SHLIBDIR)/$(SLIBNAME)" \ | |
109 "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" | |
110 -$(SLIB_UNINSTALL_EXTRA_CMD) | |
111 -rm -f "$(LIBDIR)/$(LIBNAME)" | |
112 | 33 |
113 uninstall-headers:: | 34 CFLAGS += $(CFLAGS-yes) |
114 rm -f $(addprefix "$(INCINSTDIR)/",$(HEADERS)) | 35 OBJS += $(OBJS-yes) |
115 rm -f "$(LIBDIR)/pkgconfig/lib$(NAME).pc" | 36 ASM_OBJS += $(ASM_OBJS-yes) |
37 CPP_OBJS += $(CPP_OBJS-yes) | |
38 FFLIBS := $(FFLIBS-yes) $(FFLIBS) | |
39 | |
40 FFEXTRALIBS := $(addprefix -l,$(addsuffix $(BUILDSUF),$(FFLIBS))) $(EXTRALIBS) | |
41 FFLDFLAGS := $(addprefix -L$(BUILD_ROOT)/lib,$(FFLIBS)) $(LDFLAGS) | |
42 | |
43 SRCS := $(OBJS:.o=.c) $(ASM_OBJS:.o=.S) $(CPP_OBJS:.o=.cpp) | |
44 OBJS := $(OBJS) $(ASM_OBJS) $(CPP_OBJS) | |
45 | |
46 SRCS := $(addprefix $(SUBDIR),$(SRCS)) | |
47 OBJS := $(addprefix $(SUBDIR),$(OBJS)) | |
48 TESTS := $(addprefix $(SUBDIR),$(TESTS)) | |
49 | |
50 ALLHEADERS := $(subst $(SRC_DIR)/,$(SUBDIR),$(wildcard $(SRC_DIR)/*.h)) | |
51 checkheaders: $(filter-out %_template.ho,$(ALLHEADERS:.h=.ho)) | |
52 | |
53 depend dep: $(SUBDIR).depend | |
54 | |
55 CLEANFILES += *.o *~ *.a *.lib *.so *.so.* *.dylib *.dll \ | |
56 *.def *.dll.a *.exp *.ho *.map | |
57 | |
58 define RULES | |
59 $(SUBDIR)%: $(SUBDIR)%.o $(LIBNAME) | |
60 $(CC) $(FFLDFLAGS) -o $$@ $$^ $(FFEXTRALIBS) | |
61 | |
62 $(SUBDIR)%-test$(EXESUF): $(SUBDIR)%.c $(LIBNAME) | |
63 $(CC) $(CFLAGS) $(FFLDFLAGS) -DTEST -o $$@ $$^ $(FFEXTRALIBS) | |
64 | |
65 $(SUBDIR).depend: $(SRCS) | |
66 $(DEPEND_CMD) > $$@ | |
67 | |
68 clean:: | |
69 rm -f $(TESTS) $(addprefix $(SUBDIR),$(CLEANFILES)) | |
70 | |
71 distclean:: clean | |
72 rm -f $(SUBDIR).depend | |
73 endef | |
74 | |
75 $(eval $(RULES)) | |
116 | 76 |
117 tests: $(TESTS) | 77 tests: $(TESTS) |
118 | 78 |
119 %-test$(EXESUF): %.c $(LIBNAME) | 79 -include $(SUBDIR).depend |
120 $(CC) $(CFLAGS) $(LDFLAGS) -DTEST -o $@ $^ $(EXTRALIBS) | |
121 | |
122 .PHONY: all depend dep clean distclean install* uninstall* tests | |
123 | |
124 -include .depend |