3f17751e |
include $(SRC_PATH)/ffbuild/common.mak |
71c61f62 |
|
cbe181c8 |
ifeq (,$(filter %clean,$(MAKECMDGOALS))) |
edb43487 |
-include $(SUBDIR)lib$(NAME).version |
cbe181c8 |
endif |
edb43487 |
|
71c61f62 |
LIBVERSION := $(lib$(NAME)_VERSION)
LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR) |
304b806c |
LIBMINOR := $(lib$(NAME)_VERSION_MINOR) |
477b3382 |
INCINSTDIR := $(INCDIR)/lib$(NAME) |
71c61f62 |
|
b3fab1f2 |
INSTHEADERS := $(INSTHEADERS) $(HEADERS:%=$(SUBDIR)%)
|
a5fdda79 |
all-$(CONFIG_STATIC): $(SUBDIR)$(LIBNAME) $(SUBDIR)lib$(FULLNAME).pc
all-$(CONFIG_SHARED): $(SUBDIR)$(SLIBNAME) $(SUBDIR)lib$(FULLNAME).pc |
451db983 |
|
c2626492 |
LIBOBJS := $(OBJS) $(SUBDIR)%.h.o $(TESTOBJS) |
25ca8aef |
$(LIBOBJS) $(LIBOBJS:.o=.s) $(LIBOBJS:.o=.i): CPPFLAGS += -DHAVE_AV_CONFIG_H |
72c2bdeb |
|
71c61f62 |
$(SUBDIR)$(LIBNAME): $(OBJS) |
50e10cbd |
$(RM) $@ |
4436f25a |
$(AR) $(ARFLAGS) $(AR_O) $^ |
71c61f62 |
$(RANLIB) $@
|
56540673 |
install-headers: install-lib$(NAME)-headers install-lib$(NAME)-pkgconfig
|
451db983 |
install-libs-$(CONFIG_STATIC): install-lib$(NAME)-static
install-libs-$(CONFIG_SHARED): install-lib$(NAME)-shared
|
71c61f62 |
define RULES |
b339182e |
$(TOOLS): THISLIB = $(FULLNAME:%=$(LD_LIB))
$(TESTPROGS): THISLIB = $(SUBDIR)$(LIBNAME) |
4b895cb2 |
|
3794062a |
$(TESTPROGS) $(TOOLS): %$(EXESUF): %.o |
bb0babd7 |
$$(LD) $(LDFLAGS) $(LDEXEFLAGS) $$(LD_O) $$(filter %.o,$$^) $$(THISLIB) $(FFEXTRALIBS) $$(ELIBS) |
3fd422ff |
|
edb43487 |
$(SUBDIR)lib$(NAME).version: $(SUBDIR)version.h | $(SUBDIR) |
3e295e63 |
$$(M) $$(SRC_PATH)/ffbuild/libversion.sh $(NAME) $$< > $$@ |
edb43487 |
|
6fdd35a3 |
$(SUBDIR)lib$(FULLNAME).pc: $(SUBDIR)version.h | $(SUBDIR)
$$(M) $$(SRC_PATH)/ffbuild/pkgconfig_generate.sh $(NAME) "$(DESC)" |
92db5083 |
|
c5fd4b50 |
$(SUBDIR)lib$(NAME).ver: $(SUBDIR)lib$(NAME).v $(OBJS)
$$(M)sed 's/MAJOR/$(lib$(NAME)_VERSION_MAJOR)/' $$< | $(VERSION_SCRIPT_POSTPROCESS_CMD) > $$@
|
71c61f62 |
$(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR) |
63611f31 |
$(Q)cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME) |
71c61f62 |
|
56572787 |
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SLIBOBJS) $(SUBDIR)lib$(NAME).ver |
71c61f62 |
$(SLIB_CREATE_DEF_CMD) |
e34a3468 |
$$(LD) $(SHFLAGS) $(LDFLAGS) $(LDLIBFLAGS) $$(LD_O) $$(filter %.o,$$^) $(FFEXTRALIBS) |
71c61f62 |
$(SLIB_EXTRA_CMD)
|
b3ca11f0 |
ifdef SUBDIR
$(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
endif
|
0c8cc2c4 |
clean:: |
a6a750c7 |
$(RM) $(addprefix $(SUBDIR),$(CLEANFILES) $(CLEANSUFFIXES) $(LIBSUFFIXES)) \
$(CLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) $(CLEANSUFFIXES:%=$(SUBDIR)tests/%) |
a5fdda79 |
|
0c8cc2c4 |
distclean:: clean |
a6a750c7 |
$(RM) $(DISTCLEANSUFFIXES:%=$(SUBDIR)%) $(DISTCLEANSUFFIXES:%=$(SUBDIR)$(ARCH)/%) \
$(DISTCLEANSUFFIXES:%=$(SUBDIR)tests/%) |
0c8cc2c4 |
|
71c61f62 |
install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME) |
63611f31 |
$(Q)mkdir -p "$(SHLIBDIR)" |
2f138f0b |
$$(INSTALL) -m 755 $$< "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
5d1b39f7 |
$$(STRIP) "$(SHLIBDIR)/$(SLIB_INSTALL_NAME)" |
75758f84 |
$(Q)$(foreach F,$(SLIB_INSTALL_LINKS),(cd "$(SHLIBDIR)" && $(LN_S) $(SLIB_INSTALL_NAME) $(F));) |
2f138f0b |
$(if $(SLIB_INSTALL_EXTRA_SHLIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_SHLIB:%=$(SUBDIR)%) "$(SHLIBDIR)")
$(if $(SLIB_INSTALL_EXTRA_LIB),$(Q)mkdir -p "$(LIBDIR)")
$(if $(SLIB_INSTALL_EXTRA_LIB),$$(INSTALL) -m 644 $(SLIB_INSTALL_EXTRA_LIB:%=$(SUBDIR)%) "$(LIBDIR)") |
63611f31 |
|
71c61f62 |
install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME) |
63611f31 |
$(Q)mkdir -p "$(LIBDIR)" |
fd676deb |
$$(INSTALL) -m 644 $$< "$(LIBDIR)" |
6cfac0e9 |
$(LIB_INSTALL_EXTRA_CMD) |
71c61f62 |
|
34512bca |
install-lib$(NAME)-headers: $(addprefix $(SUBDIR),$(HEADERS) $(BUILT_HEADERS)) |
63611f31 |
$(Q)mkdir -p "$(INCINSTDIR)" |
34512bca |
$$(INSTALL) -m 644 $$^ "$(INCINSTDIR)"
|
13eb9fcf |
install-lib$(NAME)-pkgconfig: $(SUBDIR)lib$(FULLNAME).pc |
083b1a32 |
$(Q)mkdir -p "$(PKGCONFIGDIR)"
$$(INSTALL) -m 644 $$^ "$(PKGCONFIGDIR)" |
d3cb93b3 |
uninstall-libs:: |
50e10cbd |
-$(RM) "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \ |
d3cb93b3 |
"$(SHLIBDIR)/$(SLIBNAME)" \
"$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)" |
49440853 |
-$(RM) $(SLIB_INSTALL_EXTRA_SHLIB:%="$(SHLIBDIR)/%")
-$(RM) $(SLIB_INSTALL_EXTRA_LIB:%="$(LIBDIR)/%") |
50e10cbd |
-$(RM) "$(LIBDIR)/$(LIBNAME)" |
d3cb93b3 |
uninstall-headers:: |
a2b4d1df |
$(RM) $(addprefix "$(INCINSTDIR)/",$(HEADERS) $(BUILT_HEADERS)) |
083b1a32 |
$(RM) "$(PKGCONFIGDIR)/lib$(FULLNAME).pc" |
d42dce7b |
-rmdir "$(INCINSTDIR)" |
71c61f62 |
endef
$(eval $(RULES)) |
3fd422ff |
|
b339182e |
$(TOOLS): $(DEP_LIBS) $(SUBDIR)$($(CONFIG_SHARED:yes=S)LIBNAME)
$(TESTPROGS): $(DEP_LIBS) $(SUBDIR)$(LIBNAME) |
bbba084b |
|
3fd422ff |
testprogs: $(TESTPROGS) |