... | ... |
@@ -113,7 +113,7 @@ define DOSUBDIR |
113 | 113 |
$(foreach V,$(SUBDIR_VARS),$(eval $(call RESET,$(V)))) |
114 | 114 |
SUBDIR := $(1)/ |
115 | 115 |
include $(SRC_PATH)/$(1)/Makefile |
116 |
-include $(SRC_PATH)/subdir.mak |
|
116 |
+include $(SRC_PATH)/library.mak |
|
117 | 117 |
endef |
118 | 118 |
|
119 | 119 |
$(foreach D,$(FFLIBS),$(eval $(call DOSUBDIR,lib$(D)))) |
120 | 120 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,97 @@ |
0 |
+SRC_DIR := $(SRC_PATH)/lib$(NAME) |
|
1 |
+ |
|
2 |
+include $(SRC_PATH)/common.mak |
|
3 |
+ |
|
4 |
+LIBVERSION := $(lib$(NAME)_VERSION) |
|
5 |
+LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) |
|
6 |
+INCINSTDIR := $(INCDIR)/lib$(NAME) |
|
7 |
+THIS_LIB := $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME) |
|
8 |
+ |
|
9 |
+all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) |
|
10 |
+all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) |
|
11 |
+ |
|
12 |
+$(SUBDIR)%-test.o: $(SUBDIR)%-test.c |
|
13 |
+ $(COMPILE_C) |
|
14 |
+ |
|
15 |
+$(SUBDIR)%-test.o: $(SUBDIR)%.c |
|
16 |
+ $(COMPILE_C) |
|
17 |
+ |
|
18 |
+$(SUBDIR)x86/%.o: $(SUBDIR)x86/%.asm |
|
19 |
+ $(YASMDEP) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.o=.d) |
|
20 |
+ $(YASM) $(YASMFLAGS) -I $(<D)/ -o $@ $< |
|
21 |
+ |
|
22 |
+$(OBJS) $(SUBDIR)%.ho $(TESTOBJS): CPPFLAGS += -DHAVE_AV_CONFIG_H |
|
23 |
+$(TESTOBJS): CPPFLAGS += -DTEST |
|
24 |
+ |
|
25 |
+$(SUBDIR)$(LIBNAME): $(OBJS) |
|
26 |
+ $(RM) $@ |
|
27 |
+ $(AR) rc $@ $^ $(EXTRAOBJS) |
|
28 |
+ $(RANLIB) $@ |
|
29 |
+ |
|
30 |
+install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig |
|
31 |
+ |
|
32 |
+install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static |
|
33 |
+install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared |
|
34 |
+ |
|
35 |
+define RULES |
|
36 |
+$(EXAMPLES) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o |
|
37 |
+ $$(LD) $(LDFLAGS) -o $$@ $$^ -l$(FULLNAME) $(FFEXTRALIBS) $$(ELIBS) |
|
38 |
+ |
|
39 |
+$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) |
|
40 |
+ $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |
|
41 |
+ |
|
42 |
+$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver $(DEP_LIBS) |
|
43 |
+ $(SLIB_CREATE_DEF_CMD) |
|
44 |
+ $$(LD) $(SHFLAGS) $(LDFLAGS) -o $$@ $$(filter %.o,$$^) $(FFEXTRALIBS) $(EXTRAOBJS) |
|
45 |
+ $(SLIB_EXTRA_CMD) |
|
46 |
+ |
|
47 |
+clean:: |
|
48 |
+ $(RM) $(addprefix $(SUBDIR),*-example$(EXESUF) *-test$(EXESUF) $(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \ |
|
49 |
+ $(foreach dir,$(DIRS),$(CLEANSUFFIXES:%=$(SUBDIR)$(dir)/%)) \ |
|
50 |
+ $(HOSTOBJS) $(HOSTPROGS) |
|
51 |
+ |
|
52 |
+distclean:: clean |
|
53 |
+ $(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) \ |
|
54 |
+ $(foreach dir,$(DIRS),$(DISTCLEANSUFFIXES:%=$(SUBDIR)$(dir)/%)) |
|
55 |
+ |
|
56 |
+install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME) |
|
57 |
+ $(Q)mkdir -p "$(SHLIBDIR)" |
|
58 |
+ $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
|
59 |
+ $(Q)$(foreach F,$(SLIB_INSTALL_LINKS),cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F);) |
|
60 |
+ $(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)") |
|
61 |
+ $(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)") |
|
62 |
+ $(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)") |
|
63 |
+ |
|
64 |
+install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME) |
|
65 |
+ $(Q)mkdir -p "$(LIBDIR)" |
|
66 |
+ $$(INSTALL) -m 644 $$< "$(LIBDIR)" |
|
67 |
+ $(LIB_INSTALL_EXTRA_CMD) |
|
68 |
+ |
|
69 |
+install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS)) |
|
70 |
+ $(Q)mkdir -p "$(INCINSTDIR)" |
|
71 |
+ $$(INSTALL) -m 644 $$^ "$(INCINSTDIR)" |
|
72 |
+ |
|
73 |
+install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(NAME).pc |
|
74 |
+ $(Q)mkdir -p "$(LIBDIR)/pkgconfig" |
|
75 |
+ $$(INSTALL) -m 644 $$^ "$(LIBDIR)/pkgconfig" |
|
76 |
+ |
|
77 |
+uninstall-libs:: |
|
78 |
+ -$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ |
|
79 |
+ "$(SHLIBDIR)/$(SLIBNAME)" \ |
|
80 |
+ "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" |
|
81 |
+ -$(RM) $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)"%) |
|
82 |
+ -$(RM) $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)"%) |
|
83 |
+ -$(RM) "$(LIBDIR)/$(LIBNAME)" |
|
84 |
+ |
|
85 |
+uninstall-headers:: |
|
86 |
+ $(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS)) |
|
87 |
+ $(RM) "$(LIBDIR)/pkgconfig/lib$(NAME).pc" |
|
88 |
+ -rmdir "$(INCDIR)" |
|
89 |
+endef |
|
90 |
+ |
|
91 |
+$(eval $(RULES)) |
|
92 |
+ |
|
93 |
+$(EXAMPLES) $(TESTPROGS) $(TOOLS): $(THIS_LIB) $(DEP_LIBS) |
|
94 |
+ |
|
95 |
+examples: $(EXAMPLES) |
|
96 |
+testprogs: $(TESTPROGS) |
0 | 97 |
deleted file mode 100644 |
... | ... |
@@ -1,97 +0,0 @@ |
1 |
-SRC_DIR := $(SRC_PATH)/lib$(NAME) |
|
2 |
- |
|
3 |
-include $(SRC_PATH)/common.mak |
|
4 |
- |
|
5 |
-LIBVERSION := $(lib$(NAME)_VERSION) |
|
6 |
-LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) |
|
7 |
-INCINSTDIR := $(INCDIR)/lib$(NAME) |
|
8 |
-THIS_LIB := $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME) |
|
9 |
- |
|
10 |
-all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) |
|
11 |
-all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) |
|
12 |
- |
|
13 |
-$(SUBDIR)%-test.o: $(SUBDIR)%-test.c |
|
14 |
- $(COMPILE_C) |
|
15 |
- |
|
16 |
-$(SUBDIR)%-test.o: $(SUBDIR)%.c |
|
17 |
- $(COMPILE_C) |
|
18 |
- |
|
19 |
-$(SUBDIR)x86/%.o: $(SUBDIR)x86/%.asm |
|
20 |
- $(YASMDEP) $(YASMFLAGS) -I $(<D)/ -M -o $@ $< > $(@:.o=.d) |
|
21 |
- $(YASM) $(YASMFLAGS) -I $(<D)/ -o $@ $< |
|
22 |
- |
|
23 |
-$(OBJS) $(SUBDIR)%.ho $(TESTOBJS): CPPFLAGS += -DHAVE_AV_CONFIG_H |
|
24 |
-$(TESTOBJS): CPPFLAGS += -DTEST |
|
25 |
- |
|
26 |
-$(SUBDIR)$(LIBNAME): $(OBJS) |
|
27 |
- $(RM) $@ |
|
28 |
- $(AR) rc $@ $^ $(EXTRAOBJS) |
|
29 |
- $(RANLIB) $@ |
|
30 |
- |
|
31 |
-install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig |
|
32 |
- |
|
33 |
-install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static |
|
34 |
-install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared |
|
35 |
- |
|
36 |
-define RULES |
|
37 |
-$(EXAMPLES) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o |
|
38 |
- $$(LD) $(LDFLAGS) -o $$@ $$^ -l$(FULLNAME) $(FFEXTRALIBS) $$(ELIBS) |
|
39 |
- |
|
40 |
-$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) |
|
41 |
- $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |
|
42 |
- |
|
43 |
-$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver $(DEP_LIBS) |
|
44 |
- $(SLIB_CREATE_DEF_CMD) |
|
45 |
- $$(LD) $(SHFLAGS) $(LDFLAGS) -o $$@ $$(filter %.o,$$^) $(FFEXTRALIBS) $(EXTRAOBJS) |
|
46 |
- $(SLIB_EXTRA_CMD) |
|
47 |
- |
|
48 |
-clean:: |
|
49 |
- $(RM) $(addprefix $(SUBDIR),*-example$(EXESUF) *-test$(EXESUF) $(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \ |
|
50 |
- $(foreach dir,$(DIRS),$(CLEANSUFFIXES:%=$(SUBDIR)$(dir)/%)) \ |
|
51 |
- $(HOSTOBJS) $(HOSTPROGS) |
|
52 |
- |
|
53 |
-distclean:: clean |
|
54 |
- $(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) \ |
|
55 |
- $(foreach dir,$(DIRS),$(DISTCLEANSUFFIXES:%=$(SUBDIR)$(dir)/%)) |
|
56 |
- |
|
57 |
-install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME) |
|
58 |
- $(Q)mkdir -p "$(SHLIBDIR)" |
|
59 |
- $$(INSTALL) -m 755 $$< "$(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$(NAME).pc |
|
75 |
- $(Q)mkdir -p "$(LIBDIR)/pkgconfig" |
|
76 |
- $$(INSTALL) -m 644 $$^ "$(LIBDIR)/pkgconfig" |
|
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)) |
|
88 |
- $(RM) "$(LIBDIR)/pkgconfig/lib$(NAME).pc" |
|
89 |
- -rmdir "$(INCDIR)" |
|
90 |
-endef |
|
91 |
- |
|
92 |
-$(eval $(RULES)) |
|
93 |
- |
|
94 |
-$(EXAMPLES) $(TESTPROGS) $(TOOLS): $(THIS_LIB) $(DEP_LIBS) |
|
95 |
- |
|
96 |
-examples: $(EXAMPLES) |
|
97 |
-testprogs: $(TESTPROGS) |