Makefile にファイルが存在するかどうかを確認して削除するにはどうすればよいでしょうか? 質問する

Makefile にファイルが存在するかどうかを確認して削除するにはどうすればよいでしょうか? 質問する

私のクリーン セクションでは、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

ベストアンサー1

多くの人がこれにシェル スクリプトを使用しているのを見るのは奇妙です。私はこれをターゲットの外で書いているので、ネイティブの makefile 構文を使用する方法を探していました。wildcardファイルが存在するかどうかを確認するには、関数を使用できます。

 ifeq ($(UNAME),Darwin)
     SHELL := /opt/local/bin/bash
     OS_X  := true
 else ifneq (,$(wildcard /etc/redhat-release))
     OS_RHEL := true
 else
     OS_DEB  := true
     SHELL := /bin/bash
 endif 

参照:

アップデート:

私は本当に気に入った方法を見つけました:

ifneq ("$(wildcard $(PATH_TO_FILE))","")
    FILE_EXISTS = 1
else
    FILE_EXISTS = 0
endif

おすすめ記事