forked from vectordotdev/vector
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile.packaging
More file actions
136 lines (101 loc) · 6.25 KB
/
Makefile.packaging
File metadata and controls
136 lines (101 loc) · 6.25 KB
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# Makefile.packaging
#
# Packaging and release targets for Vector.
# Separated from the main Makefile so that `cargo vdev version` (needed for
# VERSION) is only executed when packaging/release targets are invoked.
#
# Usage:
# make -f Makefile.packaging <target>
#
# These targets are also accessible via the main Makefile, which forwards
# packaging and release targets here automatically.
VDEV := cargo vdev
PROFILE ?= release
# Set version — only evaluated when this Makefile is loaded
export VERSION ?= $(shell command -v cargo >/dev/null && $(VDEV) version || echo unknown)
export VECTOR_VERSION := ${VERSION}
# Delegate cross-compilation prerequisites to the main Makefile
target/%/vector.tar.gz:
unset TRIPLE && $(MAKE) $@
# .SECONDEXPANSION allows prerequisites to reference $* (the pattern stem) and
# $(PROFILE) (a variable) by escaping them as $$* and $$(PROFILE). Without it,
# both would expand to empty at parse time before any target is matched.
.SECONDEXPANSION:
##@ Packaging
# archives
target/artifacts/vector-${VERSION}-%.tar.gz: export TRIPLE :=$(@:target/artifacts/vector-${VERSION}-%.tar.gz=%)
target/artifacts/vector-${VERSION}-%.tar.gz: target/$$*/$$(PROFILE)/vector.tar.gz
@echo "Built to ${<}, relocating to ${@}"
@mkdir -p target/artifacts/
@cp -v \
${<} \
${@}
.PHONY: package-x86_64-unknown-linux-gnu-all
package-x86_64-unknown-linux-gnu-all: package-x86_64-unknown-linux-gnu package-deb-x86_64-unknown-linux-gnu package-rpm-x86_64-unknown-linux-gnu # .tar.gz, .deb, .rpm
.PHONY: package-x86_64-unknown-linux-musl-all
package-x86_64-unknown-linux-musl-all: package-x86_64-unknown-linux-musl # .tar.gz
.PHONY: package-aarch64-unknown-linux-musl-all
package-aarch64-unknown-linux-musl-all: package-aarch64-unknown-linux-musl # .tar.gz
.PHONY: package-aarch64-unknown-linux-gnu-all
package-aarch64-unknown-linux-gnu-all: package-aarch64-unknown-linux-gnu package-deb-aarch64 package-rpm-aarch64 # .tar.gz, .deb, .rpm
.PHONY: package-armv7-unknown-linux-gnueabihf-all
package-armv7-unknown-linux-gnueabihf-all: package-armv7-unknown-linux-gnueabihf package-deb-armv7-gnu package-rpm-armv7hl-gnu # .tar.gz, .deb, .rpm
.PHONY: package-armv7-unknown-linux-musleabihf-all
package-armv7-unknown-linux-musleabihf-all: package-armv7-unknown-linux-musleabihf # .tar.gz
.PHONY: package-arm-unknown-linux-gnueabi-all
package-arm-unknown-linux-gnueabi-all: package-arm-unknown-linux-gnueabi package-deb-arm-gnu # .tar.gz, .deb
.PHONY: package-arm-unknown-linux-musleabi-all
package-arm-unknown-linux-musleabi-all: package-arm-unknown-linux-musleabi # .tar.gz
.PHONY: package-x86_64-unknown-linux-gnu
package-x86_64-unknown-linux-gnu: target/artifacts/vector-${VERSION}-x86_64-unknown-linux-gnu.tar.gz ## Build an archive suitable for the `x86_64-unknown-linux-gnu` triple.
@echo "Output to ${<}."
.PHONY: package-x86_64-unknown-linux-musl
package-x86_64-unknown-linux-musl: target/artifacts/vector-${VERSION}-x86_64-unknown-linux-musl.tar.gz ## Build an archive suitable for the `x86_64-unknown-linux-musl` triple.
@echo "Output to ${<}."
.PHONY: package-aarch64-unknown-linux-musl
package-aarch64-unknown-linux-musl: target/artifacts/vector-${VERSION}-aarch64-unknown-linux-musl.tar.gz ## Build an archive suitable for the `aarch64-unknown-linux-musl` triple.
@echo "Output to ${<}."
.PHONY: package-aarch64-unknown-linux-gnu
package-aarch64-unknown-linux-gnu: target/artifacts/vector-${VERSION}-aarch64-unknown-linux-gnu.tar.gz ## Build an archive suitable for the `aarch64-unknown-linux-gnu` triple.
@echo "Output to ${<}."
.PHONY: package-armv7-unknown-linux-gnueabihf
package-armv7-unknown-linux-gnueabihf: target/artifacts/vector-${VERSION}-armv7-unknown-linux-gnueabihf.tar.gz ## Build an archive suitable for the `armv7-unknown-linux-gnueabihf` triple.
@echo "Output to ${<}."
.PHONY: package-armv7-unknown-linux-musleabihf
package-armv7-unknown-linux-musleabihf: target/artifacts/vector-${VERSION}-armv7-unknown-linux-musleabihf.tar.gz ## Build an archive suitable for the `armv7-unknown-linux-musleabihf triple.
@echo "Output to ${<}."
.PHONY: package-arm-unknown-linux-gnueabi
package-arm-unknown-linux-gnueabi: target/artifacts/vector-${VERSION}-arm-unknown-linux-gnueabi.tar.gz ## Build an archive suitable for the `arm-unknown-linux-gnueabi` triple.
@echo "Output to ${<}."
.PHONY: package-arm-unknown-linux-musleabi
package-arm-unknown-linux-musleabi: target/artifacts/vector-${VERSION}-arm-unknown-linux-musleabi.tar.gz ## Build an archive suitable for the `arm-unknown-linux-musleabi` triple.
@echo "Output to ${<}."
# debs
.PHONY: package-deb-x86_64-unknown-linux-gnu
package-deb-x86_64-unknown-linux-gnu: package-x86_64-unknown-linux-gnu ## Build the x86_64 GNU deb package
TARGET=x86_64-unknown-linux-gnu $(VDEV) package deb
.PHONY: package-deb-x86_64-unknown-linux-musl
package-deb-x86_64-unknown-linux-musl: package-x86_64-unknown-linux-musl ## Build the x86_64 GNU deb package
TARGET=x86_64-unknown-linux-musl $(VDEV) package deb
.PHONY: package-deb-aarch64
package-deb-aarch64: package-aarch64-unknown-linux-gnu ## Build the aarch64 deb package
TARGET=aarch64-unknown-linux-gnu $(VDEV) package deb
.PHONY: package-deb-armv7-gnu
package-deb-armv7-gnu: package-armv7-unknown-linux-gnueabihf ## Build the armv7-unknown-linux-gnueabihf deb package
TARGET=armv7-unknown-linux-gnueabihf $(VDEV) package deb
.PHONY: package-deb-arm-gnu
package-deb-arm-gnu: package-arm-unknown-linux-gnueabi ## Build the arm-unknown-linux-gnueabi deb package
TARGET=arm-unknown-linux-gnueabi $(VDEV) package deb
# rpms
.PHONY: package-rpm-x86_64-unknown-linux-gnu
package-rpm-x86_64-unknown-linux-gnu: package-x86_64-unknown-linux-gnu ## Build the x86_64 rpm package
TARGET=x86_64-unknown-linux-gnu $(VDEV) package rpm
.PHONY: package-rpm-x86_64-unknown-linux-musl
package-rpm-x86_64-unknown-linux-musl: package-x86_64-unknown-linux-musl ## Build the x86_64 musl rpm package
TARGET=x86_64-unknown-linux-musl $(VDEV) package rpm
.PHONY: package-rpm-aarch64
package-rpm-aarch64: package-aarch64-unknown-linux-gnu ## Build the aarch64 rpm package
TARGET=aarch64-unknown-linux-gnu $(VDEV) package rpm
.PHONY: package-rpm-armv7hl-gnu
package-rpm-armv7hl-gnu: package-armv7-unknown-linux-gnueabihf ## Build the armv7hl-unknown-linux-gnueabihf rpm package
TARGET=armv7-unknown-linux-gnueabihf ARCH=armv7hl $(VDEV) package rpm