MKDIR#u P是';在Makefile中定义了t

MKDIR#u P是';在Makefile中定义了t,makefile,autotools,autoconf,Makefile,Autotools,Autoconf,我有一个客户的站点无法安装。问题的根源在于变量MKDIR_P从未展开。环顾四周后,这似乎是一个棘手的问题,在不同版本的autotools中出现,尽管该站点有autoconf 2.69,并且我所能找到的示例问题(和解决方案)中没有一个是与最新版本相关的。是否有人知道如何编写一个可移植的解决方案,或者至少在某种程度上可移植到不同版本的autotools?这应该不是必需的,但您应该能够在配置时简单地定义它: ./configure MKDIR_P='mkdir -p' 显然,SLES 11 SP2(

我有一个客户的站点无法安装。问题的根源在于变量MKDIR_P从未展开。环顾四周后,这似乎是一个棘手的问题,在不同版本的autotools中出现,尽管该站点有autoconf 2.69,并且我所能找到的示例问题(和解决方案)中没有一个是与最新版本相关的。是否有人知道如何编写一个可移植的解决方案,或者至少在某种程度上可移植到不同版本的autotools?

这应该不是必需的,但您应该能够在配置时简单地定义它:

./configure MKDIR_P='mkdir -p'

显然,SLES 11 SP2(1.10.1)附带的automake版本中存在一个bug。降级的汽车制造商解决了这个问题,虽然我不记得该网站的版本。这个问题不会持续到automake的更高版本,因此进一步升级也应该可以解决这个问题。

除非您正在运送破损的沥青球,否则站点上的autoconf版本是不相关的。如果你运送的是正确制造的tarball,那么不同版本的autotool就没有问题,因为它们唯一重要的是你的开发箱上的那些。这个网站的tarball有问题,需要重新生成。我们的tarball在其他每个站点都可以使用。是否有$prefix/share格式的config.site文件?运行配置时是否设置了配置站点?配置时未设置配置站点。系统上有一个config.site文件(我使用locate找到了一个),但它不在$prefix/share中。生成文件是使用Automake生成的,还是手动维护的?这在他们的系统上不起作用。其他不起作用的事情包括将AC_PROG_MKDIR_P添加到configure.AC以及将MKDIR_P=“MKDIR-P”AC_SUBST(MKDIR_P)添加到configure.AC。这是否意味着他们的自动工具安装完全是垃圾?这不会导致在Makefile中定义MKDIR\u P。你是说
MKDIR\u P=@MKDIR\u P@
行没有出现在
Makefile.in
中,还是
MKDIR\u P=
=/code>之后没有任何内容出现在Makefile中,还是说grep MKDIR\u P Makefile
失败了,还是其他什么?
config.status
中是否定义了
MKDIR\u P
?它在config.status中定义正确,但不在Makefile.in中,也不在Makefile中。它出现在Makefile中的唯一位置是mkdir_p=$(mkdir_p),但Makefile中没有mkdir_p的定义,甚至没有空的定义。显然,我的错误是由SLES 11 SP2引起的,它在automake中有一个错误。降级的汽车制造商解决了这个问题。