使distcheck权限被拒绝

时间:2016-12-03 13:46:42

标签: autotools

在我的src目录中,我有一个接口文件[[ 5 20 31 32 36 3 10 25 27 40], [ 3 10 25 27 40 18 19 20 40 41], [18 19 20 40 41 6 22 26 29 48], [ 6 22 26 29 48 8 11 23 27 35]] ,swig使用该文件通过以下规则创建#initialize the target matrix arr = np.empty((0, 10), int) for current_line in statistics.values: if len(previous_line) > 0: #build an array row of 10 elements by 2 array with lenght 5 row = np.append(np.array(previous_line), np.array(current_line)) #arr = np.append(arr, row, axis=0) #fails with following Exception ValueError: all the input arrays must have same number of dimensions print(row) previous_line = current_line

neoleo.i

当我输入neoleo_wrap.c时,它输出:

neoleo_wrap.c : $(srcdir)/neoleo.i neoleo_swig.c neoleo_swig.h
        swig -tcl8 $(srcdir)/neoleo.i

我需要做些什么来解决这个问题?

make dist ; make distcheck的一些相关部分:

swig -tcl8 ../../../src/neoleo.i
Unable to open file ../../../src/neoleo_wrap.c: Permission denied
make[2]: *** [Makefile:1313: neoleo_wrap.c] Error 1

此处提供完整Makefile.am

Makefile.am

1 个答案:

答案 0 :(得分:3)

automake distcheck根据其标准验证您的构建系统是否正常运行,其中一部分是源目录未以任何方式修改。 distcheck使用权限来确保这一点。在您的情况下,swig正在尝试将其输出文件写入不正确的源目录(根据automake):不得修改该目录。

即使您不关心这一点,您的makefile也是错误的,因为它表示您的规则将构建neoleo_wrap.c,但您的swig命令行实际上会创建../../src/neoleo_wrap.c; make不会原谅这种背叛。

因此,您需要将swig命令更改为:

neoleo_wrap.c : $(srcdir)/neoleo.i neoleo_swig.c neoleo_swig.h
        swig -tcl8 -o $@ $<