1

Makefileに次のような行があります。

prog /something/f.{one,two,three}

しかし、私がprogから取得したmakeファイルを実行すると

/something/f.{one,two,three}存在しない。これは、makeがグロブを拡大していないと私に信じさせます。通常、これはBashで機能しますが、現在zshellを実行しているので、それが問題だと思います。そのパターンを移植可能に指定する方法を知っている人はいますか?

4

2 に答える 2

1

シェル展開する必要がありますか?Make は同様のことを行うことができます。これは、それを行う 1 つの方法にすぎません。

EXPANDED_POSTFIX := one two three
BASE_FILE := f.

PROG_FILE_LIST := $(foreach post,${EXPANDED_POSTFIX},${BASE_FILE}${post})

exec_prog:
    prog ${PROG_FILE_LIST}
于 2013-03-15T01:16:54.983 に答える
1

ThePoseyが提案したものに代わるものは、次のものを利用することですaddprefix

FILE_SUFFIXES := one two three
FILE_BASE := /something/f

FILES := $(addprefix $(FILE_BASE).,$(FILE_SUFFIXES))

my_rule:
    prog $(FILES)
于 2013-03-15T02:37:05.070 に答える