C “自动工具套件错位”;“人”;导致安装失败的文件
在我必须调整的软件中,C “自动工具套件错位”;“人”;导致安装失败的文件,c,installation,autotools,automake,manpage,C,Installation,Autotools,Automake,Manpage,在我必须调整的软件中,man文件与一个简单的Makefile.am文件位于doc/下: man_MANS = software.1 EXTRA_DIST = $(man_MANS) 安装后,我希望makeinstall将手册复制到/usr/local/share/man/下,但脚本将尝试在/usr/local/share/man/man1下安装该人,但该人不存在-抛出错误并停止进程 不过,如果我把software.1分配给人类,我也会有类似的行为 发生了什么事?automake怎么可能不创建不
man
文件与一个简单的Makefile.am
文件位于doc/
下:
man_MANS = software.1
EXTRA_DIST = $(man_MANS)
安装后,我希望makeinstall
将手册复制到/usr/local/share/man/
下,但脚本将尝试在/usr/local/share/man/man1
下安装该人,但该人不存在-抛出错误并停止进程
不过,如果我把software.1
分配给人类,我也会有类似的行为
发生了什么事?automake怎么可能不创建不存在的文件夹呢?
man_-MANS
将根据您提供的扩展名,尝试确定将手册放在哪个部分,因此在这种情况下,它将安装到${mandir}/man1
中是正确的
由于您说输出中的
MKDIR\u p
为空,请尝试确保在configure.AC
中调用AC\u PROG\u MKDIR\u p
(它应该由AM\u INIT\u AUTOMAKE
自动调用,但由于您说它是旧的,可能会有一些问题)。对我有效。您使用的是哪个版本的automake?为什么您希望手册页安装在/usr/local/share/man
中,而不是/usr/local/share/man/man1
?@williampersellautomake(GNU automake)1.14.1
-autoconf(GNU autoconf)2.69
我的理解是,使用变量manX_MANS将在名为manX的子目录下复制手册。我错了吗?我对自动工具不是很有经验,因为我仍然手工编写生成文件。你是对的。Automake将构建一个Makefile。在中,配置将用于创建Makefile
,该文件将有一个安装目标,该目标将创建一个目录$(DESTDIR)$(mandir)/man1
(默认情况下为/usr/local/share/man/man1
),并将软件.1安装到该位置。如果没有发生这种情况,那么构建文件中的其他内容就错了。创建一个简单的项目(只有software.1、configure.ac和Makefile.am),看看是否会得到相同的行为。始终使用man\u-MANS=software.1
make尝试在/usr/local/share/man/man1
下安装software.1
,但该软件不存在。因此,如果我无法更改目标目录,我是否应该手动在其他地方添加mkdir
命令?