2014-10-24 3 views
1

오픈 소스 프로젝트 (Git 사용)를 복제 한 후 빌드하고 싶습니다.Makefile.in 및 configure.ac를 사용하여 처음부터 깨끗하게하고 빌드하십시오.

또한 i부터 시작하여 다시 시도 할 수 있기를 원합니다 (git-bisect와 함께 사용하기 위해).

깨끗한 계산에는 Makefile.inconfigure.ac이 포함되어 있지만 configure은 포함되어 있지 않습니다.

프로젝트에서 쉽게 찾을 수있는 지침이 없다고 가정 할 때,이 작업을 수행하기위한 비밀 소스는 무엇입니까? 이게 꽤 표준인가? 때로는 필요할 수있는 일반적인 변형이 있습니까?

+0

'autoconf' ???? –

+2

'bootstrap','bootstrap.sh' 또는'autogen.sh'라고하는 쉘 스크립트가 종종 있습니다.이 스크립트는 checkout을'configure' 상태로 준비시킵니다. 이 스크립트는 대개'autoreconf' /'autoconf'를 일어날 필요가있는 추가 단계로 포장합니다. – ldav1s

답변

1

내가 어떤 게시물 내가 make 단계는 이전의 실패 때문에 단지 autoconf를 사용하여 더 나은 결과를 얻고, autoreconf -fi의 사용을 조언 볼 수 있지만 (기본 설명은 autoconfautoreconf 참조). 어쩌면 일반적인 경우에는 작동하지 않는다면 다른 쪽을 시도해보십시오. 그 결과가 오염되지 않도록 사이를 청소하십시오.

## clean... 
make maintainer-clean ## clean up most stuff after you have run ./configure 
git status --ignored ## see what still needs to be cleaned up 
git clean -fdX ## remove ignored files 
git clean -fdx ## remove all extra files -- including your own work (if any) 
git reset --hard ## revert all remaining files (may be destructive) 

## build... 
autoconf && ./configure && make -s ## build everything 
,745 (모두 autoreconfautoconf를 나타냄) : 여기

몇 가지 일반적인 단계는
+0

유용한 정보 : http://stackoverflow.com/questions/19263899/why-is-autoreconf-not-used-often – nobar

+1

'autoreconf'가 작동하지 않으면'autoconf'만이 작동하지 않을 것입니다.'autoreconf'를 실행 한 직후에 패키지를 빌드 할 수 없다면 (특히 Intltool의 경우), 관리자는 보통'autogen.sh' 나'bootstrap.sh'와 같은 스크립트를 제공 할 것입니다 'autoreconf'는 다른 단계를 수행해야만합니다. – ptomato

1

자식을 사용하는 경우에는 자동 도구를 완전히 무시하고 bisect 단계 사이에 git clean -xdf을 수행하면됩니다.

0

다른 사람들이 이미 주석에 언급 했으므로 configure.ac 파일에는 구성 스크립트를 생성하는 데 일반적으로 autogen.sh 또는 bootstrap.sh 스크립트가 수반됩니다. 프로젝트는 다음 명령 세트 (루트 빌드 디렉토리가 정상적으로 보이는 수있는 것을 볼 그놈의 gtk+ source code 살펴 주시기로 구축 할 수 있도록 예를 들어

GNOME project는 규칙에 의해 autogen.sh 스크립트에 의존하는 경향이)이 규칙에서 같은 :

./autogen.sh --prefix=$PREFIX && make && make install 

./autogen.sh 스크립트를 실행 한 후 다음 빌드 루트 디렉토리에 생성되었다 configure 스크립트를 볼 것입니다.

특정 프로젝트에 그러한 스크립트가없고 질문에 답변하지 않는 경우 쿼리의 프로젝트 소스에 대한 링크를 제공 할 수 있다면 유용 할 것입니다 구체적으로.