微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过`make dist`复制的文件,而不是通过`make distcheck`复制的文件

如何解决通过`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 举报,一经查实,本站将立刻删除。