現在のフォルダー内のディレクトリーをパスのリストの先頭に入れるようにMakefileを取得しようとしています。これに似て何か:Makefile addprefixはドットを削除します
FILES = path/to/first path/to/second path/to/third
PREPENDED_FILES = $(addprefix ./localdir/, $(FILES))
all: $(PREPENDED_FILES)
echo $^
理想的make all
の出力は次のようになります。
./localdir/path/to/first ./localdir/path/to/second ./localdir/path/to/third
しかし、私には不明初期.
がそのように取り除かれます理由のために私が手:
/localdir/path/to/first /localdir/path/to/second /localdir/path/to/third
のために私の残念なことに絶対パスを使用することはできませんので、を$(PWD)
の代わりに使用することはできません。出力に先頭の.
が必要です。他の機能(例:warning
)にラップすると、.
が再び表示されます...
ご意見がありましたら、お気軽にお問い合わせください。
が印刷されます、あなたは*出力*で、または*前提条件に「./」をリードする必要がありますか*? – Beta
この動作を再現できません(GNU Make 4.2.1)。注意(あなたの問題とは関係ない): 'addprefix'のようなmake関数呼び出しでは無駄なスペースを避けるべきです。 –
ところで、完全な階層のルートにあなたの例の 'localdir'がありますか?そして、あなたは 'make' form '/'を呼び出しますか? '。/ localdir'と'/localdir'が同じで、 'make'が何らかの形で*前提条件のパスを正規化するので、あなたが観察するものは普通です。 –