2 # Jailhouse, a Linux-based partitioning hypervisor
4 # Copyright (c) Siemens AG, 2013, 2014
7 # Jan Kiszka <jan.kiszka@siemens.com>
9 # This work is licensed under the terms of the GNU GPL, version 2. See
10 # the COPYING file in the top-level directory.
15 define DECLARE_TARGETS =
17 always := $$(_TARGETS)
18 # $(NAME-y) NAME-linked.o NAME.bin
19 targets += $$(foreach t,$$(_TARGETS:.bin=-y),$$($$t)) \
20 $$(_TARGETS:.bin=-linked.o) $$(_TARGETS)
23 # prevent deleting intermediate files which would cause rebuilds
24 .SECONDARY: $(addprefix $(obj)/,$(targets))
26 # obj/NAME-linked.o: ... obj/$(NAME-y)
28 $(obj)/%-linked.o: $(INMATES_LIB)/inmate.lds $$(addprefix $$(obj)/,$$($$*-y))
31 $(obj)/%.bin: $(obj)/%-linked.o
32 $(call if_changed,objcopy)
34 # 32-bit (i386) support
35 define DECLARE_32_BIT =
37 LDFLAGS_$(1)-linked.o := /dev/null -m elf_i386 -T
40 AFLAGS_header-32.o := -m32
42 $(obj)/%-32.o: c_flags += -m32
43 $(obj)/%-32.o: $(obj)/%.c
44 $(call if_changed_rule,cc_o_c)