1XEN_ROOT = $(CURDIR)/../.. 2include $(XEN_ROOT)/tools/Rules.mk 3 4# Caution: some tools/libs/*/Makefile generate header files directly in 5# tools/include, and they do the [un]install actions for those, too. 6# In case other headers need to be built cwin tools/include this should be 7# taken into account, i.e. there should be no rules added here for generating 8# any tools/include/*.h files. 9 10.PHONY: all 11all: xen-foreign xen-dir xen-xsm/.dir 12ifeq ($(CONFIG_X86),y) 13all: xen/lib/x86/all 14endif 15 16.PHONY: build 17build: all 18 19.PHONY: xen-foreign 20xen-foreign: 21 $(MAKE) -C xen-foreign 22 23.PHONY: xen-dir 24xen-dir: 25 mkdir -p xen/libelf acpi 26 find xen/ acpi/ -type l -exec rm '{}' + 27 sed -e 's#@includedir@#$(includedir)/xen#g' xen.COPYING.in > xen/COPYING 28 ln -s $(XEN_ROOT)/xen/include/public/*.h xen/ 29 ln -s $(XEN_ROOT)/xen/include/public/*/ xen/ 30 ln -s ../xen-sys/$(XEN_OS) xen/sys 31 ln -s $(addprefix $(XEN_ROOT)/xen/include/xen/,libelf.h elfstructs.h) xen/libelf/ 32 ln -s ../xen-foreign xen/foreign 33 ln -s $(XEN_ROOT)/xen/include/acpi/platform acpi/ 34 ln -s $(XEN_ROOT)/xen/include/acpi/ac*.h acpi/ 35ifeq ($(CONFIG_X86),y) 36 ln -s $(XEN_ROOT)/xen/arch/x86/include/asm xen/ 37 mkdir -p xen/lib/x86 38 ln -s $(filter-out %autogen.h,$(wildcard $(XEN_ROOT)/xen/include/xen/lib/x86/*.h)) xen/lib/x86/ 39 ln -s $(XEN_ROOT)/xen/include/xen/lib/x86/Makefile xen/lib/x86/ 40endif 41 42.PHONY: xen/lib/x86/all 43xen/lib/x86/all: xen-dir 44 $(MAKE) -C xen/lib/x86 all XEN_ROOT=$(XEN_ROOT) PYTHON=$(PYTHON) 45 46MKFLASK := $(XEN_ROOT)/xen/xsm/flask/policy/mkflask.sh 47FLASK_H_DEPEND := $(XEN_ROOT)/xen/xsm/flask/policy/initial_sids 48 49# Not xen/xsm as that clashes with link to 50# $(XEN_ROOT)/xen/include/public/xsm above. 51xen-xsm/.dir: $(MKFLASK) $(FLASK_H_DEPEND) 52 mkdir -p xen-xsm/flask 53 $(SHELL) $(MKFLASK) $(AWK) xen-xsm/flask $(FLASK_H_DEPEND) 54 touch $@ 55 56.PHONY: install 57install: all 58 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/arch-x86 59 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/arch-x86/hvm 60 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/arch-arm 61 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/arch-arm/hvm 62 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/foreign 63 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/hvm 64 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/io 65 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/sys 66 $(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/xsm 67 $(INSTALL_DATA) xen/COPYING $(DESTDIR)$(includedir)/xen 68 $(INSTALL_DATA) xen/*.h $(DESTDIR)$(includedir)/xen 69 $(INSTALL_DATA) xen/arch-x86/*.h $(DESTDIR)$(includedir)/xen/arch-x86 70 $(INSTALL_DATA) xen/arch-x86/hvm/*.h $(DESTDIR)$(includedir)/xen/arch-x86/hvm 71 $(INSTALL_DATA) xen/arch-arm/*.h $(DESTDIR)$(includedir)/xen/arch-arm 72 $(INSTALL_DATA) xen/arch-arm/hvm/*.h $(DESTDIR)$(includedir)/xen/arch-arm/hvm 73 $(INSTALL_DATA) xen/foreign/*.h $(DESTDIR)$(includedir)/xen/foreign 74 $(INSTALL_DATA) xen/hvm/*.h $(DESTDIR)$(includedir)/xen/hvm 75 $(INSTALL_DATA) xen/io/*.h $(DESTDIR)$(includedir)/xen/io 76 $(INSTALL_DATA) xen/sys/*.h $(DESTDIR)$(includedir)/xen/sys 77 $(INSTALL_DATA) xen/xsm/*.h $(DESTDIR)$(includedir)/xen/xsm 78 $(INSTALL_DATA) xen_list.h $(DESTDIR)$(includedir) 79 80.PHONY: uninstall 81uninstall: 82 echo "[FIXME] uninstall headers" 83 rm -rf $(DESTDIR)$(includedir)/xen 84 rm -f $(DESTDIR)$(includedir)/xen_list.h 85 86.PHONY: clean 87clean: 88 rm -rf xen xen-xsm acpi 89 $(MAKE) -C xen-foreign clean 90 rm -f _*.h 91 92.PHONY: distclean 93distclean: clean 94