Makefileルールで、指定されたディレクトリに書き込む権限があるかどうかを確認する方法はありますか?これは私が書いているのMakefileのごく一部です:Makefile:ディレクトリへの書き込み権限を確認する
APP_NAME = electro
CC = gcc
C_FLAGS = -Wall
LIB_DIR = lib
SRC_DIR = src
INST_DIR = /usr/bin
INST_LIBDIR = /usr/lib
LIBS = libcomponent.so libpower.so libresistance.so
L_FLAGS = -lresistance -lpower -lcomponent
.PHONY: lib
lib:
@$(MAKE) --directory=$(LIB_DIR)
install: $(SRC_DIR)/main.c lib
(cd $(LIB_DIR); cp $(LIBS) $(INST_LIBDIR))
$(CC) $(C_FLAGS) -o $(INST_DIR)/$(APP_NAME) $(L_FLAGS) $<
@echo "$(APP_NAME) installed successfully."
ユーザーが/ usr/libおよび/ usr/binにへの書き込み権限を持っていない場合は「インストール」のルールは明らかに失敗します。この2つの行を実行する前にこの許可をチェックする方法があり、その場合には適切なエラーメッセージを出力します(おそらく "このコマンドを実行するのに十分な権限がありません"という行に沿って)
これらのチェックはCygwinではあまり価値がないことに注意してください。そこに書き込むことに失敗するほうが良いかもしれません。 – reinierpost