You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cd...@apache.org on 2024/03/27 14:35:36 UTC
(camel-k) branch main updated: fix(#5288): Makefile building platform specific kamel CLI binary
This is an automated email from the ASF dual-hosted git repository.
cdeppisch pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/main by this push:
new 195770ef2 fix(#5288): Makefile building platform specific kamel CLI binary
195770ef2 is described below
commit 195770ef2a6731e66c9210853cf48af9b1fc65dd
Author: Christoph Deppisch <cd...@redhat.com>
AuthorDate: Wed Mar 27 10:16:52 2024 +0100
fix(#5288): Makefile building platform specific kamel CLI binary
- Add Makefile build-platform to build the platform specific kamel CLI binary (e.g. darwin/arm64)
- Image build statically builds the linux binary for the Docker image and additionally builds platform specific kamel CLI binary if running on host other than linux
- Enables developers running on platforms other than linux to directly use the built kamel CLI binary
---
script/Makefile | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/script/Makefile b/script/Makefile
index a63e165cf..b960d013c 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -226,6 +226,8 @@ codegen-tools-install: controller-gen
build: codegen build-resources test build-kamel build-compile-integration-tests
+build-platform: build build-kamel-platform
+
ci-build: clean codegen set-version check-licenses dir-licenses build-kamel cross-compile
do-build: gotestfmt-install
@@ -353,6 +355,15 @@ build-kamel:
# Symbolic link to a local CLI
ln -sf build/_output/bin/kamel-$(IMAGE_ARCH) ./kamel
+build-kamel-platform:
+ # Perform only when running on OS other than linux
+ifneq ($(shell uname -s 2>/dev/null || echo Unknown),Linux)
+ @echo "####### Building platform specific kamel CLI for $(IMAGE_ARCH) architecture..."
+ CGO_ENABLED=0 GOARCH=$(IMAGE_ARCH) go build $(GOFLAGS) -o build/_output/bin/kamel-$(IMAGE_ARCH) ./cmd/kamel/*.go
+ # Symbolic link to a local CLI
+ ln -sf build/_output/bin/kamel-$(IMAGE_ARCH) ./kamel
+endif
+
build-resources:
./script/get_catalog.sh $(DEFAULT_RUNTIME_VERSION) $(STAGING_RUNTIME_REPO)
@@ -430,7 +441,9 @@ endif
DOCKER_TAG := $(CUSTOM_IMAGE):$(CUSTOM_VERSION)-$(IMAGE_ARCH)
-images: build maven-overlay bundle-kamelets
+images: build maven-overlay bundle-kamelets image-build build-kamel-platform
+
+image-build:
ifneq (,$(findstring SNAPSHOT,$(DEFAULT_RUNTIME_VERSION)))
./script/package_maven_artifacts.sh -s "$(STAGING_RUNTIME_REPO)" -d "$(CAMEL_K_RUNTIME_DIR)" $(DEFAULT_RUNTIME_VERSION)
endif
@@ -536,7 +549,7 @@ release-kustomize:
get-staging-repo:
@echo $(or ${STAGING_RUNTIME_REPO},https://repository.apache.org/content/repositories/snapshots@id=apache-snapshots@snapshots)
-.PHONY: do-build build build-kamel build-resources dep codegen images images-push images-push-staging test check clean release cross-compile package-examples set-version git-tag check-licenses build-resources release-helm release-staging release-nightly get-staging-repo get-version bundle-kamelets
+.PHONY: do-build build build-kamel build-kamel-platform build-resources dep codegen images images-push images-push-staging image-build test check clean release cross-compile package-examples set-version git-tag check-licenses build-resources release-helm release-staging release-nightly get-staging-repo get-version bundle-kamelets
.PHONY: controller-gen kubectl kustomize operator-sdk opm
# find or download controller-gen if necessary