독점, 비공개 소스, 지원되지 않는 레거시 코드를 컴파일하기 위해 오래된 지침을 따르고 있습니다. 일반적인 셸 세션은 다음과 같습니다.
$ autoreconf -fi
src/Makefile.am:7: error: 'pkglibexecdir' is not a legitimate directory for 'PYTHON'
autoreconf: automake failed with exit status: 1
$ cat src/Makefile.am
pkglibexecdir = $(libexecdir)/packagename
nobase_pkglibexec_PYTHON = \
python_module_1.py
python_module_2.py
[...]
MAINTAINERCLEANFILES = Makefile.in
BUILT_SOURCES = some_source
some_source:
ln -s ../lib/python/some_source some_source
저는 GNU Autoconf 버전 2.69를 사용하고 있습니다. 같은 프로젝트의 다른 패키지에서도 비슷한 문제가 있습니다. 나는 이 문제에 대한 빠른 해결책이 있다고 가정하고 있지만 자동 도구에는 그다지 익숙하지 않으며 Google을 통해 찾은 대부분의 내용은 나에게 별로 의미가 없습니다.
답변1
경찰의 감독을 피하려면 몇 가지 트릭을 사용해야 합니다 automake
. 바라보다https://www.gnu.org/software/automake/manual/html_node/Uniform.html:
이 기능은 의심되는 디렉토리/메인 쌍을 진단하기 위해 Automake가 수행하는 온전성 검사를 무시하는 데에도 사용할 수 있습니다(드문 경우에는 이러한 검사가 필요하지 않고 실제로 수행 중인 작업을 알고 있는 경우). 예를 들어 Automake는 다음 입력에 대해 오류를 발생시킵니다.
# Forbidden directory combinations, automake will error out on this. pkglib_PROGRAMS = foo doc_LIBRARIES = libquux.a
그러나 성공할 것입니다:
# Work around forbidden directory combinations. Do not use this # without a very good reason! my_execbindir = $(pkglibdir) my_doclibdir = $(docdir) my_execbin_PROGRAMS = foo my_doclib_LIBRARIES = libquux.a