]> rtime.felk.cvut.cz Git - jailhouse.git/blob - inmates/lib/arm/Makefile.lib
inmates: Build library archive and link it implicitly
[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/generated/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_MACH_VEXPRESS)            := vexpress
31 mach-$(CONFIG_MACH_SUN7I)               := sun7i
32 mach-$(CONFIG_MACH_TEGRA124)            := tegra124
33
34 MACHINE                                 := mach-$(mach-y)
35 KBUILD_CFLAGS                           += -I$(INMATES_LIB)/include/$(MACHINE)
36 KBUILD_AFLAGS                           += -I$(INMATES_LIB)/include/$(MACHINE)
37
38 # prevent deleting intermediate files which would cause rebuilds
39 .SECONDARY: $(addprefix $(obj)/,$(targets))
40
41 .SECONDEXPANSION:
42 $(obj)/%-linked.o: $(INMATES_LIB)/inmate.lds $$(addprefix $$(obj)/,$$($$*-y)) \
43                    $(INMATES_LIB)/lib.a
44         $(call if_changed,ld)
45
46 $(obj)/%.bin: $(obj)/%-linked.o
47         $(call if_changed,objcopy)