makefile - 在 Makefile 中,如果路径存在,则分配路径变量相关

标签 makefile conditional-statements variable-assignment

我在 debian 和 ubuntu 上交替开发我的 C++ 应用程序,并且 informix 数据库的库根目录在两个发行版上都不同。

在 Makefile 中处理它的好方法是什么,这样我就不必每次都手动更改它? 我想只测试目录是否存在,这样它比检查 uname 或 lsb-release 或主机名更通用。

条件赋值的语法是怎样的?我在 try#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;

最佳答案

但是如果你使用gnu make,你可以编写shell命令来测试你想要的任何东西,将结果分配给变量并使用ifeq

关于makefile - 在 Makefile 中,如果路径存在,则分配路径变量相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4930570/

相关文章:

linux - bash,在带有管道的命令中插入条件

c - 在C中将直接字符串分配给char数组

c - 如何在 C 中的 for 循环中分配给变量?

python - 使用 python 中的变量创建新文件

C通过makefile一次性实现文件

Python,与条件数组相反

c++ - 如果用户输入无效则循环

go - 这个 "common idiom"是如何工作的?

makefile - 在 Makefile 'foreach' 循环中添加换行符

makefile - 如何使用模块为 Fortran 编写 makefile?