WIPIVERSE

Autoconf

GNU Autoconf는 자유 소프트웨어 재단(Free Software Foundation)이 개발한 소프트웨어 개발 도구로, 소스 코드 패키지의 빌드 환경을 자동으로 설정하는 configure 스크립트를 생성하는 역할을 한다. Autoconf는 GNU 빌드 시스템(GNU Build System)의 핵심 구성 요소이며, Automake, Libtool, Autoheader 등과 함께 사용된다.

Autoconf의 주요 목적은 소프트웨어가 다양한 UNIX 계열 시스템에서 수동 개입 없이 컴파일되고 설치될 수 있도록 하는 것이다. 개발자는 GNU m4 매크로 언어로 작성된 configure.ac 파일에 시스템 기능 검사 목록을 정의하며, Autoconf는 이를 해석하여 이식성 높은 configure 셸 스크립트를 생성한다. 생성된 configure 스크립트는 대상 시스템에서 실행될 때 컴파일러, 라이브러리, 헤더 파일 등의 존재 여부를 검사하고, 그 결과에 따라 Makefile과 헤더 파일을 자동으로 생성한다.

Autoconf의 접근 방식은 특정 버전이 아닌 기능(feature) 자체를 테스트하는 데 중점을 둔다. 예를 들어, 특정 운영체제 버전을 기준으로 판단하는 대신 ISO C 컴파일러가 실제로 시스템에 설치되어 있는지 직접 확인함으로써, 관리자가 시스템을 커스터마이즈한 환경에서도 올바르게 동작할 수 있다.

Autoconf는 1991년 여름 David Mackenzie에 의해 Free Software Foundation에서의 작업을 지원하기 위해 처음 개발되었다. 이후 여러 기여자에 의해 확장되었으며, 자유 및 오픈 소스 소프트웨어에서 가장 널리 사용되는 빌드 구성 시스템으로 자리 잡았다. 최신 안정 버전은 2.73(2026년 3월 20일 출시)이며, Perl로 작성되었고 GNU GPL 라이선스로 배포된다.

Autoconf에 대한 비판도 존재한다. m4 언어가 많은 개발자에게 생소하고, 생성된 configure 스크립트가 대규모이고 복잡하여 디버깅이 어렵다는 점, 레거시 제약이 많고 단순한 시나리오를 불필요하게 복잡하게 만든다는 지적이 있다. 이러한 한계로 인해 CMake, Meson, SCons 등의 대체 빌드 시스템으로 전환하는 프로젝트도 증가하고 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기