Как условно настроить переменную Makefile, проверяя, существует ли файл

Например: Я хочу:

если файл1 существует:

CLEAN_SRC = *.h file3

еще

CLEAN_SRC = 

Ответы на вопрос(1)

Решение Вопроса

file1 не существует тогда$(wildcard file1) будет оценивать пустую строку.

ifeq ($(wildcard file1),) 
    CLEAN_SRC =
else 
    CLEAN_SRC = *.h file3
endif 
 18 авг. 2011 г., 04:24
Будьте осторожны с отступами и символами табуляции / пробела. Например. CLEAN_SRC должен был быть разделен символом TAB, иначе он бросил быno separator ошибка.
 25 нояб. 2013 г., 22:25
$ (realpath file1) будет альтернативой $ (подстановочный файл file1) в этом контексте, так как он также оценит пустую строку, если файл отсутствует.
 08 нояб. 2013 г., 22:21
@ArunM: я не думаю, что это правда о символах TAB / пробел. Толькоrule definitions требует отступа Tab. Другие части файла makefile могут иметь отступы от пробелов или не делаться вовсе - там все равно.
 17 авг. 2017 г., 10:18
Сначала я напишу положительный случайifneq ($(wildcard file1),) и тогда «файл не существует»; будетelse дело.
 08 янв. 2013 г., 15:37

Ваш ответ на вопрос