1717
1818BUILD := $(shell date -u +"% Y-% m-% dT% H:% M:% SZ")
1919LDFLAGS = -s -w
20+ NPROCS := 4
21+ MAKEFLAGS += -j$(NPROCS )
2022LDFLAGS += -X github.com/aws/amazon-cloudwatch-agent/cfg/agentinfo.VersionStr=${VERSION}
2123LDFLAGS += -X github.com/aws/amazon-cloudwatch-agent/cfg/agentinfo.BuildStr=${BUILD}
2224LINUX_AMD64_BUILD = CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -buildmode=${CWAGENT_BUILD_MODE} -ldflags="${LDFLAGS}" -o $(BUILD_SPACE ) /bin/linux_amd64
@@ -44,7 +46,9 @@ LINTER = $(TOOLS_BIN_DIR)/golangci-lint
4446IMPI = $(TOOLS_BIN_DIR ) /impi
4547ADDLICENSE = $(TOOLS_BIN_DIR ) /addlicense
4648
47- prepackage : clean test build
49+ # NOTE: With -j, clean/test/build may race. On Make 4.4+, uncomment to serialize: .NOTPARALLEL: prepackage
50+ test_and_build : test build
51+ prepackage : clean test_and_build
4852release : prepackage package-rpm package-deb package-win package-darwin
4953nightly-release : prepackage package-rpm package-deb package-win
5054nightly-release-mac : prepackage package-darwin
@@ -63,33 +67,47 @@ copy-version-file: create-version-file
6367 mkdir -p build/bin/
6468 cp CWAGENT_VERSION $(BUILD_SPACE ) /bin/CWAGENT_VERSION
6569
66- amazon-cloudwatch-agent-linux : copy-version-file workload-discovery-linux
67- @echo Building CloudWatchAgent for Linux,Debian with ARM64 and AMD64
70+ amazon-cloudwatch-agent-linux : amazon-cloudwatch-agent-linux-amd64 amazon-cloudwatch-agent-linux-arm64
71+
72+ amazon-cloudwatch-agent-linux-amd64 : copy-version-file workload-discovery-linux
73+ @echo Building CloudWatchAgent for Linux AMD64
6874 $(LINUX_AMD64_BUILD ) /config-downloader github.com/aws/amazon-cloudwatch-agent/cmd/config-downloader
69- $(LINUX_ARM64_BUILD ) /config-downloader github.com/aws/amazon-cloudwatch-agent/cmd/config-downloader
7075 $(LINUX_AMD64_BUILD ) /config-translator github.com/aws/amazon-cloudwatch-agent/cmd/config-translator
71- $(LINUX_ARM64_BUILD ) /config-translator github.com/aws/amazon-cloudwatch-agent/cmd/config-translator
7276 $(LINUX_AMD64_BUILD ) /amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent
73- $(LINUX_ARM64_BUILD ) /amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent
7477 $(LINUX_AMD64_BUILD ) /start-amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/start-amazon-cloudwatch-agent
75- $(LINUX_ARM64_BUILD ) /start-amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/start-amazon-cloudwatch-agent
7678 $(LINUX_AMD64_BUILD ) /amazon-cloudwatch-agent-config-wizard github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent-config-wizard
79+
80+ amazon-cloudwatch-agent-linux-arm64 : copy-version-file workload-discovery-linux
81+ @echo Building CloudWatchAgent for Linux ARM64
82+ $(LINUX_ARM64_BUILD ) /config-downloader github.com/aws/amazon-cloudwatch-agent/cmd/config-downloader
83+ $(LINUX_ARM64_BUILD ) /config-translator github.com/aws/amazon-cloudwatch-agent/cmd/config-translator
84+ $(LINUX_ARM64_BUILD ) /amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent
85+ $(LINUX_ARM64_BUILD ) /start-amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/start-amazon-cloudwatch-agent
7786 $(LINUX_ARM64_BUILD ) /amazon-cloudwatch-agent-config-wizard github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent-config-wizard
7887
7988
80- amazon-cloudwatch-agent-darwin : copy-version-file workload-discovery-darwin
89+ amazon-cloudwatch-agent-darwin : amazon-cloudwatch-agent-darwin-amd64 amazon-cloudwatch-agent-darwin-arm64
90+
91+ amazon-cloudwatch-agent-darwin-amd64 : copy-version-file workload-discovery-darwin
8192ifneq ($(OS ) ,Windows_NT)
8293ifeq ($(shell uname -s) ,Darwin)
83- @echo Building CloudWatchAgent for MacOS with ARM64 and AMD64
94+ @echo Building CloudWatchAgent for MacOS AMD64
8495 $(DARWIN_BUILD_AMD64)/config-downloader github.com/aws/amazon-cloudwatch-agent/cmd/config-downloader
85- $(DARWIN_BUILD_ARM64)/config-downloader github.com/aws/amazon-cloudwatch-agent/cmd/config-downloader
8696 $(DARWIN_BUILD_AMD64)/config-translator github.com/aws/amazon-cloudwatch-agent/cmd/config-translator
87- $(DARWIN_BUILD_ARM64)/config-translator github.com/aws/amazon-cloudwatch-agent/cmd/config-translator
8897 $(DARWIN_BUILD_AMD64)/amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent
89- $(DARWIN_BUILD_ARM64)/amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent
9098 $(DARWIN_BUILD_AMD64)/start-amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/start-amazon-cloudwatch-agent
91- $(DARWIN_BUILD_ARM64)/start-amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/start-amazon-cloudwatch-agent
9299 $(DARWIN_BUILD_AMD64)/amazon-cloudwatch-agent-config-wizard github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent-config-wizard
100+ endif
101+ endif
102+
103+ amazon-cloudwatch-agent-darwin-arm64 : copy-version-file workload-discovery-darwin
104+ ifneq ($(OS ) ,Windows_NT)
105+ ifeq ($(shell uname -s) ,Darwin)
106+ @echo Building CloudWatchAgent for MacOS ARM64
107+ $(DARWIN_BUILD_ARM64)/config-downloader github.com/aws/amazon-cloudwatch-agent/cmd/config-downloader
108+ $(DARWIN_BUILD_ARM64)/config-translator github.com/aws/amazon-cloudwatch-agent/cmd/config-translator
109+ $(DARWIN_BUILD_ARM64)/amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent
110+ $(DARWIN_BUILD_ARM64)/start-amazon-cloudwatch-agent github.com/aws/amazon-cloudwatch-agent/cmd/start-amazon-cloudwatch-agent
93111 $(DARWIN_BUILD_ARM64)/amazon-cloudwatch-agent-config-wizard github.com/aws/amazon-cloudwatch-agent/cmd/amazon-cloudwatch-agent-config-wizard
94112endif
95113endif
@@ -235,7 +253,7 @@ clean::
235253 rm -rf release/ build/
236254 rm -f CWAGENT_VERSION
237255
238- package-prepare-rpm :
256+ package-prepare-rpm : amazon-cloudwatch-agent-linux
239257 # amd64 rpm
240258 mkdir -p $(BUILD_SPACE ) /private/linux/amd64/rpm/amazon-cloudwatch-agent-pre-pkg
241259 cp $(BUILD_SPACE ) /bin/linux_amd64/* $(BUILD_SPACE ) /private/linux/amd64/rpm/amazon-cloudwatch-agent-pre-pkg/
@@ -265,7 +283,7 @@ package-prepare-rpm:
265283 cp $(BASE_SPACE)/packaging/opentelemetry-jmx-metrics.jar $(BUILD_SPACE)/private/linux/arm64/rpm/amazon-cloudwatch-agent-pre-pkg/opentelemetry-jmx-metrics.jar
266284 cp -rf $(BASE_SPACE)/Tools $(BUILD_SPACE)/
267285
268- package-prepare-deb :
286+ package-prepare-deb : amazon-cloudwatch-agent-linux
269287 # amd64 deb
270288 mkdir -p $(BUILD_SPACE ) /private/linux/amd64/deb/amazon-cloudwatch-agent-pre-pkg
271289 cp $(BUILD_SPACE ) /bin/linux_amd64/* $(BUILD_SPACE ) /private/linux/amd64/deb/amazon-cloudwatch-agent-pre-pkg/
@@ -295,7 +313,7 @@ package-prepare-deb:
295313 cp -rf $(BASE_SPACE)/Tools $(BUILD_SPACE)/
296314 cp -rf $(BASE_SPACE)/packaging $(BUILD_SPACE)/
297315
298- package-prepare-win-zip :
316+ package-prepare-win-zip : amazon-cloudwatch-agent-windows
299317 # amd64 win
300318 mkdir -p $(BUILD_SPACE ) /private/windows/amd64/zip/amazon-cloudwatch-agent-pre-pkg
301319 cp $(BUILD_SPACE ) /bin/windows_amd64/* $(BUILD_SPACE ) /private/windows/amd64/zip/amazon-cloudwatch-agent-pre-pkg/
@@ -310,7 +328,7 @@ package-prepare-win-zip:
310328 cp $(BASE_SPACE ) /packaging/opentelemetry-jmx-metrics.jar $(BUILD_SPACE ) /private/windows/amd64/zip/amazon-cloudwatch-agent-pre-pkg/opentelemetry-jmx-metrics.jar
311329 cp -rf $(BASE_SPACE ) /Tools $(BUILD_SPACE ) /
312330
313- package-prepare-darwin-tar :
331+ package-prepare-darwin-tar : amazon-cloudwatch-agent-darwin
314332 # amd64 darwin
315333 mkdir -p $(BUILD_SPACE ) /private/darwin/amd64/tar/amazon-cloudwatch-agent-pre-pkg
316334 cp $(BUILD_SPACE ) /bin/darwin_amd64/* $(BUILD_SPACE ) /private/darwin/amd64/tar/amazon-cloudwatch-agent-pre-pkg/
0 commit comments