gpt4 book ai didi

autotools - 文件由 `make dist` 复制,但未由 `make distcheck` 复制

转载 作者:行者123 更新时间:2023-12-02 22:46:23 26 4
gpt4 key购买 nike

在使用 GNU Autotools 构建的项目中,我有一个脚本需要通过 make 修改以包含安装路径。这是一个小例子:

configure.ac:

AC_INIT(foobar, 1.0)
AC_PREREQ(2.66)
AC_CONFIG_HEADERS(config.h)
AM_INIT_AUTOMAKE(foreign)
AC_CONFIG_FILES([Makefile blah/Makefile])
AC_OUTPUT

Makefile.am:

SUBDIRS = blah

blah/Makefile.am:

all: myscript

myscript: myscript.in
sed -e 's,@datadir\@,$(pkgdatadir),g' myscript.in > myscript
chmod +x myscript

EXTRA_DIST = myscript.in

./configure; make 成功创建 myscriptmake dist 同上; tar xvzf foobar-1.0.tar.gz; cd foobar-1.0; 。/配置;制作。但是,make distcheck 失败,因为文件 myscript.in 丢失(但已使用 make dist 成功复制)。

有什么想法为什么文件 myscript.in 没有被 make distcheck 复制吗?

最佳答案

myscript.in 位于发行版 tarball 中,但 make distcheck 会进行 VPATH 构建,其中 configure 从不同的目录运行。例如,它不是“./configure”,而是执行类似于“mkdir build-dir; cd build-dir;/path/to/configure;”的操作在 Makefile.am 中,您需要将 myscript 规则和依赖行中的“myscript.in”实例替换为“$(srcdir)/myscript.in”

关于autotools - 文件由 `make dist` 复制,但未由 `make distcheck` 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6433559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com