2016-09-17 29 views
0

所以一些*.c文件,這些文件在bin_PROGRAMS的automake我的設置取決於多數民衆贊成由main.h最近的一些變化創造一個符號,現在先產生no_common.h在我的Makefile.amno_common.h包含在bin_PROGRAMS中,這樣它就可以像它應該生成的一樣,但是這也使得它將被安裝到/usr/bin以及由make生成的二進制文件中,這不是我想要的。指定bin_PROGRAMS`的`依賴瞞着的Automake如何建立`bin_PROGRAMS`

我知道我可以只使用這樣的事情在我Makefile.am文件:

$(bin_PROGRAMS): no_common.h 

,但不會意味着我不得不告訴make正是我想bin_PROGRAMS要建?將no_common.h放回bin_PROGRAMS,然後將其添加到noinst_HEADERS解決此問題?

可以這樣做,是否有其他一些棘手的技巧可以使用,或者我只是要求一些無法完成的事情?

注意:我不希望將文件從#include改變no_common.hmain.h在受影響的文件。 (是的,我知道我可能很挑剔)。

回答

2

Automake提供了BUILT_SOURCES變量來解決這個問題。

BUILT_SOURCES中提到的文件將在make的早期創建 - 在任何編輯之前。但是,並不暗示其他依賴性;也就是說,該文件被創建但未被編譯,並且不被假定爲任何其他特定的依賴關係.o;這正是你想要的。

所以你的情況,你會簡單地做:

BUILT_SOURCES = no_common.h