GNU makefile でばかげた問題に直面しています。ac プログラムをビルドするために 2 つのターゲットを定義したいと考えています。1 つはデバッグあり、もう 1 つはなしです。
runNoDebug: setNoDeb objs runMe
runDebug: setDeb objs runMe
setNoDeb:
{EXPORT} MyDEBUG= -O3
setDeb:
{EXPORT} MyDEBUG="-DDEBUG=1 -g"
objs: cFiles
$(CC) -o $@ $^ $(cFiles) $(CFLAGS) $(LIBS) $(MYDEBUG)
runme: objs
./oo
このメイクファイルを実行するとエラーが発生し、デバッグを設定するコマンドがサブシェルで実行され、エラーが発生します。「エクスポート」が追加された場合、変数はそのサブシェルで定義されます。
オブジェクトの構築中に使用されるメイクファイル自体でこの変数を定義したいと思います。
出来ますか?または、「objs: cFiles」ターゲットを複製する必要がありますか?