我有一个带有几个子目录的应用程序,我想编译非递归。为此,我将子目录中的所有sorucefiles分成几个变量,然后我在最终的源集合中使用它们。像这样:
GUI_SOURCEFILES = Gui/MainWindow.cc \
Gui/StatusBar.cc
...
foo_SOURCES = $(GUI_SOURCEFILES) \
$(DATABASE_SOURCEFILES) \
main.cc
现在,这迫使我在所有数据库文件前面为所有gui源文件和Gui/
编写Db\
。我认为应该可以创建这个前缀automaticall,但我找不到正确的方法。我尝试了通常的制作方式:
GUI_SOURCEFILES = MainWindow.cc \
StatusBar.cc
...
foo_SOURCES = $(GUI_SOURCEFILES) \
$(patsubst %,Gui/%,$(DATABASE_SOURCEFILES)) \
main.cc
但是autotools根本不会编译这个Makefile.am
。
有没有办法让autotools为我做这个?
答案 0 :(得分:3)
这里没有办法,所有文件名必须在automake时间可用,并且排除某些类似make-time的函数(非便携式)。