使 distcheck 权限被拒绝
make distcheck permission denied
在我的 src 目录中,我有接口文件 neoleo.i
,swig 使用该文件通过规则创建 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
的一些相关部分:
EXTRA_DIST = $(srcdir)/neoleo.i
BUILT_SOURCES = getdate.c parse.c parse.h posixtm.c posixtm.h neoleo_wrap.c
nodist_libneoleo_la_SOURCES = neoleo_wrap.c
neoleo_wrap.c : $(srcdir)/neoleo.i neoleo_swig.c neoleo_swig.h
swig -tcl8 $(srcdir)/neoleo.i
完整 Makefile.am
可在此处获取:
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 $@ $<
在我的 src 目录中,我有接口文件 neoleo.i
,swig 使用该文件通过规则创建 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
的一些相关部分:
EXTRA_DIST = $(srcdir)/neoleo.i
BUILT_SOURCES = getdate.c parse.c parse.h posixtm.c posixtm.h neoleo_wrap.c
nodist_libneoleo_la_SOURCES = neoleo_wrap.c
neoleo_wrap.c : $(srcdir)/neoleo.i neoleo_swig.c neoleo_swig.h
swig -tcl8 $(srcdir)/neoleo.i
完整 Makefile.am
可在此处获取:
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 $@ $<