|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 1/3] build: `distclean`, `properclean` independent of a configuration
Makes the targets `distclean` and `properclean` independent to the
presence of a configuration. Before this commit, these targets were
only installed when a `.config` file could be loaded by the build
system. Since these targets use some functions declared in
`support/build/Makefile.rules`, we include this file at an earlier
point.
Signed-off-by: Simon Kuenzer <simon.kuenzer@xxxxxxxxx>
---
Makefile | 46 ++++++++++++++++++++++++++--------------------
1 file changed, 26 insertions(+), 20 deletions(-)
diff --git a/Makefile b/Makefile
index 96be2db..1250436 100644
--- a/Makefile
+++ b/Makefile
@@ -142,7 +142,7 @@ export DATE := $(shell date +%Y%m%d)
null_targets := print-version help
noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig
randconfig \
defconfig %_defconfig allyesconfig allnoconfig
silentoldconfig release \
- olddefconfig $(null_targets)
+ olddefconfig properclean distclean $(null_targets)
# To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands
@@ -168,10 +168,20 @@ SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
else if [ -x /bin/bash ]; then echo /bin/bash; \
else echo sh; fi; fi)
+# basic tools
+RM := rm -f
+MV := mv -f
+CP := cp -f
+MKDIR := mkdir
+TOUCH := touch
+
# kconfig uses CONFIG_SHELL
CONFIG_SHELL := $(SHELL)
export SHELL CONFIG_SHELL Q KBUILD_VERBOSE
+# Include common Makefile helpers early
+include $(CONFIG_UK_BASE)/support/build/Makefile.rules
+
################################################################################
# .config
################################################################################
@@ -298,6 +308,20 @@ export HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v
2>&1 | \
export HOSTAR HOSTAS HOSTCC HOSTCC_VERSION HOSTCXX HOSTLD HOSTARCH
export HOSTCC_NOCCACHE HOSTCXX_NOCCACHE
+################################################################################
+# Clean targets that do not have any dependency on a configuration
+################################################################################
+# Declare them before we depend on having .config
+properclean:
+ $(call verbose_cmd,RM,build/,$(RM) -r \
+ $(BUILD_DIR))
+
+distclean: properclean
+ $(call verbose_cmd,RM,config,$(RM) \
+ $(UK_CONFIG) $(UK_CONFIG).old $(CONFIG_DIR)/..config.tmp \
+ $(CONFIG_DIR)/.auto.deps)
+
+.PHONY: distclean properclean
################################################################################
# Unikraft Architecture
@@ -409,10 +433,6 @@ STRIP := $(CONFIG_CROSS_COMPILE)strip
OBJCOPY := $(CONFIG_CROSS_COMPILE)objcopy
OBJDUMP := $(CONFIG_CROSS_COMPILE)objdump
AR := ar
-MV := mv -f
-RM := rm -f
-CP := cp -f
-MKDIR := mkdir
CAT := cat
SED := sed
AWK := awk
@@ -421,7 +441,6 @@ GZIP := gzip
TAR := tar
UNZIP := unzip -qq -u
WGET := wget
-TOUCH := touch
# Time requires the full path so that subarguments are handled correctly
TIME := $(shell which time)
LIFTOFF := liftoff -e -s
@@ -437,9 +456,6 @@ ASFLAGS += -DCC_VERSION=$(CC_VERSION)
CFLAGS += -DCC_VERSION=$(CC_VERSION)
CXXFLAGS += -DCC_VERSION=$(CC_VERSION)
-# Common Makefile definitions we need for building Unikraft
-include $(CONFIG_UK_BASE)/support/build/Makefile.rules
-
# ensure $(BUILD_DIR)/include and $(BUILD_DIR)/include/uk exists
$(call mk_sub_build_dir,include)
$(call mk_sub_build_dir,include/uk)
@@ -534,20 +550,10 @@ libs: menuconfig
images: menuconfig
-clean:
+clean: menuconfig
endif
-.PHONY: distclean properclean
-properclean:
- $(call verbose_cmd,RM,build/,$(RM) -r \
- $(BUILD_DIR))
-
-distclean: properclean
- $(call verbose_cmd,RM,config,$(RM) \
- $(UK_CONFIG) $(UK_CONFIG).old $(CONFIG_DIR)/..config.tmp \
- $(CONFIG_DIR)/.auto.deps)
-
.PHONY: print-vars print-libs help outputmakefile list-defconfigs
# Configuration
--
2.7.4
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |