Есть ли способ, в правиле 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."
Правило 'install', очевидно, не будет выполнено, если у пользователя нет прав на запись в / usr / lib и / usr / bin. Есть ли способ проверить это разрешение перед выполнением этих двух строк и в этом случае вывести соответствующее сообщение об ошибке (возможно, что-то вроде «У вас недостаточно прав для запуска этой команды»)?