2011-10-04 3 views
2

나는 스스로 잘 작동하는 두 개의 autotools 프로젝트를 가지고있다 :autotools 프로젝트 디렉토리 안에 관련없는 autotools 프로젝트가있을 수 있습니까?

p1은 libs를 만들거나 C++을 사용하지 않으며 사용자가 컴파일하기위한 것이다. 그래서 여기서는 libtoolize도 LT_INIT도하지 않습니다.

p2는 개발에만 사용되는 초소형 C++ 라이브러리를 만듭니다. 여기서 LT_INIT를 사용하고 libtoolize를 호출합니다.

그러나 나는 그것이 autotools를 프로젝트의 서브 디렉토리에 있음을 알 것이다 P2 디렉토리 내에서 automake를 실행, P1 내부의 P2 디렉토리를 놓고, 나는

를 추가하는 시도

configure.ac:31: required file `../ltmain.sh' not found 

오류를 얻을 때

AC_CONFIG_AUX_DIR([.]) 
(P2)의 configure.ac에

,하지만 구성에 ac_aux_dir 변수는 빈 도착, 나는 오류를 얻을

configure: error: cannot run /bin/sh /config.sub 

autotools를 프로젝트 내 관련없는 autotools를 프로젝트를 가지고 깨끗한 방법이 있나요 (구성의 라인은 $ax_aux_dir/config.sub를 실행하려고), 또는 그냥 포기해야합니까?

답변

3

내가 물어 본 후 2 분 만에 알아 냈습니다. 얼마나 전형적인가.

AC_INIT(…) 
AC_CONFIG_AUX_DIR([.]) 
AM_INIT_AUTOMAKE(…) 

하지 : 분명히, configure.ac는 가지고 있어야

AC_CONFIG_AUX_DIR([.]) 
AC_INIT(…) 
AM_INIT_AUTOMAKE(…) 

내가 가진처럼을 (그것은 AUX_DIR 나를 인도가 있어야했다 믿을 수있는 AM_INIT_AUTOMAKE 이후 인 경우 오류 메시지를 제공합니다 AC_INIT 이후).

어쨌든,이 작품 : 나는이 때

2

(P1)의 configure.ac에서 당신은 쓸 수 있습니다 :

AC_CONFIG_SUBDIRS(p2) 

모든 것을, P2는 자신의 configure.ac 등으로, P1의 하위 프로젝트로 취급하게됩니다 AC_CONFIG_SUBDIRS이 호출 " 자동 작업 "(희망 사항). complete small example in the autoconf manual

+0

, 그것은 보인다 실행 autoreconf/이상은 P2의 \의 nconfigure에 구성 '말한다 (P2를 구성하려고합니다 P1에서 구성 : 경고 : 어떤 구성 정보가 없습니다 in p2'). 나는 p1이 p2에 전혀 의존하지 않기를 바랍니다. – unhammer

+1

당신이 그것들을 완전하게 분리하기를 원한다면 그것들을 별도의 디렉토리에 넣을 것입니다. 그들과 관련 되길 원한다면, 옵션으로'if test -d "$ srcdir/p2"; 'AC_CONFIG_SUBDIRS'에 대한 구문입니다. – Flexo

관련 문제