summaryrefslogtreecommitdiff
path: root/packaging
diff options
context:
space:
mode:
Diffstat (limited to 'packaging')
-rw-r--r--packaging/Makefile106
-rw-r--r--packaging/windows-exe/Makefile2
2 files changed, 107 insertions, 1 deletions
diff --git a/packaging/Makefile b/packaging/Makefile
new file mode 100644
index 0000000000..151791152f
--- /dev/null
+++ b/packaging/Makefile
@@ -0,0 +1,106 @@
+# 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)
+
+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
+
+packages: package-deb package-rpm package-windows package-generic-unix
+ @:
+
+package-deb: $(SOURCE_DIST_FILE)
+ $(gen_verbose) $(MAKE) -C debs/Debian \
+ SOURCE_DIST_FILE=$(abspath $(SOURCE_DIST_FILE)) \
+ PACKAGES_DIR=$(abspath $(PACKAGES_DIR)) \
+ all clean
+
+package-rpm: package-rpm-fedora package-rpm-suse
+ @:
+
+package-rpm-fedora: $(SOURCE_DIST_FILE)
+ $(gen_verbose) $(MAKE) -C RPMS/Fedora \
+ SOURCE_DIST_FILE=$(abspath $(SOURCE_DIST_FILE)) \
+ PACKAGES_DIR=$(abspath $(PACKAGES_DIR)) \
+ all clean
+
+package-rpm-suse: $(SOURCE_DIST_FILE)
+ $(gen_verbose) $(MAKE) -C RPMS/Fedora \
+ SOURCE_DIST_FILE=$(abspath $(SOURCE_DIST_FILE)) \
+ PACKAGES_DIR=$(abspath $(PACKAGES_DIR)) \
+ RPM_OS=suse \
+ all clean
+
+package-windows: $(SOURCE_DIST_FILE)
+ $(gen_verbose) $(MAKE) -C windows \
+ SOURCE_DIST_FILE=$(abspath $(SOURCE_DIST_FILE)) \
+ PACKAGES_DIR=$(abspath $(PACKAGES_DIR)) \
+ all clean
+ $(verbose) $(MAKE) -C windows-exe \
+ SOURCE_DIST_FILE=$(abspath $(SOURCE_DIST_FILE)) \
+ PACKAGES_DIR=$(abspath $(PACKAGES_DIR)) \
+ all clean
+
+package-generic-unix: $(SOURCE_DIST_FILE)
+ $(gen_verbose) $(MAKE) -C generic-unix \
+ SOURCE_DIST_FILE=$(abspath $(SOURCE_DIST_FILE)) \
+ PACKAGES_DIR=$(abspath $(PACKAGES_DIR)) \
+ all clean
+
+ifeq ($(PLATFORM),darwin)
+packages: package-standalone-macosx
+
+package-standalone-macosx: $(SOURCE_DIST_FILE)
+ $(gen_verbose) $(MAKE) -C standalone OS=mac \
+ SOURCE_DIST_FILE=$(abspath $(SOURCE_DIST_FILE)) \
+ PACKAGES_DIR=$(abspath $(PACKAGES_DIR)) \
+ all clean
+endif
diff --git a/packaging/windows-exe/Makefile b/packaging/windows-exe/Makefile
index 6abc7fa2fc..fad0eae5f5 100644
--- a/packaging/windows-exe/Makefile
+++ b/packaging/windows-exe/Makefile
@@ -3,7 +3,7 @@ ZIP_DIR = ../windows
else
ZIP_DIR = $(PACKAGES_DIR)
endif
-ZIP = $(notdir $(wildcard $(ZIP_DIR)/rabbitmq-server-windows-[0-9.]*.zip))
+ZIP = $(notdir $(wildcard $(ZIP_DIR)/rabbitmq-server-windows-$(VERSION).zip))
VERSION = $(patsubst rabbitmq-server-windows-%.zip,%,$(ZIP))