Это псевдокод:
if .gitignore exists GITIGNORE_PATH := .gitignore else GITIGNORE_PATH := ../.gitignore fi all: do_build...
Я пытался найти это, но они всегда показывают, как это сделать внутри правил, как в:
$(UBIN)/%: @if [ -f '$@' ]; then \ $(CC) $(CFLAGS) -o '$@' $(OBJS) -L $(ORAHOME) $(ORALIBS) \ $(LNKPATH) $(DSTN_LIBS); \ echo ""; \ fi
Однострочник:
GITIGNORE_PATH := $(if $(wildcard .gitignore),,../).gitignore
Это сработало:
# Read it as `if .gitignore file exists` ifneq (,$(wildcard .gitignore)) GITIGNORE_PATH := .gitignore else GITIGNORE_PATH := ../.gitignore endif all: echo GITIGNORE_PATH ${GITIGNORE_PATH}
Из этого ответа: https://stackoverflow.com/a/17712774/4934640