【发布时间】:2014-05-26 13:16:09
【问题描述】:
在我必须调整的软件中,man 文件位于doc/ 下,还有一个简单的Makefile.am 文件:
man_MANS = software.1
EXTRA_DIST = $(man_MANS)
在安装时,我希望make install 将手册复制到/usr/local/share/man/ 下,但是脚本会尝试将man 安装在/usr/local/share/man/man1 下——它不存在——抛出错误并停止进程。
不过,如果我将 software.1 分配给 man1_MANS,我会期待类似的行为。
发生了什么事? automake 怎么可能不创建不存在的文件夹?
【问题讨论】:
-
为我工作。您使用的是哪个版本的 automake?
-
为什么你希望手册页安装在
/usr/local/share/man而不是/usr/local/share/man/man1? -
@WilliamPursell
automake (GNU automake) 1.14.1---autoconf (GNU Autoconf) 2.69据我了解,使用变量 manX_MANS 会将手册复制到名为 manX 的子目录下。我错了吗 ?我对 Autotools 不是很有经验,因为我仍然手动编写 Makefile。 -
你是对的。 Automake 将构造一个
Makefile.in,configure将使用它来创建Makefile,它将有一个install目标,它将创建一个目录$(DESTDIR)$(mandir)/man1(默认为/usr/local/share/man/man1)并安装software.1 到那个位置。如果这没有发生,那么您的构建文件中的其他内容是错误的。创建一个简单的项目(除了 software.1、configure.ac 和 Makefile.am),看看是否有相同的行为。 -
始终使用
man_MANS = software.1make 尝试在不存在的/usr/local/share/man/man1下安装software.1。所以,如果我不能更改目标目录,我应该在其他地方手动添加mkdir命令吗?
标签: c installation autotools automake manpage