Waf
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
Waf는 토마스 네기가 개발한 빌드 자동화 도구이다. Autotools와 같은 기능을 제공하는 SCons 기반의 BKsys를 개선하기 위해 개발되었으며, KDE 4 개발 과정에서 KDE를 Autotools에서 새로운 빌드 시스템으로 전환하려는 시도의 일환으로 시작되었다. SCons의 문제점으로 인해 Waf는 개별 프로젝트로 유지되었으며, 다양한 운영체제를 위한 크로스 개발 도구로 사용된다. Waf는 파이썬으로 작성되었으며, 튜링 완전 프로그래밍 언어를 지원하고, C/C++, 포트란, OCaml, D, C#, 자바, 파이썬 등 다양한 언어와 프로젝트를 지원한다.
더 읽어볼만한 페이지
- 빌드 자동화 - GNU 빌드 시스템
GNU 빌드 시스템은 Autoconf, Automake, Libtool 등의 오토툴과 GNU make 등으로 구성되어 다양한 UNIX 시스템에서 소프트웨어 빌드 및 설치를 지원하지만, 복잡성과 이식성에 대한 비판도 존재한다. - 빌드 자동화 - MSBuild
MSBuild는 마이크로소프트에서 개발한 빌드 자동화 도구로서, 프로젝트 파일에 기술된 대상을 실행하여 빌드 과정을 자동화하며, Team Foundation 빌드와 연동하여 팀 빌드 환경을 구성하는 데 사용된다. - 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다. - 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
Waf - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
종류 | 빌드 자동화 시스템 |
개발자 | 토머스 네기(Thomas Nagy) |
최신 버전 | 2.0.25 |
최신 버전 출시일 | 2023년 1월 1일 |
운영 체제 | 윈도우, POSIX |
프로그래밍 언어 | 파이썬 |
장르 | 소프트웨어 개발 도구 |
라이선스 | 소스 코드: New BSD License 문서: CC-BY-NC-ND |
웹사이트 | Waf 공식 웹사이트 |
2. 역사
Waf는 토마스 네기(Thomas Nagy)가 SCons 기반의 빌드 도구 ''BKsys''를 개발하던 중 파생된 프로젝트이다. ''BKsys''는 KDE의 Autotools 대체를 목표로 했으나,[2] SCons의 한계로 인해 네기는 ''Waf''라는 이름으로 새로 개발을 시작했다. 이후 KDE는 CMake를 채택했고,[3] Waf는 독자적인 빌드 시스템으로 발전하여 여러 커뮤니티에서 사용되고 있다.[8][9]
2. 1. 개발 배경
토마스 네기(Thomas Nagy)는 SCons를 기반으로 구축된 빌드 자동화 도구인 ''BKsys''를 만들었다. BKsys는 Autotools와 유사한 상위 수준의 기능을 제공하도록 설계되었다. 이는 KDE를 Autotools에서 더 현대적인 빌드 시스템으로 전환하기 위한 노력의 일환이었으며, KDE 4 개발 주기의 초기 단계였다. BKsys/SCons는 KDE 커뮤니티에 의해 새로운 표준 빌드 시스템으로 선택되었다.[2]토마스 네기는 SCons의 근본적인 문제점, 특히 취약한 확장성 문제를 수정하는 것이 너무 복잡하고 시간이 오래 걸린다고 판단하여, ''Waf''라는 이름으로 완전한 재작성을 시작했다. BKsys가 더 이상 발전하기 어려운 막다른 골목으로 인식되면서, KDE는 대신 CMake로 전환하기로 결정했다.[3] 그러나 Waf는 개별 프로젝트로 계속 유지 관리되었으며, 이후 다른 커뮤니티에서 활발한 개발과 채택이 이루어졌다.[8][9]
2. 2. KDE 프로젝트와의 관계
토마스 네기(Thomas Nagy)는 SCons를 기반으로 구축된 빌드 자동화 도구인 ''BKsys''를 만들었다. BKsys는 Autotools와 유사한 상위 수준의 기능을 제공하도록 설계되었다. 이는 KDE 4 개발 주기의 초기 단계에서 KDE를 Autotools에서 더 현대적인 빌드 시스템으로 전환하기 위한 노력의 일환이었다. BKsys/SCons는 KDE 커뮤니티에 의해 새로운 표준 빌드 시스템으로 선택되었다.[2]그러나 토마스 네기가 SCons의 근본적인 문제점(특히 취약한 확장성)을 수정하는 것이 너무 복잡하고 어렵다고 판단하자, 그는 ''Waf''라는 이름으로 완전한 재작성을 시작했다. BKsys가 막다른 골목으로 인식되면서 KDE는 대신 CMake로 전환하기로 결정했다.[3] 하지만 Waf는 개별 프로젝트로 계속 유지 관리되었으며, 이후 다른 커뮤니티에서 많은 추가 개발과 채택이 이루어졌다.[8][9]
2. 3. 라이선스 논란
Waf의 소스 코드는 New BSD License 조건에 따라 배포된다.[4] 그러나 개발자인 Nagy는 Waf가 시스템 전체 빌드 시스템으로 설치되기보다는 개별 소프트웨어 프로젝트의 일부로 포함되기를 의도했다. 이러한 의도에 따라 Waf 릴리스의 일부로 제공되는 문서는 수정 및 상업적 재배포를 금지하는 CC-BY-NC-ND 라이선스로 배포되었다. 이 라이선스 변경은 데비안 프로젝트가 Waf를 시스템 전체 소프트웨어 패키지로 포함하는 것을 막기 위한 조치였다.[4] 데비안은 처음에는 문서를 제외하고 패키징했으나, Nagy의 직접적인 요청 이후 Waf를 저장소에서 제거하고 빌드 시스템으로 사용하는 것을 권장하지 않게 되었다.[5]데비안 개발자 이안 잭슨(Ian Jackson)은 GNU General Public License(GNU GPL) 조건으로 배포되는 소프트웨어의 빌드 시스템으로 Waf를 사용하는 것이 해당 라이선스를 위반할 수 있다는 의견을 제시했다. 이는 Waf의 언패킹 스크립트가 원본 소스 코드의 난독화된 복사본을 생성하며, 이것이 GPL에서 요구하는 "수정을 위한 선호 형태"가 아니기 때문이라고 지적했다.[6]
3. 특징
서로 다른 기종의 운영체제에 대한 크로스 디벨롭먼트 툴(Cross Development Tools)로서 빌드 자동화 시스템에 강점을 가지고있다.[10][11]
3. 1. 주요 기능
Waf의 특징은 다음과 같다.- 유닉스 및 비유닉스 시스템으로 이식 가능하다.
- 가볍다.
- 튜링 완전 프로그래밍 언어(SCons와 유사)를 제공한다.
- 표준 대상(구성, 빌드, 정리, distclean, 설치, 제거)을 지원한다.
- 병렬 빌드를 지원한다.
- 컬러 출력 및 진행률 표시줄을 표시한다.
- 스크립트는 파이썬 모듈 형태이다.
- XML 스크립트 프런트 엔드 및 전용 "IDE 출력" 모드를 지원하여 통합 개발 환경(IDE)과의 연동이 용이하다.
- 사용자 정의 가능한 명령줄 구문 분석을 갖춘 모듈식 구성 체계를 가진다.
- 백그라운드 재컴파일을 위한 데몬 모드를 지원한다.
- 스크립트 유지 관리를 용이하게 하기 위해 소스 파일을 지능적으로 찾는다(glob() 유사).
- 불필요한 재컴파일을 피하기 위한 글로벌 객체 캐시를 지원한다.
- 빌드 종료 시 프로그램에서 실행되는 단위 테스트를 지원한다.
Waf가 지원하는 기능은 다음과 같다.
- 의존성을 계산하기 위한 C/C++ 전처리 기능을 지원한다.
- 모듈 의존성 자동 감지 기능으로 포트란을 지원한다.
- OCaml 및 하이브리드 프로그램, GNOME 프로그램을 지원한다.
- D 프로그래밍 언어를 지원한다(gdc와 dmd 모두 지원).
- C#, 자바, 파이썬 프로젝트를 지원한다.
- DocBook, man 페이지, intltool/msgfmt 처리를 위한 다양한 도구를 제공한다.
Waf는 파이썬으로 작성되었다. GNU make와 같은 빌드 시스템처럼 시스템 소프트웨어의 필수 구성 요소로 소프트웨어 설치를 할 필요 없이, 프로젝트의 소스 트리에 Waf 소스를 압축 해제하기 위해 실행하도록 설계된 스크립트로 배포되며, 임베디드 아카이브 파일을 포함한다.
3. 2. 지원 기능
4. CDT (크로스 개발 도구)
서로 다른 기종의 운영체제에 대한 크로스 디벨롭먼트 툴(Cross Development Tools)로서 빌드 자동화 시스템에 강점을 가지고 있다.[10][11]
참조
[1]
웹사이트
Waf
http://www.ohloh.net[...]
Ohloh
2010-12-19
[2]
웹사이트
KDE to Migrate to bksys/SCons Build System
http://dot.kde.org/2[...]
KDE Dot News
2005-09-11
[3]
웹사이트
The Road to KDE 4: CMake, a New Build System for KDE
http://dot.kde.org/2[...]
KDE Dot News
2007-02-22
[4]
간행물
Waf users
https://groups.googl[...]
2009-10-02
[5]
간행물
Debian devel
http://lists.debian.[...]
Debian
2010-02-27
[6]
간행물
Debian devel
http://lists.debian.[...]
Debian
2012-02-07
[7]
웹인용
Waf
http://www.ohloh.net[...]
Ohloh
2010-12-19
[8]
웹인용
KDE to Migrate to bksys/SCons Build System
http://dot.kde.org/2[...]
KDE Dot News
2012-05-09
[9]
웹인용
The Road to KDE 4: CMake, a New Build System for KDE
http://dot.kde.org/2[...]
KDE Dot News
2012-05-09
[10]
문서
Eclipse CDT for C/C++ , Cross GNU , Cross ARM GNU
[11]
문서
ARM - The GNU Embedded Toolchain for Arm
https://developer.ar[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com