subdir.mak 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. SRC_DIR := $(SRC_PATH_BARE)/lib$(NAME)
  2. include $(SUBDIR)../common.mak
  3. LIBVERSION := $(lib$(NAME)_VERSION)
  4. LIBMAJOR := $(lib$(NAME)_VERSION_MAJOR)
  5. ifeq ($(BUILD_STATIC),yes)
  6. all: $(SUBDIR)$(LIBNAME)
  7. install-libs: install-lib$(NAME)-static
  8. $(SUBDIR)$(LIBNAME): $(OBJS)
  9. rm -f $@
  10. $(AR) rc $@ $^ $(EXTRAOBJS)
  11. $(RANLIB) $@
  12. endif
  13. INCINSTDIR := $(INCDIR)/lib$(NAME)
  14. define RULES
  15. ifdef BUILD_SHARED
  16. all: $(SUBDIR)$(SLIBNAME)
  17. install-libs: install-lib$(NAME)-shared
  18. $(SUBDIR)$(SLIBNAME): $(SUBDIR)$(SLIBNAME_WITH_MAJOR)
  19. cd ./$(SUBDIR) && $(LN_S) $(SLIBNAME_WITH_MAJOR) $(SLIBNAME)
  20. $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(OBJS) $(SUBDIR)lib$(NAME).ver
  21. $(SLIB_CREATE_DEF_CMD)
  22. $(CC) $(SHFLAGS) $(FFLDFLAGS) -o $$@ $$(filter-out $(SUBDIR)lib$(NAME).ver $(DEP_LIBS),$$^) $(FFEXTRALIBS) $(EXTRAOBJS)
  23. $(SLIB_EXTRA_CMD)
  24. ifdef SUBDIR
  25. $(SUBDIR)$(SLIBNAME_WITH_MAJOR): $(DEP_LIBS)
  26. endif
  27. endif
  28. install-lib$(NAME)-shared: $(SUBDIR)$(SLIBNAME)
  29. install -d "$(SHLIBDIR)"
  30. install -m 755 $(SUBDIR)$(SLIBNAME) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
  31. $(STRIP) "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
  32. cd "$(SHLIBDIR)" && \
  33. $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME_WITH_MAJOR)
  34. cd "$(SHLIBDIR)" && \
  35. $(LN_S) $(SLIBNAME_WITH_VERSION) $(SLIBNAME)
  36. $(SLIB_INSTALL_EXTRA_CMD)
  37. install-lib$(NAME)-static: $(SUBDIR)$(LIBNAME)
  38. install -d "$(LIBDIR)"
  39. install -m 644 $(SUBDIR)$(LIBNAME) "$(LIBDIR)"
  40. $(LIB_INSTALL_EXTRA_CMD)
  41. install-headers::
  42. install -d "$(INCINSTDIR)"
  43. install -d "$(LIBDIR)/pkgconfig"
  44. install -m 644 $(addprefix "$(SRC_DIR)"/,$(HEADERS)) "$(INCINSTDIR)"
  45. install -m 644 $(BUILD_ROOT)/lib$(NAME)/lib$(NAME).pc "$(LIBDIR)/pkgconfig"
  46. uninstall-libs::
  47. -rm -f "$(SHLIBDIR)/$(SLIBNAME_WITH_MAJOR)" \
  48. "$(SHLIBDIR)/$(SLIBNAME)" \
  49. "$(SHLIBDIR)/$(SLIBNAME_WITH_VERSION)"
  50. -$(SLIB_UNINSTALL_EXTRA_CMD)
  51. -rm -f "$(LIBDIR)/$(LIBNAME)"
  52. uninstall-headers::
  53. rm -f $(addprefix "$(INCINSTDIR)/",$(HEADERS))
  54. rm -f "$(LIBDIR)/pkgconfig/lib$(NAME).pc"
  55. -rmdir "$(INCDIR)"
  56. endef
  57. $(eval $(RULES))