まず、これを解決する方法がたくさんあるため、タイトルは非常に一般的です。しかし、私はきれいできちんとした方法を探しています。
状況:
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
. foo
3番目の解決策には、避けたい重複した言及が含まれています。