1
我有以下目錄結構:有沒有辦法避免使用nobase進行遞歸?
Makefile.am
src/
mymod/
mod.cc
submod/
submod.cc
inc/
Makefile.am
mymod/
mod.hh
submod/
submod.hh
使用自動工具,我想同時分配從src
製成圖書館和inc
頭。頂級Makefile.am
看起來像
lib_LTLIBRARIES = mylib.la
mylib_la_SOURCES=./mymod/mod.cc\
./mymod/submod/submod.cc
SUBDIRS=inc
然後inc/Makefile.am
有
mymod_includedir=$(includedir)
nobase_mymod_include_HEADERS=mymod/mod.hh\
mymod/submod/submod.hh
該工程確定。我結束了任何庫的東西,我的頭文件得到適當的安裝。但是,我想消除Makefile中涉及的遞歸。問題是,如果我移動線inc/Makefile.am
到根目錄下,然後我有如下更新路徑:
mymod_includedir=$(includedir)
nobase_mymod_include_HEADERS=inc/mymod/mod.hh\
inc/mymod/submod/submod.hh
這導致我的頭被情人拋棄的$PREFIX/include/inc/mymod/mod.hh
,而不是像$PREFIX/include/mymod/mod.hh
我想。我知道我 可以做類似
mymodincludedir=$(includedir)/mymod
mymod_HEADERS=inc/mymod/mod.hh
mysubmodincludedir=$(includedir)/mymod/submod
mysubmod_HEADERS=inc/mymod/submod/submod.hh
但是這是很痛苦的,因爲有一個很多子目錄和多個子目錄,子目錄中(我們分發第三方的代碼,我們自己的頭需要) 。我希望能夠做的是告訴automake只複製/inc
到$(includepath)
的目錄以及它遇到的每個子目錄,或者告訴它只從我列出的頭文件中刪除部分路徑。這可能嗎?
你能詳細說一下嗎? Makemodule.am方法已經是我正在使用的方法。我如何使用nobase_這種方式?根據我的理解,我仍然需要指定完整的路徑,所以我仍然遇到與我的問題中提到的相同的問題。 – jonthalpy