Automake
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Automake는 프로그래머가 makefile을 수동으로 작성하는 대신, 더 높은 수준의 언어로 makefile을 작성할 수 있도록 돕는 도구이다. Automake는 빌드할 프로그램의 이름, 소스 파일 목록, 컴파일러 및 링커에 전달할 명령줄 옵션 목록을 제공하는 것으로 충분하다. 또한 소스 파일이 수정될 때 다시 컴파일해야 하는 파일을 알 수 있도록 종속성 정보를 자동으로 생성한다. Automake는 Perl로 작성되었으며 GNU Autoconf와 함께 사용되며, aclocal과 automake 명령어를 포함한다. Automake는 하위 호환성이 완벽하게 보장되지 않는다.
더 읽어볼만한 페이지
- 펄로 작성된 자유 소프트웨어 - 무버블 타입
무버블 타입은 식스 어파트에서 개발한 웹 블로그 게시 시스템으로, 다양한 기능과 정적/동적 페이지 생성 방식을 제공하며, 펄로 작성되어 데이터베이스를 사용하고 플러그인으로 기능 확장이 용이하다. - 펄로 작성된 자유 소프트웨어 - 깃 (소프트웨어)
깃은 리누스 토르발스가 개발한 분산 버전 관리 시스템으로, 빠른 분기 및 병합, 분산 개발 환경 지원, 대규모 프로젝트 처리 효율성 등의 특징을 가지며, 깃허브, 깃랩 등에서 서비스되며 소프트웨어 개발 분야에서 널리 사용된다. - GPL 라이선스 소프트웨어 - F-Droid
F-Droid는 2010년 키어런 걸트니엑스가 설립한 안드로이드용 자유 소프트웨어 앱 저장소로, 구글 플레이 스토어에 없는 자유/오픈 소스 소프트웨어 앱을 제공하며 감시, 검열 저항, 개인 정보 보호에 중점을 둔 클라이언트 앱, 저장소 관리 도구, 웹사이트 생성기 등의 하위 프로젝트로 구성된다. - GPL 라이선스 소프트웨어 - MySQL
MySQL은 1994년 스웨덴에서 개발을 시작하여 현재 오라클에 인수된 관계형 데이터베이스 관리 시스템으로, 오픈 소스 및 상업용 에디션을 제공하며 ANSI SQL 99 표준을 지원하고 다양한 스토리지 엔진과 프로그래밍 언어 API를 지원한다. - GNU 프로젝트 소프트웨어 - GNU 코어 유틸리티
GNU 코어 유틸리티는 유닉스 계열 운영체제에서 파일, 셸, 텍스트 조작을 위한 기본적인 명령어 모음으로, GNU 파일 유틸리티에서 시작하여 3개의 패키지가 통합되어 발전했으며 셸 스크립트 및 시스템 관리에 필수적인 도구를 제공한다. - GNU 프로젝트 소프트웨어 - GNU 허드
GNU 허드는 유닉스 운영 체제를 대체하는 것을 목표로 개발된 GNU 프로젝트의 커널로, 마이크로커널 기반의 서버-클라이언트 아키텍처를 사용하며, 파일 시스템 기능을 확장하는 트랜슬레이터 개념을 제공한다.
| Automake - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 기본 정보 | |
| 개발사 | GNU 프로젝트 |
| 최초 출시일 | 1996년 5월 28일 |
| 최신 버전 | 1.15 |
| 최신 버전 출시일 | 2015년 1월 5일 |
| 운영체제 | 크로스 플랫폼 |
| 종류 | 프로그래밍 도구 |
| 라이선스 | GNU 일반 공중 사용 허가서 |
| 웹사이트 | Automake 공식 웹사이트 |
2. 프로세스
오토메이크는 프로그래머가 전체 makefile을 직접 작성하는 대신, 더 높은 수준의 언어로 makefile을 작성할 수 있도록 돕는다. 간단한 경우, 다음 정보를 제공하면 된다.
- 빌드할 프로그램 이름을 선언하는 줄
- 소스 파일 목록
- 컴파일러에 전달할 명령줄 옵션 (예: 헤더 파일을 찾을 디렉터리)
- 링커에 전달할 명령줄 옵션 (프로그램에 필요한 라이브러리와 해당 라이브러리를 찾을 디렉터리)
2. 1. 종속성 자동 생성
오토메이크는 자동으로 종속성 정보를 생성하여, 소스 파일이 수정되면 다음 make 명령 호출 시 어떤 소스 파일을 다시 컴파일해야 하는지 알 수 있도록 한다. 컴파일러가 허용하는 경우 오토메이크는 종속성 시스템을 동적으로 만들려고 시도한다. 즉, 소스 파일이 컴파일될 때마다 컴파일러에게 파일의 종속성 목록을 다시 생성하도록 요청하여 해당 파일의 종속성을 업데이트한다. 종속성 추적은 컴파일 프로세스의 부작용인 셈이다.이는 프로그래머가 프로젝트 작업을 시작할 때 한 번만 종속성을 감지하는 일부 정적 종속성 시스템의 문제를 피하기 위한 시도이다.
3. 디자인
오토메이크는 프로그래머가 전체 makefile을 직접 작성하는 대신, 더 높은 수준의 언어로 makefile을 작성할 수 있도록 돕는다. 간단한 경우에는 다음과 같은 정보만 제공하면 된다.
- 빌드할 프로그램 이름
- 소스 파일 목록
- 컴파일러에 전달할 명령줄 옵션 (예: 헤더 파일을 찾을 디렉토리)
- 링커에 전달할 명령줄 옵션 (프로그램에 필요한 라이브러리와 해당 라이브러리를 찾을 디렉토리)
오토메이크는 소스 파일이 수정되었을 때, 다음 make 명령을 호출하면 어떤 소스 파일을 다시 컴파일해야 하는지 알 수 있도록 자동으로 종속성 정보를 생성한다. 컴파일러가 허용하는 경우, 오토메이크는 종속성 시스템을 동적으로 만들려고 시도한다. 즉, 소스 파일이 컴파일될 때마다 컴파일러에게 파일의 종속성 목록을 다시 생성하도록 요청하여 해당 파일의 종속성을 업데이트한다. 이는 종속성 추적이 컴파일 과정의 부작용으로 나타나는 것이다.
이러한 방식은 프로그래머가 프로젝트를 시작할 때 한 번만 종속성을 파악하는 일부 정적 종속성 시스템의 문제를 해결하고자 한다.
3. 1. 주요 명령어
Automake는 다음 명령어들을 포함한다.- `aclocal`
- `automake`
그러나 `aclocal`은 Autoconf 사용자에게 유용한 범용 프로그램이다. 예를 들어, GCC은 makefile이 수작업으로 작성되었음에도 `aclocal`을 사용한다.[1]
3. 2. 하위 호환성 문제
Automake는 Perl로 작성되었으며, GNU Autoconf와 함께 사용해야 한다.[1] Autoconf와 마찬가지로 Automake는 완전한 하위 호환성을 보장하지 않는다. 예를 들어 Automake 1.13으로 생성된 프로젝트는 Automake 1.14에서 반드시 작동한다고 보장할 수 없다.[6]참조
[1]
웹사이트
GNU Automake
https://www.gnu.org/[...]
Free Software Foundation
2021-10-01
[2]
웹사이트
Compiling the GTK+ libraries
https://developer-ol[...]
2024-04-26
[3]
웹사이트
XCircuit Compile and Install
http://www.opencircu[...]
2024-04-26
[4]
웹사이트
Automake Manual -- Automatic Dependency Tracking
https://www.gnu.org/[...]
2024-04-26
[5]
웹사이트
Automake History
https://www.gnu.org/[...]
2024-04-26
[6]
웹사이트
Re: "make distclean" broken?
https://curl.se/mail[...]
2013-07-16
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com