我想在xen / include / public /中添加标题my_header.h并在xen的工具中使用它;所以这个my_header.h也应该链接到tools / include / xen /
然而,它不起作用。当我重新编译时,Make tools
为xen / include / public下的所有旧文件(my_header.h除外)创建软链接。
我的问题是:
我是否需要更改tools / include / Makefile中的任何内容?
tools / include / Makefile如下:
XEN_ROOT = $(CURDIR)/../..
include $(XEN_ROOT)/tools/Rules.mk
.PHONY: all
all: xen-foreign xen/.dir
.PHONY: xen-foreign
xen-foreign:
$(MAKE) -C xen-foreign
xen/.dir:
@rm -rf xen
mkdir -p xen/libelf
ln -sf $(XEN_ROOT)/xen/include/public/COPYING xen
ln -sf $(XEN_ROOT)/xen/include/public/my_header.h xen
ln -sf $(wildcard $(XEN_ROOT)/xen/include/public/*.h) xen
ln -sf $(addprefix $(XEN_ROOT)/xen/include/public/,arch-x86 hvm io xsm) xen
ln -sf ../xen-sys/$(XEN_OS) xen/sys
ln -sf $(addprefix $(XEN_ROOT)/xen/include/xen/,libelf.h elfstructs.h) xen/libelf/
ln -s ../xen-foreign xen/foreign
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/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/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
.PHONY: clean
clean:
rm -rf xen
$(MAKE) -C xen-foreign clean
根据我的理解,它应该为my_header.h创建链接,但我不知道它为什么不是。
答案 0 :(得分:1)
您是否删除了xen/.dir
文件?该文件没有先决条件,这意味着如果它存在,则假定它是最新的。因此,更改规则不会产生任何影响,除非您也删除该文件。