【问题标题】:In Makefile assign path variable dependent if path exists如果路径存在,则在 Makefile 中分配依赖于路径的变量
【发布时间】:2011-02-08 07:25:07
【问题描述】:

我在 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;

【问题讨论】:

    标签: makefile conditional variable-assignment


    【解决方案1】:

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

    【讨论】:

    • 更准确地说:“将结果分配给变量”?测试条件后怎么写?
    • @groovehunter:$(shell) 东西。查看 gmake 手册以获取完整信息。我的意思是类似于交给 shell 的完整逻辑:$(shell test -d blabla && echo blablaexists)。
    • 好吧,我明白了。 INFORMIXDIR=$(shell test -d /opt/IBM/informix && echo /opt/IBM/informix )“shell”前没有空格! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2013-06-09
    • 1970-01-01
    • 2022-08-18
    • 2017-08-10
    • 2022-10-16
    相关资源
    最近更新 更多