[CRIU] [PATCH 02/12] build: Import nmk on toplevel

Cyrill Gorcunov gorcunov at openvz.org
Mon Feb 15 04:26:49 PST 2016


 - no more x86_64 in @ARCH, as in kernel it's traditional x86 entry
 - @build renamed to @build-old, will be deprecated

Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
---
 Makefile            | 69 +++++++++++++++++++++--------------------------------
 Makefile.inc        | 12 ----------
 arch/x86/Makefile   |  8 +++----
 pie/Makefile        |  2 +-
 pie/piegen/Makefile |  2 +-
 5 files changed, 33 insertions(+), 60 deletions(-)

diff --git a/Makefile b/Makefile
index d88c1d094fac..6e01b34b32c2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,9 @@
+# Import the build engine first
+__nmk_dir=$(CURDIR)/scripts/nmk/scripts/
+export __nmk_dir
+
+include $(__nmk_dir)/include.mk
+
 VERSION_MAJOR		:= 1
 VERSION_MINOR		:= 8
 VERSION_SUBLEVEL	:=
@@ -42,25 +48,7 @@ export HOSTCC
 export HOSTLD
 export HOSTCFLAGS
 
-#
-# Fetch ARCH from the uname if not yet set
-#
-ARCH ?= $(shell uname -m | sed		\
-		-e s/i.86/i386/		\
-		-e s/sun4u/sparc64/	\
-		-e s/s390x/s390/	\
-		-e s/parisc64/parisc/	\
-		-e s/mips.*/mips/	\
-		-e s/sh[234].*/sh/)
-
-ifeq ($(ARCH),i386)
-	SRCARCH      := x86-32
-	DEFINES      := -DCONFIG_X86_32
-	VDSO         := y
-	PROTOUFIX    := y
-	export PROTOUFIX
-endif
-ifeq ($(ARCH),x86_64)
+ifeq ($(ARCH),x86)
 	SRCARCH      := x86
 	DEFINES      := -DCONFIG_X86_64
 	LDARCH       := i386:x86-64
@@ -120,20 +108,17 @@ ifeq ($(shell echo $(ARCH) | sed -e 's/ppc64.*/ppc64/'),ppc64)
 	VDSO	:= y
 endif
 
-SRCARCH		?= $(ARCH)
 LDARCH		?= $(SRCARCH)
 
 SRC_DIR		?= $(CURDIR)
 ARCH_DIR	:= arch/$(SRCARCH)
 
-export ARCH SRCARCH
-
 $(if $(wildcard $(ARCH_DIR)),,$(error "The architecture $(ARCH) isn't supported"))
 
 #
 # piegen might be disabled by hands. Don't use it  until
 # you know what you're doing.
-ifneq ($(filter i386 ia32 x86_64 ppc64le, $(ARCH)),)
+ifneq ($(filter ia32 x86 ppc64le, $(ARCH)),)
 ifneq ($(PIEGEN),no)
 	piegen-y := y
 	export piegen-y
@@ -193,8 +178,8 @@ include scripts/Makefile.rules
 
 #
 # shorthand
-build := -r -R -f scripts/Makefile.build makefile=Makefile obj
-build-crtools := -r -R -f scripts/Makefile.build makefile=Makefile.crtools obj
+build-old := -r -R -f scripts/Makefile.build makefile=Makefile obj
+build-old-crtools := -r -R -f scripts/Makefile.build makefile=Makefile.crtools obj
 
 PROGRAM		:= criu
 
@@ -206,20 +191,20 @@ all: config pie $(VERSION_HEADER) $(CRIU-LIB)
 	$(Q) $(MAKE) crit
 
 protobuf/%::
-	$(Q) $(MAKE) $(build)=protobuf $@
+	$(Q) $(MAKE) $(build-old)=protobuf $@
 protobuf:
-	$(Q) $(MAKE) $(build)=protobuf all
+	$(Q) $(MAKE) $(build-old)=protobuf all
 
 $(ARCH_DIR)/%:: protobuf config
-	$(Q) $(MAKE) $(build)=$(ARCH_DIR) $@
+	$(Q) $(MAKE) $(build-old)=$(ARCH_DIR) $@
 $(ARCH_DIR): protobuf config
-	$(Q) $(MAKE) $(build)=$(ARCH_DIR) all
+	$(Q) $(MAKE) $(build-old)=$(ARCH_DIR) all
 
 ifeq ($(piegen-y),y)
 pie/piegen/%: config
-	$(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS)" $(MAKE) $(build)=pie/piegen $@
+	$(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS)" $(MAKE) $(build-old)=pie/piegen $@
 pie/piegen: config
-	$(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS)" $(MAKE) $(build)=pie/piegen all
+	$(Q) CC=$(HOSTCC) LD=$(HOSTLD) CFLAGS="$(HOSTCFLAGS)" $(MAKE) $(build-old)=pie/piegen all
 $(piegen): pie/piegen/built-in.o
 	$(E) "  LINK    " $@
 	$(Q) $(HOSTCC) $(HOSTCFLAGS) $^ $(LDFLAGS) -o $@
@@ -227,17 +212,17 @@ $(piegen): pie/piegen/built-in.o
 endif
 
 pie: $(ARCH_DIR) $(piegen)
-	$(Q) $(MAKE) $(build)=pie all
+	$(Q) $(MAKE) $(build-old)=pie all
 
 %.o %.i %.s %.d: $(VERSION_HEADER) pie
-	$(Q) $(MAKE) $(build-crtools)=. $@
+	$(Q) $(MAKE) $(build-old-crtools)=. $@
 built-in.o: $(VERSION_HEADER) pie
-	$(Q) $(MAKE) $(build-crtools)=. $@
+	$(Q) $(MAKE) $(build-old-crtools)=. $@
 
 lib/%:: $(VERSION_HEADER) config built-in.o
-	$(Q) $(MAKE) $(build)=lib $@
+	$(Q) $(MAKE) $(build-old)=lib $@
 lib: $(VERSION_HEADER) config built-in.o
-	$(Q) $(MAKE) $(build)=lib all
+	$(Q) $(MAKE) $(build-old)=lib all
 
 PROGRAM-BUILTINS	+= protobuf/built-in.o
 PROGRAM-BUILTINS	+= built-in.o
@@ -259,12 +244,12 @@ test: zdtm
 
 clean-built:
 	$(Q) $(RM) $(VERSION_HEADER)
-	$(Q) $(MAKE) $(build)=$(ARCH_DIR) clean
-	$(Q) $(MAKE) $(build)=protobuf clean
-	$(Q) $(MAKE) $(build)=pie/piegen clean
-	$(Q) $(MAKE) $(build)=pie clean
-	$(Q) $(MAKE) $(build)=lib clean
-	$(Q) $(MAKE) $(build-crtools)=. clean
+	$(Q) $(MAKE) $(build-old)=$(ARCH_DIR) clean
+	$(Q) $(MAKE) $(build-old)=protobuf clean
+	$(Q) $(MAKE) $(build-old)=pie/piegen clean
+	$(Q) $(MAKE) $(build-old)=pie clean
+	$(Q) $(MAKE) $(build-old)=lib clean
+	$(Q) $(MAKE) $(build-old-crtools)=. clean
 	$(Q) $(MAKE) -C Documentation clean
 	$(Q) $(RM) ./include/config.h
 	$(Q) $(RM) ./$(PROGRAM)
diff --git a/Makefile.inc b/Makefile.inc
index 5f0a55202419..4782ea23939d 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -1,15 +1,3 @@
-# Silent make rules
-
-ifeq ($(strip $(V)),)
-	E = @echo
-	Q = @
-else
-	E = @\#
-	Q =
-endif
-
-export E Q
-
 # Installation paths
 PREFIX		?= /usr/local
 SBINDIR		?= $(PREFIX)/sbin
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index c0c0f8035cab..2304915c7cc4 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -8,7 +8,7 @@ crtools-obj-y	+= crtools.o
 crtools-obj-y	+= cpu.o
 crtools-obj-y	+= prlimit.o
 
-ifeq ($(ARCH),x86_64)
+ifeq ($(ARCH),x86)
 SYS-DEF		:= syscall_64.tbl
 SYS-ASM-COMMON	:= syscall-common-x86-64.S
 else
@@ -22,14 +22,14 @@ SYS-PROTO	:= ../../include/syscall.h
 
 SYS-EXEC-TBL	:= sys-exec-tbl.c
 
-ifeq ($(ARCH),x86_64)
+ifeq ($(ARCH),x86)
 syscalls-asm-y-asmflags	:= -fpie -Wstrict-prototypes -Wa,--noexecstack
 else
 syscalls-asm-y-asmflags	:= -fno-pic -Wstrict-prototypes -Wa,--noexecstack
 endif
 syscalls-asm-y-asmflags += -nostdlib -fomit-frame-pointer -I$(obj)
 
-ifneq ($(ARCH),x86_64)
+ifneq ($(ARCH),x86)
 syscalls-obj-y += syscalls/syscall32.o
 $(obj)/syscalls/syscall32.o: $(obj)/$(SYS-CODES) $(obj)/$(SYS-PROTO)
 endif
@@ -57,7 +57,7 @@ $(obj)/$(SYS-PROTO): $(obj)/syscalls/$(SYS-DEF)
 	$(Q) echo "#endif"										>> $@
 	$(Q) echo "#include \"syscall-codes.h\""							>> $@
 	$(Q) echo "#include \"syscall-types.h\""							>> $@
-ifneq ($(ARCH),x86_64)
+ifneq ($(ARCH),x86)
 	$(Q) echo "#include \"asm/syscall32.h\""							>> $@
 endif
 	$(Q) cat $< | awk  '/^__NR/{print "extern long", $$3, substr($$0, index($$0,$$4)), ";"}'	>> $@
diff --git a/pie/Makefile b/pie/Makefile
index 772f16fff845..fd48da92ea43 100644
--- a/pie/Makefile
+++ b/pie/Makefile
@@ -70,7 +70,7 @@ $(obj)/$(PIELDS): $(obj)/pie-reloc.lds.S.in
 	$(Q) echo "OUTPUT_ARCH($(LDARCH))"              >  $(obj)/$(PIELDS)
 	$(Q) cat $<					>> $(obj)/$(PIELDS)
 else
-ifeq ($(ARCH),x86_64)
+ifeq ($(ARCH),x86)
 $(obj)/$(PIELDS): $(obj)/pie-reloc.lds.S.in
 	$(E) "  GEN     " $@
 	$(Q) echo "OUTPUT_ARCH(i386:x86-64)"		>  $(obj)/$(PIELDS)
diff --git a/pie/piegen/Makefile b/pie/piegen/Makefile
index 530af8bf8d9c..5c3d68b84817 100644
--- a/pie/piegen/Makefile
+++ b/pie/piegen/Makefile
@@ -1,7 +1,7 @@
 CFLAGS += -iquote pie/piegen
 
 obj-y += main.o
-ifneq ($(filter i386 ia32 x86_64, $(ARCH)),)
+ifneq ($(filter ia32 x86, $(ARCH)),)
 obj-y += elf-x86-32.o
 obj-y += elf-x86-64.o
 endif
-- 
2.5.0



More information about the CRIU mailing list