• 締切済み

Makefileのワイルドカードについて

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

みんなの回答

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

余談. 私の知る限り test: test* のように依存関係を指定できる make はありませんが (ちなみにこの場合はこう書けても無意味), make の種類と OS とテストケースにおけるターゲットの書き方と実行方法によっては可能です. ただし, 残念ながら私には超能力はないので, これらの条件があなたのところでそろっているかどうかは知りません.

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

#2 でも言われているように, 「make」といってもその処理能力はものにより様々です. したがって, あなたが使う「make」がわからないと適切な回答はできません. できれば OS の情報も. あと, 各「テストケース」の書き方にも依存しそうです... あれ? test1:    ./a.out 1 > out;    diff out ansdata1; などの最後の ; って, 何の意味があるんだ?

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

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

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

テスト用のスクリプトを別に用意して test:     ./test.sh みたいにしたらいいのではないでしょうか

fuji_dahlia
質問者

補足

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

関連するQ&A