まず、これを解決する方法がたくさんあるため、タイトルは非常に一般的です。しかし、私はきれいできちんとした方法を探しています。
状況:
2 つの等しいオブジェクト ファイルfoo.oとfoo-pi.oがあり、後者は位置に依存しません (でコンパイルされ-fPICます)。どちらも と に依存しfoo.hますbar.h。
問題:
コードを複製せずに、 all の依存関係を宣言するにはどうすればよいfoo*.oですbar.hか?
これまでの解決策:
$(shell bash -c 'echo -ne foo{-pi,}.o'): bar.h
$(addsuffix .o, $(addprefix fo, o-pi o)): bar.h
foo.o foo-pi.o: bar.h
最初の解決策は、 をサポートしていないシステムでは移植できませんbash。2 番目の解決策は、addprefix. foo3番目の解決策には、避けたい重複した言及が含まれています。