Configure
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Configure는 소프트웨어를 소스 코드로부터 컴파일하고 실행 파일로 설치하기 전에, 시스템에 맞게 조정하는 스크립트이다. Makefile 생성, 소스 컴파일, 실행 파일 설치 단계를 거치는 과정의 첫 단계에 해당하며, `./configure` 명령을 통해 실행된다. 이 스크립트는 `config.log`에 보고서를 출력하고, `--help` 옵션을 통해 명령줄 매개변수를 확인할 수 있다. 개발자들은 GNU Autotools를 사용하여 크로스 플랫폼 소프트웨어 개발을 단순화하며, configure 스크립트는 환경 설정, 플랫폼 아키텍처, 의존성 정보를 수집하여 `configure.ac`에 저장한다. 최초의 configure 스크립트는 1984년 래리 월이 개발한 rn 프로그램에 탑재되었으며, 이후 Autoconf와 같은 자동화 도구가 개발되었다. 신규 개발에서는 pkg-config를 통해 라이브러리 의존성을 검사한다.
더 읽어볼만한 페이지
- 컴파일 도구 - Libtool
Libtool은 다양한 유닉스 계열 운영 체제에서 정적 및 동적 라이브러리 생성을 관리하고, 운영 체제별 차이로 인한 소프트웨어 이식 문제를 해결하기 위해 GNU 빌드 시스템에서 사용되는 도구이다. - 컴파일 도구 - GNU 빌드 시스템
GNU 빌드 시스템은 Autoconf, Automake, Libtool 등의 오토툴과 GNU make 등으로 구성되어 다양한 UNIX 시스템에서 소프트웨어 빌드 및 설치를 지원하지만, 복잡성과 이식성에 대한 비판도 존재한다. - 빌드 자동화 - GNU 빌드 시스템
GNU 빌드 시스템은 Autoconf, Automake, Libtool 등의 오토툴과 GNU make 등으로 구성되어 다양한 UNIX 시스템에서 소프트웨어 빌드 및 설치를 지원하지만, 복잡성과 이식성에 대한 비판도 존재한다. - 빌드 자동화 - MSBuild
MSBuild는 마이크로소프트에서 개발한 빌드 자동화 도구로서, 프로젝트 파일에 기술된 대상을 실행하여 빌드 과정을 자동화하며, Team Foundation 빌드와 연동하여 팀 빌드 환경을 구성하는 데 사용된다.
Configure | |
---|---|
기본 정보 | |
이름 | Configure 스크립트 |
유형 | 실행 가능한 셸 스크립트 |
용도 | 소프트웨어 패키지 빌드 구성 |
개발자 | GNU 프로젝트 및 기타 |
관련 파일 | Makefile, config.log |
기능 | 시스템 정보 수집 빌드 옵션 설정 Makefile 생성 |
상세 설명 | |
역할 | 소스 코드 컴파일 및 설치 준비 |
작동 방식 | 시스템 환경 변수, 라이브러리 존재 여부 등을 확인 |
사용자 정의 | 다양한 옵션 지정 가능 (예: 설치 경로, 컴파일러 선택) |
사용 예시 | ./configure && make && make install |
장점 | 이식성 향상 빌드 과정 자동화 사용자 환경에 맞춘 설정 가능 |
단점 | 복잡한 설정 시 어려움 발생 가능 |
관련 도구 | |
Autoconf | configure 스크립트 생성 도구 |
Automake | Makefile 생성 도구 |
Libtool | 라이브러리 빌드 도구 |
추가 정보 | |
중요성 | 오픈 소스 소프트웨어 빌드 과정에서 핵심적인 역할 수행 |
참고 자료 | GNU Autoconf 매뉴얼, 관련 온라인 문서 |
2. 사용
소프트웨어를 소스 코드로부터 직접 가져오는 일은 일반적으로 makefile 구성, 소스 컴파일, 적절한 곳에 실행 파일 최종 설치와 같은 단계들을 거친다. configure 스크립트는 이러한 단계들 가운데 첫 단계를 수행한다. configure 스크립트를 사용하는 것은 컴파일 이전에 makefile을 생성하는 자동화된 방식이며, 소프트웨어가 실행 파일이 컴파일되고 실행될 수 있도록 시스템에 맞게 조정한다. 최종 실행 소프트웨어는 소스 코드를 포함한 현재 디렉터리를 가리키는 셸에서 다음 명령을 실행하여 얻을 수 있다.[4]
:
./configure
make
make install
단순히
configure
대신 ./configure
를 사용해야 스크립트가 현재 디렉터리에 있음을 셸에게 지시할 수 있다. 기본적으로 보안상의 이유로 유닉스 계열 운영 체제들은 실행 파일에 대해 현재 디렉터리를 검색하지 않으므로, 전체 경로를 명시해 주어야 오류를 피할 수 있다.[4]작업을 마치면
configure
는 config.log
에 보고서를 출력한다. ./configure --help
를 실행하면 명령 줄 매개변수를 보여주며, 다음과 같은 추가 기능을 켜고 끌 수 있다.:
./configure --libs="-lmpfr -lgmp"
./configure --prefix=/home/myname/apps
첫 번째 줄은
mpfr
과 gmp
라이브러리를 포함한다. 두 번째 줄은 make에 마지막 버전을 /home/myname/apps
에 설치할 것을 지시한다. 매개변수 안에 공백 문자가 있으면 인용 부호로 감싸 주어야 한다.소스 코드가 있는 디렉터리로 명령줄 셸을 탐색한 후, 일반적으로 다음 명령을 실행한다.[1]
:
./configure
make
make install
Autotools의 경우, configure 스크립트는 상태 및 오류를 ''config.log'' 파일에 기록하며,
./configure --help
명령은 명령줄 도움말 정보를 출력한다.종종
INSTALL
이라는 파일에 지침이 포함된 문서가 코드베이스와 함께 제공되는데, configure 스크립트가 실패할 경우 유용할 수 있다.3. 생성
소프트웨어 개발자들은 GNU의 Autotools를 이용함으로써 크로스 플랫폼 소프트웨어 개발을 단순화한다. 이 스크립트들은 환경 설정, 플랫폼 아키텍처, 필요한 빌드 및 런타임 의존성의 존재 및 위치에 대한 정보를 조회한다. 수집된 정보는 설치 단계 가운데 `configure.ac`에 저장한다.[5]
Autotools는 크로스 플랫폼 소프트웨어 개발의 몇 가지 어려움을 단순화한다.[2] 이 도구는 환경 설정, 플랫폼 아키텍처, 필요한 빌드 및 런타임 종속성의 존재 및 위치에 대해 호스트 시스템을 쿼리한다. 수집된 정보는 설치 단계에서 `configure`에서 읽을 수 있도록 `configure.ac`에 저장한다.
새로운 개발에서 라이브러리 종속성 검사는 pkg-config를 통해 m4 매크로인 PKG_CHECK_MODULES를 통해 수행할 수 있다. pkg-config가 인기를 얻기 전에는 종속된 라이브러리의 배포에 포함된 것으로 알려진 파일을 찾기 위해 별도의 m4 매크로가 생성되었다.
4. 역사
1984년, 래리 월이 개발한 rn이 최초로 configure 스크립트를 탑재한 프로그램이었다. 이 스크립트는 손으로 작성되었으며 실행 시 익살스러운 해설을 제공했다. 이 스크립트는 현재까지도 '''trn''' 프로그램의 빌드 시스템의 일부로 남아 있다.[3]
이후 configure 스크립트 생성을 자동화하는 다양한 도구들이 개발되었으며, 그중 가장 널리 사용되는 것은 Autoconf이다.
5. 의존성 검사
신규 개발에서 라이브러리 의존성 검사는 대개 m4 매크로 PKG_CHECK_MODULES를 통해 pkg-config를 사용한다. pkg-config가 인기를 끌기 전에는 별개의 m4 매크로를 만들어서 의존하는 라이브러리 배포판에 포함된 파일을 찾아야 했다.[2]
참조
[1]
웹사이트
Compiling Linux Software from Source Code
http://www.control-e[...]
Control-Escape's Linux Help Engine
2010-11-20
[2]
웹사이트
Autoconf - GNU Project - Free Software Foundation (FSF)
https://www.gnu.org/[...]
GNU Operating System
2010-11-20
[3]
웹사이트
Configure script of trn
https://github.com/a[...]
GitHub
2020-12-10
[4]
웹인용
Compiling Linux Software from Source Code
http://www.control-e[...]
Control-Escape's Linux Help Engine
2010-11-20
[5]
웹인용
Autoconf - GNU Project - Free Software Foundation (FSF)
http://www.gnu.org/s[...]
GNU Operating System
2010-11-20
[6]
웹인용
Introduction to GNU Build Tools
http://sunybow-progr[...]
2001-06-01
[7]
웹인용
The GNU configure and build system
http://www.airs.com/[...]
airs.com
2010-11-20
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com