summaryrefslogtreecommitdiff
path: root/packaging/Makefile
blob: 151791152f795df12807fbffc791f2199e5cfe5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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