1SRC_DIR := $(SRC_PATH_BARE)/lib$(NAME) 2 3include $(SUBDIR)../common.mak 4 5LIBVERSION := $(lib$(NAME)_VERSION) 6LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) 7INCINSTDIR := $(INCDIR)/lib$(NAME) 8THIS_LIB := $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME) 9 10all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) 11all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) 12 13$(SUBDIR)%-test.o: $(SUBDIR)%.c 14 $(CC) $(CPPFLAGS) $(CFLAGS) -DTEST -c $(CC_O) $^ 15 16$(SUBDIR)%-test.o: $(SUBDIR)%-test.c 17 $(CC) $(CPPFLAGS) $(CFLAGS) -DTEST -c $(CC_O) $^ 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 $(SUBDIR)%-test.o $(TESTOBJS): CPPFLAGS += -DHAVE_AV_CONFIG_H 24 25$(SUBDIR)$(LIBNAME): $(OBJS) 26 $(RM) $@ 27 $(AR) rc $@ $^ $(EXTRAOBJS) 28 $(RANLIB) $@ 29 30install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig 31 32install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static 33install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared 34 35define RULES 36$(SUBDIR)%$(EXESUF): $(SUBDIR)%.o 37 $$(LD) $(FFLDFLAGS) -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 43 $(SLIB_CREATE_DEF_CMD) 44 $$(LD) $(SHFLAGS) $(FFLDFLAGS) -o $$@ $$(filter %.o,$$^) $(FFEXTRALIBS) $(EXTRAOBJS) 45 $(SLIB_EXTRA_CMD) 46 47ifdef SUBDIR 48$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS) 49endif 50 51clean:: 52 $(RM) $(addprefix $(SUBDIR),*-example$(EXESUF) *-test$(EXESUF) $(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \ 53 $(addprefix $(SUBDIR), $(foreach suffix,$(CLEANSUFFIXES),$(addsuffix /$(suffix),$(DIRS)))) \ 54 $(HOSTOBJS) $(HOSTPROGS) 55 56distclean:: clean 57 $(RM) $(addprefix $(SUBDIR),$(DISTCLEANSUFFIXES)) \ 58 $(addprefix $(SUBDIR), $(foreach suffix,$(DISTCLEANSUFFIXES),$(addsuffix /$(suffix),$(DIRS)))) 59 60install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME) 61 $(Q)mkdir -p "$(SHLIBDIR)" 62 $$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" 63 $$(STRIP) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" 64 $(Q)cd "$(SHLIBDIR)" && \ 65 $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME_WITH_MAJOR) 66 $(Q)cd "$(SHLIBDIR)" && \ 67 $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME) 68 $(SLIB_INSTALL_EXTRA_CMD) 69 70install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME) 71 $(Q)mkdir -p "$(LIBDIR)" 72 $$(INSTALL) -m 644 $$< "$(LIBDIR)" 73 $(LIB_INSTALL_EXTRA_CMD) 74 75install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS)) 76 $(Q)mkdir -p "$(INCINSTDIR)" 77 $$(INSTALL) -m 644 $$^ "$(INCINSTDIR)" 78 79install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(NAME).pc 80 $(Q)mkdir -p "$(LIBDIR)/pkgconfig" 81 $$(INSTALL) -m 644 $$^ "$(LIBDIR)/pkgconfig" 82 83uninstall-libs:: 84 -$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ 85 "$(SHLIBDIR)/$(SLIBNAME)" \ 86 "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" 87 -$(SLIB_UNINSTALL_EXTRA_CMD) 88 -$(RM) "$(LIBDIR)/$(LIBNAME)" 89 90uninstall-headers:: 91 $(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS)) 92 $(RM) "$(LIBDIR)/pkgconfig/lib$(NAME).pc" 93 -rmdir "$(INCDIR)" 94endef 95 96$(eval $(RULES)) 97 98$(EXAMPLES) $(TESTPROGS): $(THIS_LIB) $(DEP_LIBS) 99 100examples: $(EXAMPLES) 101testprogs: $(TESTPROGS) 102