1XEN_ROOT=../../../..
2include $(XEN_ROOT)/Config.mk
3
4architectures := x86_32 x86_64 ia64
5headers := $(patsubst %, %.h, $(architectures))
6scripts := $(wildcard *.py)
7
8.PHONY: all clean check-headers
9all: $(headers) check-headers
10
11clean:
12	rm -f $(headers)
13	rm -f checker checker.c $(XEN_TARGET_ARCH).size
14	rm -f *.pyc *.o *~
15
16ifeq ($(CROSS_COMPILE)$(XEN_TARGET_ARCH),$(XEN_COMPILE_ARCH))
17check-headers: checker
18	./checker > $(XEN_TARGET_ARCH).size
19	diff -u reference.size $(XEN_TARGET_ARCH).size
20checker: checker.c $(headers)
21	$(HOSTCC) $(HOSTCFLAGS) -o $@ $<
22else
23check-headers:
24	@echo "cross build: skipping check"
25endif
26
27x86_32.h: ../arch-x86/xen-x86_32.h ../arch-x86/xen.h ../xen.h $(scripts)
28	python mkheader.py $* $@ $(filter %.h,$^)
29
30x86_64.h: ../arch-x86/xen-x86_64.h ../arch-x86/xen.h ../xen.h $(scripts)
31	python mkheader.py $* $@ $(filter %.h,$^)
32
33ia64.h: ../arch-ia64.h ../xen.h $(scripts)
34	python mkheader.py $* $@ $(filter %.h,$^)
35
36checker.c: $(scripts)
37	python mkchecker.py $(XEN_TARGET_ARCH) $@ $(architectures)
38