1)我们需要Makefile在z/OS和Linux平台上构建C++。建议在z/OS USS上使用gnu make来保持makefile的通用性吗?
2)如果Makefile是通用的,那么Makefile中的一些步骤仍然是平台的条件。我们可以通过类似于条件编译的步骤来做到这一点吗?如果是,我们能得到语法方面的帮助吗?
3)我们的z/OS USS Makefiles具有shell脚本或命令组,如下例所示,其中的方括号[]将命令作为一组呈现给shell,而不是一次一行。似乎使用GNU make时,我们必须将这些命令修改为一行,这很混乱,而且嵌套循环是一个问题。有没有更简单的方法来使用gmake对命令进行分组?
[
dirs=$(targets)
rc=0
for dir in $$dirs
do
cd $$dir/src
make -r
rc=$$?
if [ $$rc != 0 ]; then
echo "build failed for directory:" $$dir:
break;
fi
cd ../..
done
echo "return code from make = " $$rc
]发布于 2009-11-25 23:52:36
如果您需要可移植的Makefiles,请务必使用GNU make。我已经在USS下运行它很多年了,没有任何问题。如果您对自己构建它感到不舒服,您可以获得一个副本from here
发布于 2018-06-06 05:44:22
我已经使用Unix系统服务(USS)和C/C++/HLASM在z/OS上构建了几个应用程序。我发现使用gmake而不是是非常值得的。是的,你必须下载gmake并对其进行设置,但它更容易使用,也更容易使其便携。除了gmake之外,您可能还希望获得bash。使用bash在USS和其他平台之间创建可移植的shell脚本将变得更加容易,而不是强迫自己使用sh。你可能有几个地方可以获得gmake和bash,但我用过火箭网站:http://www.rocketsoftware.com/product-categories/mainframe/bash-zos (如果你不需要支持,它是免费的)。
https://stackoverflow.com/questions/1535314
复制相似问题