如果路径存在,则在Makefile中指定路径变量 我在Debian和Ubuntu上交替开发了C++应用程序,Informix数据库的根目录DIR在两个发行版上都不同。
在Makefile中处理它的好方法是什么,这样我就不必每次手动更改它了? 我只想测试目录的存在性,这样它比检查uname、lsb版本或主机名更通用 在条件中赋值的语法是什么?我在try#2上出现“缺少分隔符”错误如果路径存在,则在Makefile中指定路径变量 我在Debian和Ubuntu上交替开发了C++应用程序,Informix数据库的根目录DIR在两个发行版上都不同。,makefile,conditional,variable-assignment,Makefile,Conditional,Variable Assignment,在Makefile中处理它的好方法是什么,这样我就不必每次手动更改它了? 我只想测试目录的存在性,这样它比检查uname、lsb版本或主机名更通用 在条件中赋值的语法是什么?我在try#2上出现“缺少分隔符”错误 但是如果您使用gnu make,您可以编写shell命令来测试您想要的任何东西,将结果分配给变量,并使用ifeq?更准确地说:“将结果分配给变量”?如何在测试条件之后编写它?@groovehunter:$(shell)东西。查看gmake手册以了解完整信息。我指的是交给shell的完整
但是如果您使用gnu make,您可以编写shell命令来测试您想要的任何东西,将结果分配给变量,并使用
ifeq
?更准确地说:“将结果分配给变量”?如何在测试条件之后编写它?@groovehunter:$(shell)东西。查看gmake手册以了解完整信息。我指的是交给shell的完整逻辑:$(shell test-d blablabla&&echo blablaexists)。现在我明白了INFORMIXDIR=$(shell测试-d/opt/IBM/informix&&echo/opt/IBM/informix)
shell前面没有空格!:)跟进。。。
// 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;