首页 > 解决方案 > 如何在 Makefile 规则之外检查文件是否存在?

问题描述

这是一个伪代码:

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. 如何检查makefile中是否存在文件

标签: fileif-statementmakefilegnu-make

解决方案


单线:

GITIGNORE_PATH := $(if $(wildcard .gitignore),,../).gitignore

推荐阅读