]> rtime.felk.cvut.cz Git - jailhouse.git/blob - inmates/lib/arm/Makefile.lib
inmates: arm: Fix and improve build
[jailhouse.git] / inmates / lib / arm / Makefile.lib
1 #
2 # Jailhouse, a Linux-based partitioning hypervisor
3 #
4 # Copyright (c) ARM Limited, 2014
5 # Copyright (c) Siemens AG, 2014
6 #
7 # Authors:
8 #  Jean-Philippe Brucker <jean-philippe.brucker@arm.com>
9 #  Jan Kiszka <jan.kiszka@siemens.com>
10 #
11 # This work is licensed under the terms of the GNU GPL, version 2.  See
12 # the COPYING file in the top-level directory.
13 #
14
15 -include $(obj)/../../../hypervisor/include/jailhouse/config.mk
16
17 KBUILD_AFLAGS := $(filter-out -include asm/unified.h,$(KBUILD_AFLAGS))
18
19 KBUILD_CFLAGS                           += -I$(INMATES_LIB)/include
20 KBUILD_AFLAGS                           += -I$(INMATES_LIB)/include
21
22 define DECLARE_TARGETS =
23  _TARGETS = $(1)
24  always := $$(_TARGETS)
25  # $(NAME-y) NAME-linked.o NAME.bin
26  targets += $$(foreach t,$$(_TARGETS:.bin=-y),$$($$t)) \
27             $$(_TARGETS:.bin=-linked.o) $$(_TARGETS)
28 endef
29
30 mach-$(CONFIG_ARCH_VEXPRESS)            := vexpress
31
32 gic-$(CONFIG_ARM_GIC)                   := gic-v2.o
33 gic-$(CONFIG_ARM_GIC_V3)                := gic-v3.o
34 uart-$(CONFIG_SERIAL_AMBA_PL011)        := uart-pl011.o
35
36 MACHINE                                 := mach-$(mach-y)
37 DRIVERS                                 := $(gic-y) $(uart-y)
38 KBUILD_CFLAGS                           += -I$(INMATES_LIB)/include/$(MACHINE)
39 KBUILD_AFLAGS                           += -I$(INMATES_LIB)/include/$(MACHINE)
40
41 # prevent deleting intermediate files which would cause rebuilds
42 .SECONDARY: $(addprefix $(obj)/,$(targets))
43
44 .SECONDEXPANSION:
45 $(obj)/%-linked.o: $(INMATES_LIB)/inmate.lds $$(addprefix $$(obj)/,$$($$*-y))
46         $(call if_changed,ld)
47
48 $(obj)/%.bin: $(obj)/%-linked.o
49         $(call if_changed,objcopy)