mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-28 16:27:50 +00:00
Merge pull request #402 from jcvenegas/destdir
[RFC] makefile: honor DESTDIR flag.
This commit is contained in:
commit
2b27ddc738
87
Makefile
87
Makefile
@ -34,6 +34,12 @@ PROJECT_TAG = kata-containers
|
|||||||
PROJECT_URL = https://github.com/kata-containers
|
PROJECT_URL = https://github.com/kata-containers
|
||||||
PROJECT_BUG_URL = $(PROJECT_URL)/kata-containers/issues/new
|
PROJECT_BUG_URL = $(PROJECT_URL)/kata-containers/issues/new
|
||||||
|
|
||||||
|
# list of scripts to install
|
||||||
|
SCRIPTS :=
|
||||||
|
|
||||||
|
# list of binaries to install
|
||||||
|
BINLIST :=
|
||||||
|
|
||||||
BIN_PREFIX = $(PROJECT_TYPE)
|
BIN_PREFIX = $(PROJECT_TYPE)
|
||||||
PROJECT_DIR = $(PROJECT_TAG)
|
PROJECT_DIR = $(PROJECT_TAG)
|
||||||
IMAGENAME = $(PROJECT_TAG).img
|
IMAGENAME = $(PROJECT_TAG).img
|
||||||
@ -41,17 +47,22 @@ INITRDNAME = $(PROJECT_TAG)-initrd.img
|
|||||||
|
|
||||||
TARGET = $(BIN_PREFIX)-runtime
|
TARGET = $(BIN_PREFIX)-runtime
|
||||||
TARGET_OUTPUT = $(CURDIR)/$(TARGET)
|
TARGET_OUTPUT = $(CURDIR)/$(TARGET)
|
||||||
|
BINLIST += $(TARGET)
|
||||||
|
|
||||||
DESTDIR :=
|
DESTDIR := /
|
||||||
|
|
||||||
installing = $(findstring install,$(MAKECMDGOALS))
|
installing = $(findstring install,$(MAKECMDGOALS))
|
||||||
|
|
||||||
# Configure the build for a standard system that is
|
ifeq ($(PREFIX),)
|
||||||
# using OBS-generated packages.
|
PREFIX := /usr/
|
||||||
PREFIX := /usr
|
EXEC_PREFIX := $(PREFIX)/local
|
||||||
BINDIR := $(PREFIX)/bin
|
else
|
||||||
DESTBINDIR := /usr/local/bin
|
EXEC_PREFIX := $(PREFIX)
|
||||||
QEMUBINDIR := $(BINDIR)
|
endif
|
||||||
|
# Prefix where depedencies are installed
|
||||||
|
PREFIXDEPS := $(PREFIX)
|
||||||
|
BINDIR := $(EXEC_PREFIX)/bin
|
||||||
|
QEMUBINDIR := $(PREFIXDEPS)/bin
|
||||||
SYSCONFDIR := /etc
|
SYSCONFDIR := /etc
|
||||||
LOCALSTATEDIR := /var
|
LOCALSTATEDIR := /var
|
||||||
|
|
||||||
@ -67,7 +78,7 @@ else
|
|||||||
KERNEL_NAME = vmlinuz.container
|
KERNEL_NAME = vmlinuz.container
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LIBEXECDIR := $(PREFIX)/libexec
|
LIBEXECDIR := $(PREFIXDEPS)/libexec
|
||||||
SHAREDIR := $(PREFIX)/share
|
SHAREDIR := $(PREFIX)/share
|
||||||
DEFAULTSDIR := $(SHAREDIR)/defaults
|
DEFAULTSDIR := $(SHAREDIR)/defaults
|
||||||
|
|
||||||
@ -81,7 +92,7 @@ SCRIPTS_DIR := $(BINDIR)
|
|||||||
BASH_COMPLETIONS := data/completions/bash/kata-runtime
|
BASH_COMPLETIONS := data/completions/bash/kata-runtime
|
||||||
BASH_COMPLETIONSDIR := $(SHAREDIR)/bash-completion/completions
|
BASH_COMPLETIONSDIR := $(SHAREDIR)/bash-completion/completions
|
||||||
|
|
||||||
PKGDATADIR := $(SHAREDIR)/$(PROJECT_DIR)
|
PKGDATADIR := $(PREFIXDEPS)/share/$(PROJECT_DIR)
|
||||||
PKGLIBDIR := $(LOCALSTATEDIR)/lib/$(PROJECT_DIR)
|
PKGLIBDIR := $(LOCALSTATEDIR)/lib/$(PROJECT_DIR)
|
||||||
PKGRUNDIR := $(LOCALSTATEDIR)/run/$(PROJECT_DIR)
|
PKGRUNDIR := $(LOCALSTATEDIR)/run/$(PROJECT_DIR)
|
||||||
PKGLIBEXECDIR := $(LIBEXECDIR)/$(PROJECT_DIR)
|
PKGLIBEXECDIR := $(LIBEXECDIR)/$(PROJECT_DIR)
|
||||||
@ -132,27 +143,24 @@ CONFIG_FILE = configuration.toml
|
|||||||
CONFIG = $(CLI_DIR)/config/$(CONFIG_FILE)
|
CONFIG = $(CLI_DIR)/config/$(CONFIG_FILE)
|
||||||
CONFIG_IN = $(CONFIG).in
|
CONFIG_IN = $(CONFIG).in
|
||||||
|
|
||||||
DESTTARGET := $(abspath $(DESTBINDIR)/$(TARGET))
|
CONFDIR := $(DEFAULTSDIR)/$(PROJECT_DIR)
|
||||||
|
SYSCONFDIR := $(SYSCONFDIR)/$(PROJECT_DIR)
|
||||||
DESTCONFDIR := $(DESTDIR)/$(DEFAULTSDIR)/$(PROJECT_DIR)
|
|
||||||
DESTSYSCONFDIR := $(DESTDIR)/$(SYSCONFDIR)/$(PROJECT_DIR)
|
|
||||||
|
|
||||||
# Main configuration file location for stateless systems
|
# Main configuration file location for stateless systems
|
||||||
DESTCONFIG := $(abspath $(DESTCONFDIR)/$(CONFIG_FILE))
|
CONFIG_PATH := $(abspath $(CONFDIR)/$(CONFIG_FILE))
|
||||||
|
|
||||||
# Secondary configuration file location. Note that this takes precedence
|
# Secondary configuration file location. Note that this takes precedence
|
||||||
# over DESTCONFIG.
|
# over CONFIG_PATH.
|
||||||
DESTSYSCONFIG := $(abspath $(DESTSYSCONFDIR)/$(CONFIG_FILE))
|
SYSCONFIG := $(abspath $(SYSCONFDIR)/$(CONFIG_FILE))
|
||||||
|
|
||||||
DESTSHAREDIR := $(DESTDIR)/$(SHAREDIR)
|
SHAREDIR := $(SHAREDIR)
|
||||||
|
|
||||||
# list of variables the user may wish to override
|
# list of variables the user may wish to override
|
||||||
USER_VARS += ARCH
|
USER_VARS += ARCH
|
||||||
USER_VARS += BINDIR
|
USER_VARS += BINDIR
|
||||||
USER_VARS += DESTCONFIG
|
USER_VARS += CONFIG_PATH
|
||||||
USER_VARS += DESTDIR
|
USER_VARS += DESTDIR
|
||||||
USER_VARS += DESTSYSCONFIG
|
USER_VARS += SYSCONFIG
|
||||||
USER_VARS += DESTTARGET
|
|
||||||
USER_VARS += IMAGENAME
|
USER_VARS += IMAGENAME
|
||||||
USER_VARS += IMAGEPATH
|
USER_VARS += IMAGEPATH
|
||||||
USER_VARS += INITRDNAME
|
USER_VARS += INITRDNAME
|
||||||
@ -290,11 +298,11 @@ const defaultDisableNestingChecks bool = $(DEFDISABLENESTINGCHECKS)
|
|||||||
const defaultMsize9p uint32 = $(DEFMSIZE9P)
|
const defaultMsize9p uint32 = $(DEFMSIZE9P)
|
||||||
|
|
||||||
// Default config file used by stateless systems.
|
// Default config file used by stateless systems.
|
||||||
var defaultRuntimeConfiguration = "$(DESTCONFIG)"
|
var defaultRuntimeConfiguration = "$(CONFIG_PATH)"
|
||||||
|
|
||||||
// Alternate config file that takes precedence over
|
// Alternate config file that takes precedence over
|
||||||
// defaultRuntimeConfiguration.
|
// defaultRuntimeConfiguration.
|
||||||
var defaultSysConfRuntimeConfiguration = "$(DESTSYSCONFIG)"
|
var defaultSysConfRuntimeConfiguration = "$(SYSCONFIG)"
|
||||||
|
|
||||||
var defaultProxyPath = "$(PROXYPATH)"
|
var defaultProxyPath = "$(PROXYPATH)"
|
||||||
endef
|
endef
|
||||||
@ -340,8 +348,8 @@ $(GENERATED_FILES): %: %.in Makefile VERSION
|
|||||||
-e "s|@COMMIT@|$(COMMIT)|g" \
|
-e "s|@COMMIT@|$(COMMIT)|g" \
|
||||||
-e "s|@VERSION@|$(VERSION)|g" \
|
-e "s|@VERSION@|$(VERSION)|g" \
|
||||||
-e "s|@CONFIG_IN@|$(CONFIG_IN)|g" \
|
-e "s|@CONFIG_IN@|$(CONFIG_IN)|g" \
|
||||||
-e "s|@DESTCONFIG@|$(DESTCONFIG)|g" \
|
-e "s|@CONFIG_PATH@|$(CONFIG_PATH)|g" \
|
||||||
-e "s|@DESTSYSCONFIG@|$(DESTSYSCONFIG)|g" \
|
-e "s|@SYSCONFIG@|$(SYSCONFIG)|g" \
|
||||||
-e "s|@IMAGEPATH@|$(IMAGEPATH)|g" \
|
-e "s|@IMAGEPATH@|$(IMAGEPATH)|g" \
|
||||||
-e "s|@KERNELPATH@|$(KERNELPATH)|g" \
|
-e "s|@KERNELPATH@|$(KERNELPATH)|g" \
|
||||||
-e "s|@INITRDPATH@|$(INITRDPATH)|g" \
|
-e "s|@INITRDPATH@|$(INITRDPATH)|g" \
|
||||||
@ -392,15 +400,19 @@ check-go-static:
|
|||||||
coverage:
|
coverage:
|
||||||
$(QUIET_TEST).ci/go-test.sh html-coverage
|
$(QUIET_TEST).ci/go-test.sh html-coverage
|
||||||
|
|
||||||
install: default runtime install-scripts install-completions
|
install: default runtime install-scripts install-completions install-config install-bin
|
||||||
$(QUIET_INST)install -D $(TARGET) $(DESTTARGET)
|
|
||||||
$(QUIET_INST)install -D $(CONFIG) $(DESTCONFIG)
|
install-bin: $(BINLIST)
|
||||||
|
$(foreach f,$(BINLIST),$(call INSTALL_EXEC,$f,$(BINDIR)))
|
||||||
|
|
||||||
|
install-config: $(CONFIG)
|
||||||
|
$(QUIET_INST)install --mode 0644 -D $(CONFIG) $(DESTDIR)/$(CONFIG_PATH)
|
||||||
|
|
||||||
install-scripts: $(SCRIPTS)
|
install-scripts: $(SCRIPTS)
|
||||||
$(foreach f,$(SCRIPTS),$(call INSTALL_EXEC,$f,$(SCRIPTS_DIR)))
|
$(foreach f,$(SCRIPTS),$(call INSTALL_EXEC,$f,$(SCRIPTS_DIR)))
|
||||||
|
|
||||||
install-completions:
|
install-completions:
|
||||||
$(QUIET_INST)install --mode 0644 -D $(BASH_COMPLETIONS) $(BASH_COMPLETIONSDIR)
|
$(QUIET_INST)install --mode 0644 -D $(BASH_COMPLETIONS) $(DESTDIR)/$(BASH_COMPLETIONSDIR)/$(notdir $(BASH_COMPLETIONS));
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
$(QUIET_CLEAN)rm -f $(TARGET) $(CONFIG) $(GENERATED_GO_FILES) $(GENERATED_FILES) $(COLLECT_SCRIPT)
|
$(QUIET_CLEAN)rm -f $(TARGET) $(CONFIG) $(GENERATED_GO_FILES) $(GENERATED_FILES) $(COLLECT_SCRIPT)
|
||||||
@ -461,10 +473,17 @@ show-summary: show-header
|
|||||||
@printf "\n"
|
@printf "\n"
|
||||||
@printf "• Summary:\n"
|
@printf "• Summary:\n"
|
||||||
@printf "\n"
|
@printf "\n"
|
||||||
@printf "\tbinary install path (DESTTARGET) : %s\n" $(DESTTARGET)
|
@printf "\tdestination install path (DESTDIR) : %s\n" $(abspath $(DESTDIR))
|
||||||
@printf "\tconfig install path (DESTCONFIG) : %s\n" $(DESTCONFIG)
|
@printf "\tbinary installation path (BINDIR) : %s\n" $(abspath $(BINDIR))
|
||||||
@printf "\talternate config path (DESTSYSCONFIG) : %s\n" $(DESTSYSCONFIG)
|
@printf "\tbinaries to install :\n"
|
||||||
@printf "\thypervisor path (QEMUPATH) : %s\n" $(QEMUPATH)
|
@printf \
|
||||||
@printf "\tassets path (PKGDATADIR) : %s\n" $(PKGDATADIR)
|
"$(foreach b,$(sort $(BINLIST)),$(shell printf "\\t - $(shell readlink -m $(DESTDIR)/$(BINDIR)/$(b))\\\n"))"
|
||||||
@printf "\tproxy+shim path (PKGLIBEXECDIR) : %s\n" $(PKGLIBEXECDIR)
|
@printf \
|
||||||
|
"$(foreach s,$(sort $(SCRIPTS)),$(shell printf "\\t - $(shell readlink -m $(DESTDIR)/$(BINDIR)/$(s))\\\n"))"
|
||||||
|
@printf "\tconfig to install (CONFIG) : %s\n" $(CONFIG)
|
||||||
|
@printf "\tinstall path (CONFIG_PATH) : %s\n" $(abspath $(CONFIG_PATH))
|
||||||
|
@printf "\talternate config path (SYSCONFIG) : %s\n" $(abspath $(SYSCONFIG))
|
||||||
|
@printf "\thypervisor path (QEMUPATH) : %s\n" $(abspath $(QEMUPATH))
|
||||||
|
@printf "\tassets path (PKGDATADIR) : %s\n" $(abspath $(PKGDATADIR))
|
||||||
|
@printf "\tproxy+shim path (PKGLIBEXECDIR) : %s\n" $(abspath $(PKGLIBEXECDIR))
|
||||||
@printf "\n"
|
@printf "\n"
|
||||||
|
@ -180,8 +180,8 @@ show_runtime_configs()
|
|||||||
# add in the standard defaults for good measure "just in case"
|
# add in the standard defaults for good measure "just in case"
|
||||||
configs+=" /etc/@PROJECT_TAG@/configuration.toml"
|
configs+=" /etc/@PROJECT_TAG@/configuration.toml"
|
||||||
configs+=" /usr/share/defaults/@PROJECT_TAG@/configuration.toml"
|
configs+=" /usr/share/defaults/@PROJECT_TAG@/configuration.toml"
|
||||||
configs+=" @DESTCONFIG@"
|
configs+=" @CONFIG_PATH@"
|
||||||
configs+=" @DESTSYSCONFIG@"
|
configs+=" @SYSCONFIG@"
|
||||||
|
|
||||||
# create a unique list of config files
|
# create a unique list of config files
|
||||||
configs=$(echo $configs|tr ' ' '\n'|sort -u)
|
configs=$(echo $configs|tr ' ' '\n'|sort -u)
|
||||||
|
Loading…
Reference in New Issue
Block a user