人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

GNU Make 3.81で依存関係のファイルをincludeしたいのですが、
毎回依存関係のファイルを作ってしまいます。
どこを直したらよいでしょうか?

======================================
All:
@echo test


Makefile.depend: $(subst .c,.d,$(wildcard *.c))

depend: clean $(subst .c,.d,$(wildcard *.c))

%.d:%.c
touch Makefile.depend

clean:
del Makefile.depend

include Makefile.depend
==========================================

Makefile.depend:をターゲットのみにしてしまえば毎回Makefile.dependは作らなくなりますが、
Makefile.dependがない場合に自動で作らなくなる,
Makefile.dependがない場合にエラーでとまらなくなる等の問題が生じます。


●質問者: foobar_777
●カテゴリ:コンピュータ
✍キーワード:ALL Clean echo GNU make
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● makeworld
●100ポイント

「include」を「-include」に変更して、「.d」ファイルを実際に作成するか又は「Makefile.depend」のルールを削除すれば良いと思います。

All:
 @echo test

Makefile.depend: $(subst .c,.d,$(wildcard *.c))
 cat $(subst .c,.d,$(wildcard *.c)) > $@

%.d: %.c
 touch $@

clean:
 rm -f Makefile.depend $(subst .c,.d,$(wildcard *.c))

-include Makefile.depend
All:
 @echo test

depend: clean $(subst .c,.d,$(wildcard *.c))

%.d: %.c
 touch Makefile.depend

clean:
 rm -f Makefile.depend

-include Makefile.depend
◎質問者からの返答

実際には%.d:%.cのところはtouchではなく、依存関係を調べてMakefile.dependを作る処理を行います。

2番目だと依存関係を読みこまないことがあるので

1番目の.dを作る方法でやってみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ