Как проверить, существует ли файл вне правила Makefile? - PullRequest
1 голос
/ 12 апреля 2019

Это псевдокод:

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
  1. Тестирование, если файл существует в файле make
  2. Тестирование, если файл существует в цели makefile, и выход из него, если его нет
  3. Как проверить, существует ли файл в make-файле

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Однострочник:

GITIGNORE_PATH := $(if $(wildcard .gitignore),,../).gitignore
1 голос
/ 12 апреля 2019

Это сработало:

# 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

...