]> xenbits.xensource.com Git - people/royger/xen-test-framework.git/commitdiff
Rework the build systems environment list generation
authorAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 18 Jan 2016 10:48:26 +0000 (10:48 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 18 Jan 2016 10:48:26 +0000 (10:48 +0000)
and use this to reduce the amount of repetition in the object list generation.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
build/common.mk
build/files.mk

index 4d878dd3d2579df9e588858d7372867fdbdeac6d..2708f5a8ee23fd963b66b76a5412b182f09409b6 100644 (file)
@@ -2,9 +2,12 @@ ROOT := $(abspath $(CURDIR)/../..)
 DESTDIR ?= $(ROOT)/dist/
 CC = gcc
 
-PV_ENVIRONMENTS  := pv64 pv32
-HVM_ENVIRONMENTS := hvm64 hvm32
-ALL_ENVIRONMENTS := $(PV_ENVIRONMENTS) $(HVM_ENVIRONMENTS)
+ALL_ENVIRONMENTS   := pv64 pv32 hvm64 hvm32
+
+PV_ENVIRONMENTS    := $(filter pv%,$(ALL_ENVIRONMENTS))
+HVM_ENVIRONMENTS   := $(filter hvm%,$(ALL_ENVIRONMENTS))
+32BIT_ENVIRONMENTS := $(filter pv32% hvm32%,$(ALL_ENVIRONMENTS))
+64BIT_ENVIRONMENTS := $(filter pv64% hvm64%,$(ALL_ENVIRONMENTS))
 
 pv64_arch  := x86_64
 pv32_arch  := x86_32
index b09d3026fca74c1e2faf9a33f74ecec319db0e66..65b32b81614b94f246bd5c8a90f78af182808563 100644 (file)
@@ -21,21 +21,23 @@ obj-perenv += $(ROOT)/arch/x86/traps.o
 # Always link hypercall_page.S last as it is a page of data replaced by the hyperisor
 obj-perenv += $(ROOT)/arch/x86/hypercall_page.o
 
+
 # HVM specific objects
 obj-hvm += $(ROOT)/arch/x86/hvm_pagetables.o
 obj-hvm += $(ROOT)/arch/x86/hvm/traps.o
+$(foreach env,$(HVM_ENVIRONMENTS),$(eval obj-$(env) += $(obj-hvm)))
 
-obj-hvm32 += $(obj-hvm)
-obj-hvm32 += $(ROOT)/arch/x86/entry_32.o
-
-obj-hvm64 += $(obj-hvm)
-obj-hvm64 += $(ROOT)/arch/x86/entry_64.o
 
 # PV specific objects
 obj-pv  += $(ROOT)/arch/x86/pv/traps.o
+$(foreach env,$(PV_ENVIRONMENTS),$(eval obj-$(env) += $(obj-pv)))
+
+
+# 32bit specific objects
+obj-32  += $(ROOT)/arch/x86/entry_32.o
+$(foreach env,$(32BIT_ENVIRONMENTS),$(eval obj-$(env) += $(obj-32)))
 
-obj-pv32 += $(obj-pv)
-obj-pv32 += $(ROOT)/arch/x86/entry_32.o
 
-obj-pv64 += $(obj-pv)
-obj-pv64 += $(ROOT)/arch/x86/entry_64.o
+# 64bit specific objects
+obj-64  += $(ROOT)/arch/x86/entry_64.o
+$(foreach env,$(64BIT_ENVIRONMENTS),$(eval obj-$(env) += $(obj-64)))