Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4349 | Serge | 1 | include $(SRC_PATH)/common.mak |
2 | |||
3 | LIBVERSION := $(lib$(NAME)_VERSION) |
||
4 | LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) |
||
5 | LIBMINOR := $(lib$(NAME)_VERSION_MINOR) |
||
6 | INCINSTDIR := $(INCDIR)/lib$(NAME) |
||
7 | |||
8 | INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%) |
||
9 | |||
10 | all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) |
||
11 | all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) |
||
12 | |||
13 | $(SUBDIR)%-test.o: $(SUBDIR)%-test.c |
||
14 | $(COMPILE_C) |
||
15 | |||
16 | $(SUBDIR)%-test.o: $(SUBDIR)%.c |
||
17 | $(COMPILE_C) |
||
18 | |||
19 | $(SUBDIR)%-test.i: $(SUBDIR)%-test.c |
||
20 | $(CC) $(CCFLAGS) $(CC_E) $< |
||
21 | |||
22 | $(SUBDIR)%-test.i: $(SUBDIR)%.c |
||
23 | $(CC) $(CCFLAGS) $(CC_E) $< |
||
24 | |||
25 | $(SUBDIR)x86/%.o: $(SUBDIR)x86/%.asm |
||
26 | $(DEPYASM) $(YASMFLAGS) -I $( |
||
27 | $(YASM) $(YASMFLAGS) -I $( |
||
28 | -$(STRIP) -wN '..@*' $@ |
||
29 | |||
30 | LIBOBJS := $(OBJS) $(SUBDIR)%.h.o $(TESTOBJS) |
||
31 | $(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i): CPPFLAGS += -DHAVE_AV_CONFIG_H |
||
32 | $(TESTOBJS) $(TESTOBJS:.o=.i): CPPFLAGS += -DTEST |
||
33 | |||
34 | $(SUBDIR)$(LIBNAME): $(OBJS) |
||
35 | $(RM) $@ |
||
36 | $(AR) $(ARFLAGS) $(AR_O) $^ |
||
37 | |||
38 | install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig |
||
39 | |||
40 | install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static |
||
41 | install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared |
||
42 | |||
43 | define RULES |
||
44 | $(EXAMPLES) $(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB)) |
||
45 | $(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) |
||
46 | |||
47 | $(EXAMPLES) $(TESTPROGS) $(TOOLS): %$(EXESUF): %.o $(EXEOBJS) |
||
48 | $$(LD) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) |
||
49 | |||
50 | $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) |
||
51 | # $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |
||
52 | |||
53 | $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver |
||
54 | $(SLIB_CREATE_DEF_CMD) |
||
55 | $$(LD) $(SHFLAGS) $(LDFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS) |
||
56 | $(SLIB_EXTRA_CMD) |
||
57 | $(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |
||
58 | cd .. |
||
59 | mv -f $(SUBDIR)$(SLIBNAME_WITH_MAJOR) ../../bin |
||
60 | mv -f $(SUBDIR)lib$(SLIBNAME).a ../../lib |
||
61 | |||
62 | |||
63 | ifdef SUBDIR |
||
64 | $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS) |
||
65 | endif |
||
66 | |||
67 | clean:: |
||
68 | $(RM) $(addprefix $(SUBDIR),*-example$(EXESUF) *-test$(EXESUF) $(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \ |
||
69 | $(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) |
||
70 | |||
71 | distclean:: clean |
||
72 | $(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) |
||
73 | |||
74 | install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME) |
||
75 | $(Q)mkdir -p "$(SHLIBDIR)" |
||
76 | $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
||
77 | $$(STRIP) "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
||
78 | $(Q)$(foreach F,$(SLIB_INSTALL_LINKS),(cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F));) |
||
79 | $(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)") |
||
80 | $(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)") |
||
81 | $(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)") |
||
82 | |||
83 | install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME) |
||
84 | $(Q)mkdir -p "$(LIBDIR)" |
||
85 | $$(INSTALL) -m 644 $$< "$(LIBDIR)" |
||
86 | $(LIB_INSTALL_EXTRA_CMD) |
||
87 | |||
88 | install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS)) |
||
89 | $(Q)mkdir -p "$(INCINSTDIR)" |
||
90 | $$(INSTALL) -m 644 $$^ "$(INCINSTDIR)" |
||
91 | |||
92 | install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(FULLNAME).pc |
||
93 | $(Q)mkdir -p "$(LIBDIR)/pkgconfig" |
||
94 | $$(INSTALL) -m 644 $$^ "$(LIBDIR)/pkgconfig" |
||
95 | |||
96 | uninstall-libs:: |
||
97 | -$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ |
||
98 | "$(SHLIBDIR)/$(SLIBNAME)" \ |
||
99 | "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" |
||
100 | -$(RM) $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)/%") |
||
101 | -$(RM) $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)/%") |
||
102 | -$(RM) "$(LIBDIR)/$(LIBNAME)" |
||
103 | |||
104 | uninstall-headers:: |
||
105 | $(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS) $(BUILT_HEADERS)) |
||
106 | $(RM) "$(LIBDIR)/pkgconfig/lib$(FULLNAME).pc" |
||
107 | -rmdir "$(INCINSTDIR)" |
||
108 | endef |
||
109 | |||
110 | $(eval $(RULES)) |
||
111 | |||
112 | $(EXAMPLES) $(TOOLS): $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME) |
||
113 | $(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME) |
||
114 | |||
115 | examples: $(EXAMPLES) |
||
116 | testprogs: $(TESTPROGS)>> |