summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-11-04 18:06:22 +0000
committerJean-Sébastien Pédron <jean-sebastien@rabbitmq.com>2015-11-04 18:06:40 +0000
commit4e854f2527da0ae5730be74f0355551fa59dc0d5 (patch)
treea4f78531baf3f5dcc47cc00d2cf9d6d72aec9f5e
parentc70e10f6ad90d018c97a308f9165ffcae3a98204 (diff)
downloadrabbitmq-server-git-4e854f2527da0ae5730be74f0355551fa59dc0d5.tar.gz
make packages: Move targets to packaging/Makefile
make packages is now independent of erlang.mk and the RabbitMQ source distribution.
-rw-r--r--Makefile53
-rw-r--r--packaging/Makefile108
2 files changed, 112 insertions, 49 deletions
diff --git a/Makefile b/Makefile
index ed78cb356c..4d3af35b97 100644
--- a/Makefile
+++ b/Makefile
@@ -418,53 +418,8 @@ install-windows-docs: install-windows-erlapp
# archive.
PACKAGES_SOURCE_DIST_FILE ?= $(firstword $(SOURCE_DIST_FILES))
-packages: package-deb package-rpm package-windows package-generic-unix
- @:
-
-package-deb: $(PACKAGES_SOURCE_DIST_FILE)
- $(gen_verbose) $(MAKE) -C packaging/debs/Debian \
- SOURCE_DIST_FILE=$(abspath $(PACKAGES_SOURCE_DIST_FILE)) \
- PACKAGES_DIR=$(PACKAGES_DIR) \
- all clean
-
-package-rpm: package-rpm-fedora package-rpm-suse
- @:
-
-package-rpm-fedora: $(PACKAGES_SOURCE_DIST_FILE)
- $(gen_verbose) $(MAKE) -C packaging/RPMS/Fedora \
- SOURCE_DIST_FILE=$(abspath $(PACKAGES_SOURCE_DIST_FILE)) \
- PACKAGES_DIR=$(PACKAGES_DIR) \
- all clean
-
-package-rpm-suse: $(PACKAGES_SOURCE_DIST_FILE)
- $(gen_verbose) $(MAKE) -C packaging/RPMS/Fedora \
- SOURCE_DIST_FILE=$(abspath $(PACKAGES_SOURCE_DIST_FILE)) \
- PACKAGES_DIR=$(PACKAGES_DIR) \
- RPM_OS=suse \
- all clean
-
-package-windows: $(PACKAGES_SOURCE_DIST_FILE)
- $(gen_verbose) $(MAKE) -C packaging/windows \
- SOURCE_DIST_FILE=$(abspath $(PACKAGES_SOURCE_DIST_FILE)) \
- PACKAGES_DIR=$(PACKAGES_DIR) \
- all clean
- $(verbose) $(MAKE) -C packaging/windows-exe \
- SOURCE_DIST_FILE=$(abspath $(PACKAGES_SOURCE_DIST_FILE)) \
- PACKAGES_DIR=$(PACKAGES_DIR) \
- all clean
-
+packages package-deb package-rpm package-rpm-fedora \
+package-rpm-suse package-windows package-standalone-macosx \
package-generic-unix: $(PACKAGES_SOURCE_DIST_FILE)
- $(gen_verbose) $(MAKE) -C packaging/generic-unix \
- SOURCE_DIST_FILE=$(abspath $(PACKAGES_SOURCE_DIST_FILE)) \
- PACKAGES_DIR=$(PACKAGES_DIR) \
- all clean
-
-ifeq ($(PLATFORM),darwin)
-packages: package-standalone-macosx
-
-package-standalone-macosx: $(PACKAGES_SOURCE_DIST_FILE)
- $(gen_verbose) $(MAKE) -C packaging/standalone OS=mac \
- SOURCE_DIST_FILE=$(abspath $(PACKAGES_SOURCE_DIST_FILE)) \
- PACKAGES_DIR=$(PACKAGES_DIR) \
- all clean
-endif
+ $(verbose) $(MAKE) -C packaging $@ \
+ SOURCE_DIST_FILE=$(abspath $(PACKAGES_SOURCE_DIST_FILE))
diff --git a/packaging/Makefile b/packaging/Makefile
new file mode 100644
index 0000000000..31ef548fc7
--- /dev/null
+++ b/packaging/Makefile
@@ -0,0 +1,108 @@
+# 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)
+$(info PACKAGES_DIR=$(PACKAGES_DIR) SOURCE_DIST_FILE=$(SOURCE_DIST_FILE) VERSION=$(VERSION) V=$(V))
+
+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)
+ echo $(V)
+ $(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