在 Makefile 中,如果路径存在,则分配路径变量相关
我在 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;
I develop my c++ app alternately on debian and ubuntu and the library root dir of informix database is different on both distributions.
What's a nice way of handling it in Makefile so i don't have to change it manually each time?
I thought of just testing on existance of the directory so it's more general then checking uname or lsb-release or hostname.
And how is the syntax for assigning in a condition? I get the "missing seperator" error on 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;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
但是如果您使用 gnu make,您可以编写 shell 命令来测试您想要的任何内容,将结果分配给变量并使用
ifeq
?But if you use gnu make, you can write shell command to test whatever you want, assign the result to the variable and play with
ifeq
?