Files
xen/tools/include/Makefile
Anthony PERARD 25b55688e1 tools/include: fix clean and rework COPYING for installed Xen public header
Use actual include directory used to install the public header in
COPYING file.

Also, move the input file out of "tools/include/xen/" because that
directory is removed on `make clean`.

We can't used ./configure because $includedir contain another
variable, so the change is done in Makefile.

Fixes: 4ea75e9a90 ("Rework COPYING installed in /usr/include/xen/, due to several licences")
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
2022-12-01 16:14:59 +01:00

94 lines
3.3 KiB
Makefile

XEN_ROOT = $(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
# Caution: some tools/libs/*/Makefile generate header files directly in
# tools/include, and they do the [un]install actions for those, too.
# In case other headers need to be built cwin tools/include this should be
# taken into account, i.e. there should be no rules added here for generating
# any tools/include/*.h files.
.PHONY: all
all: xen-foreign xen-dir xen-xsm/.dir
ifeq ($(CONFIG_X86),y)
all: xen/lib/x86/all
endif
.PHONY: build
build: all
.PHONY: xen-foreign
xen-foreign:
$(MAKE) -C xen-foreign
.PHONY: xen-dir
xen-dir:
mkdir -p xen/libelf acpi
find xen/ acpi/ -type l -exec rm '{}' +
sed -e 's#@includedir@#$(includedir)/xen#g' xen.COPYING.in > xen/COPYING
ln -s $(XEN_ROOT)/xen/include/public/*.h xen/
ln -s $(XEN_ROOT)/xen/include/public/*/ xen/
ln -s ../xen-sys/$(XEN_OS) xen/sys
ln -s $(addprefix $(XEN_ROOT)/xen/include/xen/,libelf.h elfstructs.h) xen/libelf/
ln -s ../xen-foreign xen/foreign
ln -s $(XEN_ROOT)/xen/include/acpi/platform acpi/
ln -s $(XEN_ROOT)/xen/include/acpi/ac*.h acpi/
ifeq ($(CONFIG_X86),y)
ln -s $(XEN_ROOT)/xen/arch/x86/include/asm xen/
mkdir -p xen/lib/x86
ln -s $(filter-out %autogen.h,$(wildcard $(XEN_ROOT)/xen/include/xen/lib/x86/*.h)) xen/lib/x86/
ln -s $(XEN_ROOT)/xen/include/xen/lib/x86/Makefile xen/lib/x86/
endif
.PHONY: xen/lib/x86/all
xen/lib/x86/all: xen-dir
$(MAKE) -C xen/lib/x86 all XEN_ROOT=$(XEN_ROOT) PYTHON=$(PYTHON)
MKFLASK := $(XEN_ROOT)/xen/xsm/flask/policy/mkflask.sh
FLASK_H_DEPEND := $(XEN_ROOT)/xen/xsm/flask/policy/initial_sids
# Not xen/xsm as that clashes with link to
# $(XEN_ROOT)/xen/include/public/xsm above.
xen-xsm/.dir: $(MKFLASK) $(FLASK_H_DEPEND)
mkdir -p xen-xsm/flask
$(SHELL) $(MKFLASK) $(AWK) xen-xsm/flask $(FLASK_H_DEPEND)
touch $@
.PHONY: install
install: all
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/arch-x86
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/arch-x86/hvm
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/arch-arm
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/arch-arm/hvm
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/foreign
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/hvm
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/io
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/sys
$(INSTALL_DIR) $(DESTDIR)$(includedir)/xen/xsm
$(INSTALL_DATA) xen/COPYING $(DESTDIR)$(includedir)/xen
$(INSTALL_DATA) xen/*.h $(DESTDIR)$(includedir)/xen
$(INSTALL_DATA) xen/arch-x86/*.h $(DESTDIR)$(includedir)/xen/arch-x86
$(INSTALL_DATA) xen/arch-x86/hvm/*.h $(DESTDIR)$(includedir)/xen/arch-x86/hvm
$(INSTALL_DATA) xen/arch-arm/*.h $(DESTDIR)$(includedir)/xen/arch-arm
$(INSTALL_DATA) xen/arch-arm/hvm/*.h $(DESTDIR)$(includedir)/xen/arch-arm/hvm
$(INSTALL_DATA) xen/foreign/*.h $(DESTDIR)$(includedir)/xen/foreign
$(INSTALL_DATA) xen/hvm/*.h $(DESTDIR)$(includedir)/xen/hvm
$(INSTALL_DATA) xen/io/*.h $(DESTDIR)$(includedir)/xen/io
$(INSTALL_DATA) xen/sys/*.h $(DESTDIR)$(includedir)/xen/sys
$(INSTALL_DATA) xen/xsm/*.h $(DESTDIR)$(includedir)/xen/xsm
$(INSTALL_DATA) xen_list.h $(DESTDIR)$(includedir)
.PHONY: uninstall
uninstall:
echo "[FIXME] uninstall headers"
rm -rf $(DESTDIR)$(includedir)/xen
rm -f $(DESTDIR)$(includedir)/xen_list.h
.PHONY: clean
clean:
rm -rf xen xen-xsm acpi
$(MAKE) -C xen-foreign clean
rm -f _*.h
.PHONY: distclean
distclean: clean