2009-02-01 11 views
5

상당히 큰 프로그램이 C로 작성되었습니다. 여러 파일에 걸쳐 있으며 플랫폼 문제를 보완하기 위해 약간의 재 작업이 필요합니다. 특히, 나는 여러가지 OS, 아키텍쳐 및 것들을 다루기 위해 사용하는 매크로를 정의하는 컴파일러를위한 헤더 파일을 가지고있다. 예를 들어 -v 플래그는 버전 정보를 빌드 한 컴파일러의 이름과 빌드 된 운영 체제 및 아키텍처를 포함하여 버전 정보를 인쇄합니다. 중요한 이유의 예로서, 프로그램은 C 코드 파일을 만들 수 있고, 원한다면 컴파일 할 수 있습니다. 어떤 컴파일러로도 시스템 호출을 수행하는 작업입니다. 이 빌드되었습니다.GNU Autotools 용 큰 프로그램을 재구성하는 방법

또한 GNU Readline 라이브러리 (또는 BSD Editline 라이브러리 - 동일한 것)가 시스템에서 발견 될 경우 지원되며, 순수한 ANSI 인 모든 멋진 Readline 기능이 없으면 이에 상응하는 기능도 제공합니다. 가지고있다.

결론적으로 몇 가지 기능은 OS/아키텍처/컴파일러에 따라 크게 의존하므로 플랫폼 의존 비트를 제거 할 수 없습니다. 나는 또한 그것을 가진 사람들에게 좋은 기능을 제공하고 싶다. 사람들이 표준 ./configure, makemake install 인터페이스를 사용하여 다운로드하고 설치하기를 바랍니다.

현재용 미안한 셸 스크립트를 사용하고 있습니다.이 스크립트는 처음부터 Makefile을 만들고 OS/아키텍처/컴파일러에 따라 포함시킬 헤더 파일을 결정합니다. 보다 효율적인 접근 방법을 원합니다. GNU Autotools를 사용하는 표준 빌드 시스템을 사용하고 싶습니다. 그렇게하면 내가하는 일은 컴퓨터에서 테스트하지 않고도 다른 사람의 컴퓨터에서 작동한다는 것을 알 수 있습니다.

저에게 감사드립니다! 감사합니다! 1) 자작 빌드 시스템에서 GNU Autotools로 전환하는 방법은 무엇입니까? 2) GNU Autotools를 시작하기에 좋은 튜토리얼은 무엇입니까? 3) 어떻게하면 비교적 고통스럽지 않을까요?

답변

8

우선 프로젝트의 루트 디렉토리에 autoscan을 실행할 수 있습니다. 이동식이 아닌 기능을 탐지하려고 시도하는 동안 프로젝트 트리를 검사하여 configure.scan을 생성합니다. 그런 다음 configure.ac으로 이름을 변경하고 이에 맞게 편집하고 Makefile.am 파일을 작성하십시오.

자세한 내용은 GNU autotools 매뉴얼에서이 프로세스 (특히 autoscan)를 찾아 보시기 바랍니다. 그것은 당신의 노력을 줄이기는하지만, 적어도 당신은 그 파일을 만드는 것으로부터 시작하지 않을 것입니다.

1

이 링크는이 게시물을 읽은 후 내가 봤어. 그것은 ./configure 파일을 만드는 방법에 대한 나의 질문에 대답했다.

The GNU Build System