В Makefile назначьте переменную пути в зависимости от того, существует ли путь - PullRequest
2 голосов
/ 08 февраля 2011

Я разрабатываю свое приложение на c ++ поочередно в Debian и Ubuntu, и корневой каталог библиотеки базы данных informix различается в обоих дистрибутивах.

Какой хороший способ справиться с этим в Makefile, поэтому мне не нужно менятьэто вручную каждый раз?Я думал о том, чтобы просто проверить наличие каталога, поэтому он более общий, чем проверка uname, lsb-release или hostname.

А каков синтаксис для назначения в условии?Я получаю сообщение об ошибке "отсутствует разделитель" при попытке № 2

// prepare
INFORMIXDIR_DEB=/usr/informix
INFORMIXDIR_UBU=/opt/IBM/informix 

// tried #1
$(INFORMIXDIR_DEB):  
        if [ -d $(INFORMIXDIR_DEB) ]; then INFORMIXDIR=$INFORMIXDIR_DEB; fi;

// tried #2
$(INFORMIXDIR_DEB):  
       INFORMIXDIR=$(INFORMIXDIR_DEB)

// tried #3
if [ -d $(INFORMIXDIR_UBU) ] ; 
    then INFORMIXDIR=$INFORMIXDIR_UBU;
fi;

1 Ответ

3 голосов
/ 08 февраля 2011

Но если вы используете gnu make, вы можете написать команду оболочки для проверки того, что вы хотите, присвоить результат переменной и играть с ifeq?

...