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
?@williampersell
automake(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
命令?