私は、非再帰的にコンパイルするいくつかのサブディレクトリを持つアプリケーションを持っています。このために、サブディレクトリのすべてのソースファイルをいくつかの変数に分けて、ソースの最終コレクションで使用します。このような何か:Makefile.amでパターンを置換する方法
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でこれを行う方法はありますか?
'$(addprefix Gui /、$(DATABASE_SOURCEFILES)) 'についてはどうですか? –
@dma_k:これは同じ問題があります: 'src/Makefile.am:12:addprefix Gui /、$(GUI_SOURCEFILES:非POSIX変数名' 'src/Makefile.am:12 :(おそらくGNU make拡張)' – LiKao
@LiKao:サフィックスの置き換えのような伝統的なmakefile構造も動作しますしかし、私は*プレフィックス*メソッドについてはわかりません。 – thiton