2 # Jailhouse, a Linux-based partitioning hypervisor
4 # Copyright (c) Siemens AG, 2013
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.
13 LINUXINCLUDE := -I$(src)
14 KBUILD_CFLAGS := -g -Os -Wall -Wstrict-prototypes -Wtype-limits \
15 -Wmissing-declarations -Wmissing-prototypes \
16 -fno-strict-aliasing -fomit-frame-pointer -fno-pic \
17 -fno-common -fno-stack-protector -I. \
18 -I$(src)/../hypervisor/arch/$(SRCARCH)/include \
19 -I$(src)/../hypervisor/include
20 ifneq ($(wildcard $(src)/../hypervisor/include/jailhouse/config.h),)
21 KBUILD_CFLAGS += -include $(src)/../hypervisor/include/jailhouse/config.h
24 OBJCOPYFLAGS := -O binary
28 ifeq ($(SRCARCH), x86)
32 INMATES := tiny-demo.bin apic-demo.bin
34 AFLAGS_header-32.o := -m32
35 CFLAGS_printk-32.o := -m32
37 $(obj)/printk-32.o: $(obj)/printk.c
38 $(call if_changed_rule,cc_o_c)
42 tiny-demo-y := tiny-demo.o header.o printk.o pm-timer.o
44 apic-demo-y := apic-demo.o header.o printk.o pm-timer.o
49 # $(NAME-y) NAME-linked.o NAME.bin
50 targets += $(foreach t,$(INMATES:.bin=-y),$($t)) $(INMATES:.bin=-linked.o) \
53 # prevent deleting intermediate files which would cause rebuilds
54 .SECONDARY: $(addprefix $(obj)/,$(targets))
56 # obj/NAME-linked.o: ... obj/$(NAME-y)
58 $(obj)/%-linked.o: $(src)/inmate.lds $$(addprefix $$(obj)/,$$($$*-y))
61 $(obj)/%.bin: $(obj)/%-linked.o
62 $(call if_changed,objcopy)