From c72dc20a932a7e9a2fb300798ef07c99feac8178 Mon Sep 17 00:00:00 2001 From: Domenico Luciani Date: Fri, 18 Aug 2023 22:15:35 +0200 Subject: [PATCH] Add support for darwin-arm64 chipset (#1169) * Add support for darwin-arm64 chipset Signed-off-by: Domenico Luciani * Split darwin builder into a separate module extracting the code for a more generic use Signed-off-by: Domenico Luciani * Split darwin.mk to lifecycle.mk and launcher.mk Signed-off-by: Domenico Luciani * Update launcher.mk with a better naming Co-authored-by: Natalie Arellano Signed-off-by: Domenico Luciani * Update lifecycle.mk with a better naming Co-authored-by: Natalie Arellano Signed-off-by: Domenico Luciani * Adjusted called function Signed-off-by: Domenico Luciani --------- Signed-off-by: Domenico Luciani Co-authored-by: Natalie Arellano --- Makefile | 52 +++++++++++++++++++++++++--------------------------- launcher.mk | 6 ++++++ lifecycle.mk | 11 +++++++++++ 3 files changed, 42 insertions(+), 27 deletions(-) create mode 100644 launcher.mk create mode 100644 lifecycle.mk diff --git a/Makefile b/Makefile index 75226123f..01bf030ed 100644 --- a/Makefile +++ b/Makefile @@ -184,34 +184,32 @@ else ln -sf lifecycle.exe $(OUT_DIR)$/creator.exe endif -build-darwin-amd64: build-darwin-amd64-lifecycle build-darwin-amd64-launcher - -build-darwin-amd64-lifecycle: $(BUILD_DIR)/darwin-amd64/lifecycle/lifecycle -$(BUILD_DIR)/darwin-amd64/lifecycle/lifecycle: export GOOS:=darwin -$(BUILD_DIR)/darwin-amd64/lifecycle/lifecycle: export GOARCH:=amd64 -$(BUILD_DIR)/darwin-amd64/lifecycle/lifecycle: OUT_DIR:=$(BUILD_DIR)/$(GOOS)-$(GOARCH)/lifecycle -$(BUILD_DIR)/darwin-amd64/lifecycle/lifecycle: $(GOFILES) -$(BUILD_DIR)/darwin-amd64/lifecycle/lifecycle: - @echo "> Building lifecycle for darwin/amd64..." - $(GOENV) $(GOBUILD) -o $(OUT_DIR)/lifecycle -a ./cmd/lifecycle - @echo "> Creating lifecycle symlinks for darwin/amd64..." - ln -sf lifecycle $(OUT_DIR)/detector - ln -sf lifecycle $(OUT_DIR)/analyzer - ln -sf lifecycle $(OUT_DIR)/restorer - ln -sf lifecycle $(OUT_DIR)/builder - ln -sf lifecycle $(OUT_DIR)/exporter - ln -sf lifecycle $(OUT_DIR)/rebaser +## DARWIN ARM64/AMD64 +include lifecycle.mk +include launcher.mk +build-darwin-arm64: build-darwin-arm64-lifecycle build-darwin-arm64-launcher +build-darwin-arm64-lifecycle: + $(eval GOARCH := arm64) + $(eval TARGET := darwin-arm64) + $(eval OUT_DIR := $(BUILD_DIR)/$(TARGET)/lifecycle) + $(call build_lifecycle) +build-darwin-arm64-launcher: + $(eval GOARCH := arm64) + $(eval TARGET := darwin-arm64) + $(eval OUT_DIR := $(BUILD_DIR)/$(TARGET)/lifecycle) + $(call build_launcher) -build-darwin-amd64-launcher: $(BUILD_DIR)/darwin-amd64/lifecycle/launcher -$(BUILD_DIR)/darwin-amd64/lifecycle/launcher: export GOOS:=darwin -$(BUILD_DIR)/darwin-amd64/lifecycle/launcher: export GOARCH:=amd64 -$(BUILD_DIR)/darwin-amd64/lifecycle/launcher: OUT_DIR:=$(BUILD_DIR)/$(GOOS)-$(GOARCH)/lifecycle -$(BUILD_DIR)/darwin-amd64/lifecycle/launcher: $(GOFILES) -$(BUILD_DIR)/darwin-amd64/lifecycle/launcher: - @echo "> Building launcher for darwin/amd64..." - mkdir -p $(OUT_DIR) - $(GOENV) $(GOBUILD) -o $(OUT_DIR)/launcher -a ./cmd/launcher - test $$(du -m $(OUT_DIR)/launcher|cut -f 1) -le 4 +build-darwin-amd64: build-darwin-amd64-lifecycle build-darwin-amd64-launcher +build-darwin-amd64-lifecycle: + $(eval GOARCH := amd64) + $(eval TARGET := darwin-amd64) + $(eval OUT_DIR := $(BUILD_DIR)/$(TARGET)/lifecycle) + $(call build_lifecycle) +build-darwin-amd64-launcher: + $(eval GOARCH := amd64) + $(eval TARGET := darwin-amd64) + $(eval OUT_DIR := $(BUILD_DIR)/$(TARGET)/lifecycle) + $(call build_launcher) generate-sbom: run-syft-windows run-syft-linux-amd64 run-syft-linux-arm64 diff --git a/launcher.mk b/launcher.mk new file mode 100644 index 000000000..62bcb2423 --- /dev/null +++ b/launcher.mk @@ -0,0 +1,6 @@ +define build_launcher + @echo "> Building launcher for $(TARGET)..." + mkdir -p $(OUT_DIR) + $(GOENV) $(GOBUILD) -o $(OUT_DIR)/launcher -a ./cmd/launcher + test $$(du -m $(OUT_DIR)/launcher | cut -f 1) -le 4 +endef \ No newline at end of file diff --git a/lifecycle.mk b/lifecycle.mk new file mode 100644 index 000000000..88301c6f5 --- /dev/null +++ b/lifecycle.mk @@ -0,0 +1,11 @@ +define build_lifecycle + @echo "> Building lifecycle for $(TARGET)..." + $(GOENV) $(GOBUILD) -o $(OUT_DIR)/lifecycle -a ./cmd/lifecycle + @echo "> Creating lifecycle symlinks for $(1)..." + ln -sf lifecycle $(OUT_DIR)/detector + ln -sf lifecycle $(OUT_DIR)/analyzer + ln -sf lifecycle $(OUT_DIR)/restorer + ln -sf lifecycle $(OUT_DIR)/builder + ln -sf lifecycle $(OUT_DIR)/exporter + ln -sf lifecycle $(OUT_DIR)/rebaser +endef \ No newline at end of file