2016-07-21 2 views
0

ください。シェルスクリプトを使ってサブディレクトリ内の各ファイルを変換したいと思います。は、私が<code>make</code>に問題があると私はそれを解決する方法を見つけ出すことはできません複数の前提条件と複数のターゲットの利用パターンルール

OBJ=$(wildcard src/*.in) 
OUT=$(patsubst %.in, %.out, $(notdir $(OBJ))) 

%.out : src/%.in 
    ./myscript.sh $< > [email protected] 

$(OUT) : $(OBJ) 

makefile作品が、それは唯一の最初の.inファイルのスクリプトを実行し、それが停止します。これは私が書いたものです。愚かな質問を申し訳ありませんが、私はこれを修正することはできません!

答えて

0

あなたはすべての$(OUT)ファイルを構築するためにMakefileを言っていないので、あなたはそれを構築する必要があるかと言っています。

だから、 `$(OUT)の代わりにこの

OBJ=$(wildcard src/*.in) 
OUT=$(patsubst %.in, %.out, $(notdir $(OBJ))) 

all: $(OUT) 

%.out : src/%.in 
    ./myscript.sh $< > [email protected] 
+0

をお試しください:$(OBJ)'は十分ではありません!ありがとう! – Giovanni

+0

本当に、あなたは '$(OUT)'をビルドしたいだけでなく、ビルドしたいと言う必要があります。 –

+0

'$(OUT):$(OBJ)'という行は十分だと思っていましたが、 makeマニュアルをもっと慎重に読んで、makeがmakefileの目標として最初のルールを設定し、目標に複数のターゲットがある場合、makeは最初のルールだけを取ります。私が間違ったことを言ったら、私を訂正してください! – Giovanni

関連する問題