在我的项目中,我使用了一个源生成器。现在对于make dist目标我不希望最终用户需要生成器,所以我决定使用
将预生成的源文件添加到tarballEXTRA_DIST = generated.cc
不幸的是,创建tarball中的Makefile还包含生成generated.cc的规则
generated.cc : input.txt
scarygenerator input.txt > $(top_builddir)/generated.cc
由于input.txt不是tarball的一部分,因此执行此规则并失败。
生成tarball的Makefile时,“make dist”可能会省略此规则吗?
答案 0 :(得分:3)
autotools旨在简化GPL的合规性(例如相应的来源,在这种情况下可能包括input.txt
和scarygenerator
)。但是,由于您的项目可能不受GPL限制的约束,您可以在tarball中 not include index.txt
这样做:
<强> configure.ac 强>
AC_MSG_CHECKING([for source generation])
AS_IF([test -f index.txt], [gen_source=yes], [gen_source=no])
AC_MSG_RESULT($gen_source)
AM_CONDITIONAL([GEN_SOURCE], [test x$gen_source = xyes])
<强> Makefile.am 强>
bin_PROGRAMS = foo
foo_SOURCES = ... generated.cc
if GEN_SOURCE
generated.cc : index.txt
scarygenerator $< > $@
endif