在xen中添加头文件并在两个方向上使用该文件

时间:2014-01-27 03:02:35

标签: makefile xen

我想在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创建链接,但我不知道它为什么不是。

1 个答案:

答案 0 :(得分:1)

您是否删除了xen/.dir文件?该文件没有先决条件,这意味着如果它存在,则假定它是最新的。因此,更改规则不会产生任何影响,除非您也删除该文件。