如何替换Makefile.am中的模式

时间:2012-01-03 12:35:28

标签: makefile autotools

我有一个带有几个子目录的应用程序,我想编译非递归。为此,我将子目录中的所有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为我做这个?

1 个答案:

答案 0 :(得分:3)

这里没有办法,所有文件名必须在automake时间可用,并且排除某些类似make-time的函数(非便携式)。