mirror of
https://github.com/aljazceru/kata-containers.git
synced 2026-01-21 07:14:25 +01:00
Makefile is determining the architecture by running uname command which gives ppc64le as output. But rust toolchain target is available with the name powerpc64le for ppc64le arch. So this change took care of that. Signed-off-by: Abhishek Dasgupta <abdasgupta@in.ibm.com>
147 lines
3.5 KiB
Makefile
147 lines
3.5 KiB
Makefile
# Copyright (c) 2019 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
PROJECT_NAME = Kata Containers
|
|
PROJECT_URL = https://github.com/kata-containers
|
|
PROJECT_COMPONENT = kata-agent
|
|
|
|
TARGET = $(PROJECT_COMPONENT)
|
|
|
|
SOURCES := \
|
|
$(shell find . 2>&1 | grep -E '.*\.rs$$') \
|
|
Cargo.toml
|
|
|
|
VERSION_FILE := ./VERSION
|
|
VERSION := $(shell grep -v ^\# $(VERSION_FILE))
|
|
COMMIT_NO := $(shell git rev-parse HEAD 2>/dev/null || true)
|
|
COMMIT_NO_SHORT := $(shell git rev-parse --short HEAD 2>/dev/null || true)
|
|
COMMIT := $(if $(shell git status --porcelain --untracked-files=no 2>/dev/null || true),${COMMIT_NO}-dirty,${COMMIT_NO})
|
|
COMMIT_MSG = $(if $(COMMIT),$(COMMIT),unknown)
|
|
|
|
# Exported to allow cargo to see it
|
|
export VERSION_COMMIT := $(if $(COMMIT),$(VERSION)-$(COMMIT),$(VERSION))
|
|
|
|
BUILD_TYPE = release
|
|
|
|
# set proto file to generate
|
|
ifdef proto
|
|
PROTO_FILE=${proto}
|
|
endif
|
|
|
|
ARCH = $(shell uname -m)
|
|
LIBC ?= musl
|
|
ifneq ($(LIBC),musl)
|
|
ifeq ($(LIBC),gnu)
|
|
override LIBC = gnu
|
|
else
|
|
$(error "ERROR: A non supported LIBC value was passed. Supported values are musl and gnu")
|
|
endif
|
|
endif
|
|
|
|
ifeq ($(ARCH), ppc64le)
|
|
override ARCH = powerpc64le
|
|
endif
|
|
|
|
TRIPLE = $(ARCH)-unknown-linux-$(LIBC)
|
|
|
|
TARGET_PATH = target/$(TRIPLE)/$(BUILD_TYPE)/$(TARGET)
|
|
|
|
DESTDIR :=
|
|
BINDIR := /usr/bin
|
|
|
|
# Define if agent will be installed as init
|
|
INIT := no
|
|
|
|
# Path to systemd unit directory if installed as not init.
|
|
UNIT_DIR := /usr/lib/systemd/system
|
|
|
|
GENERATED_FILES :=
|
|
|
|
ifeq ($(INIT),no)
|
|
# Unit file to start kata agent in systemd systems
|
|
UNIT_FILES = kata-agent.service
|
|
GENERATED_FILES := $(UNIT_FILES)
|
|
# Target to be reached in systemd services
|
|
UNIT_FILES += kata-containers.target
|
|
endif
|
|
|
|
# Display name of command and it's version (or a message if not available).
|
|
#
|
|
# Arguments:
|
|
#
|
|
# 1: Name of command
|
|
define get_command_version
|
|
$(shell printf "%s: %s\\n" $(1) "$(or $(shell $(1) --version 2>/dev/null), (not available))")
|
|
endef
|
|
|
|
define get_toolchain_version
|
|
$(shell printf "%s: %s\\n" "toolchain" "$(or $(shell rustup show active-toolchain 2>/dev/null), (unknown))")
|
|
endef
|
|
|
|
define INSTALL_FILE
|
|
install -D -m 644 $1 $(DESTDIR)$2/$1 || exit 1;
|
|
endef
|
|
|
|
default: $(TARGET) show-header
|
|
|
|
$(TARGET): $(TARGET_PATH)
|
|
|
|
$(TARGET_PATH): $(SOURCES) | show-summary
|
|
@cargo build --target $(TRIPLE) --$(BUILD_TYPE)
|
|
|
|
show-header:
|
|
@printf "%s - version %s (commit %s)\n\n" "$(TARGET)" "$(VERSION)" "$(COMMIT_MSG)"
|
|
|
|
$(GENERATED_FILES): %: %.in
|
|
@sed \
|
|
-e 's|[@]bindir[@]|$(BINDIR)|g' \
|
|
-e 's|[@]kata-agent[@]|$(TARGET)|g' \
|
|
"$<" > "$@"
|
|
|
|
install: build-service
|
|
@install -D $(TARGET_PATH) $(DESTDIR)/$(BINDIR)/$(TARGET)
|
|
|
|
clean:
|
|
@cargo clean
|
|
|
|
test:
|
|
@cargo test --all --target $(TRIPLE)
|
|
|
|
check: test
|
|
|
|
run:
|
|
@cargo run --target $(TRIPLE)
|
|
|
|
build-service: $(GENERATED_FILES)
|
|
ifeq ($(INIT),no)
|
|
@echo "Installing systemd unit files..."
|
|
$(foreach f,$(UNIT_FILES),$(call INSTALL_FILE,$f,$(UNIT_DIR)))
|
|
endif
|
|
|
|
show-summary: show-header
|
|
@printf "project:\n"
|
|
@printf " name: $(PROJECT_NAME)\n"
|
|
@printf " url: $(PROJECT_URL)\n"
|
|
@printf " component: $(PROJECT_COMPONENT)\n"
|
|
@printf "target: $(TARGET)\n"
|
|
@printf "architecture:\n"
|
|
@printf " host: $(ARCH)\n"
|
|
@printf "rust:\n"
|
|
@printf " %s\n" "$(call get_command_version,cargo)"
|
|
@printf " %s\n" "$(call get_command_version,rustc)"
|
|
@printf " %s\n" "$(call get_command_version,rustup)"
|
|
@printf " %s\n" "$(call get_toolchain_version)"
|
|
@printf "\n"
|
|
|
|
help: show-summary
|
|
|
|
.PHONY: \
|
|
help \
|
|
show-header \
|
|
show-summary
|
|
|
|
generate-protocols:
|
|
protocols/hack/update-generated-proto.sh "${PROTO_FILE}"
|