如何解决通过`make dist`复制的文件,而不是通过`make distcheck`复制的文件
|| 在使用GNU Autotools构建的项目中,我有一个脚本,需要按ѭ0进行修改以包含安装路径。这是一个小例子: 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
等等/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
成功创建myscript
。同上,make dist; tar xvzf foobar-1.0.tar.gz; cd foobar-1.0; ./configure; make
。但是,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 \”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。