diff options
Diffstat (limited to 'packaging/Makefile')
| -rw-r--r-- | packaging/Makefile | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/packaging/Makefile b/packaging/Makefile new file mode 100644 index 0000000000..da3dcccb60 --- /dev/null +++ b/packaging/Makefile @@ -0,0 +1,103 @@ +# Platform detection. + +ifeq ($(PLATFORM),) +UNAME_S := $(shell uname -s) + +ifeq ($(UNAME_S),Linux) +PLATFORM = linux +else ifeq ($(UNAME_S),Darwin) +PLATFORM = darwin +else ifeq ($(UNAME_S),SunOS) +PLATFORM = solaris +else ifeq ($(UNAME_S),GNU) +PLATFORM = gnu +else ifeq ($(UNAME_S),FreeBSD) +PLATFORM = freebsd +else ifeq ($(UNAME_S),NetBSD) +PLATFORM = netbsd +else ifeq ($(UNAME_S),OpenBSD) +PLATFORM = openbsd +else ifeq ($(UNAME_S),DragonFly) +PLATFORM = dragonfly +else ifeq ($(shell uname -o),Msys) +PLATFORM = msys2 +else +$(error Unable to detect platform. Please open a ticket with the output of uname -a.) +endif +endif + +all: packages + @: + +# -------------------------------------------------------------------- +# Packaging. +# -------------------------------------------------------------------- + +.PHONY: packages package-deb \ + package-rpm package-rpm-fedora package-rpm-suse \ + package-windows package-standalone-macosx \ + package-generic-unix + +PACKAGES_DIR ?= ../PACKAGES +SOURCE_DIST_FILE ?= $(wildcard $(PACKAGES_DIR)/rabbitmq-server-*.tar.xz) + +ifneq ($(filter-out clean,$(MAKECMDGOALS)),) +ifeq ($(SOURCE_DIST_FILE),) +$(error Cannot find source archive; please specify SOURCE_DIST_FILE) +endif +ifneq ($(words $(SOURCE_DIST_FILE)),1) +$(error Multile source archives found; please specify SOURCE_DIST_FILE) +endif +ifeq ($(filter %.tar.xz %.txz,$(SOURCE_DIST_FILE)),) +$(error The source archive must a tar.xz archive) +endif +ifeq ($(wildcard $(SOURCE_DIST_FILE)),) +$(error The source archive must exist) +endif +endif + +ifndef NO_CLEAN +DO_CLEAN := clean +endif + +VARS = SOURCE_DIST_FILE="$(abspath $(SOURCE_DIST_FILE))" \ + PACKAGES_DIR="$(abspath $(PACKAGES_DIR))" \ + SIGNING_KEY="$(SIGNING_KEY)" \ + SIGNING_USER_ID="$(SIGNING_USER_ID)" \ + SIGNING_USER_EMAIL="$(SIGNING_USER_EMAIL)" + +packages: package-deb package-rpm package-windows package-generic-unix + @: + +package-deb: $(SOURCE_DIST_FILE) + $(gen_verbose) $(MAKE) -C debs/Debian $(VARS) all $(DO_CLEAN) + +package-rpm: package-rpm-fedora package-rpm-suse + @: + +package-rpm-fedora: $(SOURCE_DIST_FILE) + $(gen_verbose) $(MAKE) -C RPMS/Fedora $(VARS) all $(DO_CLEAN) + +package-rpm-suse: $(SOURCE_DIST_FILE) + $(gen_verbose) $(MAKE) -C RPMS/Fedora $(VARS) RPM_OS=suse all $(DO_CLEAN) + +package-windows: $(SOURCE_DIST_FILE) + $(gen_verbose) $(MAKE) -C windows $(VARS) all $(DO_CLEAN) + $(verbose) $(MAKE) -C windows-exe $(VARS) all $(DO_CLEAN) + +package-generic-unix: $(SOURCE_DIST_FILE) + $(gen_verbose) $(MAKE) -C generic-unix $(VARS) all $(DO_CLEAN) + +ifeq ($(PLATFORM),darwin) +packages: package-standalone-macosx + +package-standalone-macosx: $(SOURCE_DIST_FILE) + $(gen_verbose) $(MAKE) -C standalone $(VARS) OS=mac all $(DO_CLEAN) +endif + +.PHONY: clean + +clean: + for subdir in debs/Debian RPMS/Fedora windows windows-exe generic-unix standalone; do \ + $(MAKE) -C "$$subdir" clean; \ + done |
