1. ホーム
  2. makefile

[解決済み] Makefile にファイルが存在するかどうかを確認し、削除するにはどうすればよいですか?

2022-04-23 03:32:29

質問

のクリーンセクションに Makefile 私は永久に削除する前にファイルが存在するかどうかを確認しようとしています。このコードを使用しますが、エラーが発生します。

何が問題なのでしょうか?

 if [ -a myApp ]
 then
     rm myApp
 fi

このようなエラーメッセージが表示されます。

 if [ -a myApp ]
 /bin/sh: Syntax error: end of file unexpected (expecting "then")
 make: *** [clean] Error 2

解決方法は?

2番目に多い回答は ifeq しかし、この ifeq は、makefile 内でターゲット名と同じインデントレベルになければなりません。例えば、あるファイルが現在存在しない場合のみダウンロードする場合は、次のようなコードになります。

download:
ifeq (,$(wildcard ./glob.c))
    curl … -o glob.c
endif

# THIS DOES NOT WORK!
download:
    ifeq (,$(wildcard ./glob.c))
        curl … -o glob.c
    endif