Makefile 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. # Keep this short to avoid bloating beam files with long file path info
  2. TOPDIR := /tmp/emqx
  3. SRCDIR := $(TOPDIR)/$(PKG_VSN)
  4. BUILT := $(SRCDIR)/BUILT
  5. dash := -
  6. none :=
  7. space := $(none) $(none)
  8. ## RPM does not allow '-' in version number and release string, replace with '_'
  9. RPM_VSN := $(subst -,_,$(PKG_VSN))
  10. RPM_REL := otp$(subst -,_,$(OTP_VSN))
  11. EMQX_NAME=$(subst -pkg,,$(EMQX_BUILD))
  12. TAR_PKG_DIR ?= _build/$(EMQX_BUILD)/rel/emqx
  13. TAR_PKG := $(EMQX_REL)/$(TAR_PKG_DIR)/emqx-$(PKG_VSN).tar.gz
  14. SOURCE_PKG := emqx-$(RPM_VSN)-$(RPM_REL).$(shell uname -m)
  15. TARGET_PKG := $(EMQX_NAME)-$(shell $(EMQX_REL)/pkg-vsn.sh $(EMQX_NAME) --long)
  16. SYSTEMD := $(shell if command -v systemctl >/dev/null 2>&1; then echo yes; fi)
  17. # Not $(PWD) as it does not work for make -C
  18. CURDIR := $(shell pwd)
  19. SERVICE_SRC := $(if $(SYSTEMD),$(CURDIR)/emqx.service,$(CURDIR)/init.script)
  20. SERVICE_DST := $(if $(SYSTEMD),%{_unitdir}/emqx.service,%{_initddir}/emqx)
  21. POST_ADDITION := $(if $(SYSTEMD),%systemd_post %{_name}.service,echo post)
  22. PREUN_ADDITION := $(if $(SYSTEMD),%systemd_preun %{_name}.service,echo preun)
  23. .PHONY: all
  24. all: | $(BUILT)
  25. cd $(SRCDIR)
  26. rpmbuild -v -bb \
  27. --define "_package_name $(EMQX_NAME)" \
  28. --define "_name emqx" \
  29. --define "_topdir $(TOPDIR)" \
  30. --define "_version $(RPM_VSN)" \
  31. --define "_reldir $(SRCDIR)" \
  32. --define "_release $(RPM_REL)" \
  33. --define "_service_src $(SERVICE_SRC)" \
  34. --define "_service_dst $(SERVICE_DST)" \
  35. --define "_post_addition $(POST_ADDITION)" \
  36. --define "_preun_addition $(PREUN_ADDITION)" \
  37. --define "_sharedstatedir /var/lib" \
  38. emqx.spec
  39. mkdir -p $(EMQX_REL)/_packages/$(EMQX_NAME)
  40. cp $(TOPDIR)/RPMS/$(shell uname -m)/$(SOURCE_PKG).rpm $(EMQX_REL)/_packages/$(EMQX_NAME)/$(TARGET_PKG).rpm
  41. sha256sum $(EMQX_REL)/_packages/$(EMQX_NAME)/$(TARGET_PKG).rpm | head -c 64 > \
  42. $(EMQX_REL)/_packages/$(EMQX_NAME)/$(TARGET_PKG).rpm.sha256
  43. $(BUILT):
  44. mkdir -p $(TOPDIR) $(SRCDIR) $(SRCDIR)/BUILT
  45. tar zxf $(TAR_PKG) -C $(SRCDIR)
  46. clean:
  47. rm -rf $(SRCDIR)