重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Makefileのワイルドカードについて教えてください。

Makefile内にテストケースを書いています。この際、"make test"とすれば、
全てのテストケースを実行できるようにしたいのです。
ベタうちをするならば・・・

test: test1 test2 test3 test4 test5 test6
test1:
   ./a.out 1 > out;
   diff out ansdata1;
test2:
   ./a.out 2 > out;
   diff out ansdata2; 
test3:
   ./a.out 3 > out;
   diff out ansdata3; 
test4:
   ./a.out 4 > out;
   diff out ansdata4; 
・・・・・・
のように、記述をすると思いますが、

test: test1 test2 test3 test4 test5 test6......

とターゲットを全て定義するのは大変です。(後追加とかも考えて。)

test: test*

のようなノリで、ワイルドカードとして一気にターゲットを指定できる方法はないのでしょうか。
どなたかご教授ください。

A 回答 (4件)

余談.



私の知る限り
test: test*
のように依存関係を指定できる make はありませんが (ちなみにこの場合はこう書けても無意味), make の種類と OS とテストケースにおけるターゲットの書き方と実行方法によっては可能です.

ただし, 残念ながら私には超能力はないので, これらの条件があなたのところでそろっているかどうかは知りません.
    • good
    • 0

#2 でも言われているように, 「make」といってもその処理能力はものにより様々です. したがって, あなたが使う「make」がわからないと適切な回答はできません. できれば OS の情報も.



あと, 各「テストケース」の書き方にも依存しそうです... あれ?
test1:
   ./a.out 1 > out;
   diff out ansdata1;
などの最後の ; って, 何の意味があるんだ?
    • good
    • 0

makeは処理系により方言がいろいろあるので、もしかしたらそういうことができるmakeがあるかもしれませんが、どのmakeでも使えるような方法は私が知る限りではないです。

    • good
    • 0

テスト用のスクリプトを別に用意して


test:
    ./test.sh
みたいにしたらいいのではないでしょうか

この回答への補足

回答ありがとうございます。
なるほど・・・
テスト用のスクリプトもありですが・・・
Makefileの記述の範囲内で出来る方法はないでしょうか。

補足日時:2013/05/17 06:37
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!