와프
Waf![]() | |
| 개발자 | 토머스 나기 |
|---|---|
| 안정적 해제 | 2.0.22 / 2021년 1월 31일; 전 |
| 리포지토리 | |
| 기록 위치 | 파이톤[1] |
| 운영 체제 | MS 윈도, POSIX |
| 유형 | 소프트웨어 개발 도구 |
| 면허증 | 새 BSD 라이센스(소스 코드), CC-BY-NC-ND(문서) |
| 웹사이트 | waf |
와프는 컴퓨터 소프트웨어의 자동 컴파일 및 설치를 지원하기 위해 고안된 빌드 자동화 도구다.그것은 파이톤으로 쓰여지고 토마스 나기(Thomas Nagy)에 의해 유지된다.
Waf의 소스 코드는 오픈 소스 소프트웨어로, 비록 동반된 문서가 CC-BY-NC-ND 라이센스에 따라 제공되지만, 이는 수정과 상업적 재배포를 모두 금지하는 것으로, Debian 프로젝트와 같은 벤더가 Waf 문서를 배포에 포함시키는 것을 방지한다.
역사
토마스 나기(Thomas Nagy)는 SCons의 꼭대기에 앉을 수 있도록 설계된 BKsys라는 빌드 자동화 도구를 만들어 오토툴스와 비슷한 수준의 기능을 제공했다.이는 KDE 4 개발 주기의 초기 단계에서 KDE를 Autotools에서 보다 현대적인 빌드 시스템으로 전환하기 위한 노력의 일환이었다.BKSY/SCONs는 KDE 커뮤니티에 의해 그들의 새로운 표준 빌드 시스템으로 선택되었다.[2]토마스 나기(Thomas Nagy)가 SCons의 근본적인 문제(가장 두드러지게 확장성이 떨어지는 문제)를 고치기에는 너무 복잡하고 시간이 많이 걸린다고 판단하자, 그는 Waf라고 이름 붙인 완전한 재작성을 시작했다.BKsys가 막다른 골목으로 인식되면서 KDE는 대신 CMake로 전환하기로 결정했지만,[3] Waf는 계속 개별 프로젝트로 유지되었고 이후 다른 지역사회에서 다작적인 개발과 채택을 보아왔다.[citation needed]
특징들
Waf 기능:
- Unix 및 비 Unix 시스템으로 이동 가능
- 중량 부족
- 튜링 완료 프로그래밍 언어 제공(SCON과 유사)
- 표준 대상 지원: 구성, 빌드, 정리, 디스커싱, 설치 및 제거
- 병렬 빌드
- 컬러 출력 및 진행 막대 표시
- 스크립트는 Python 모듈임
- 통합 개발 환경과의 상호 작용을 용이하게 하는 XML 스크립트 프런트 엔드 및 파싱하기 쉬운 전용 "IDE 출력" 모드
- 커스터마이즈 가능한 명령줄 구문을 사용한 모듈식 구성 방식
- 백그라운드 재컴파일용 데몬 모드
- 스크립트 유지 관리를 용이하게 하기 위해 지능적으로(glob() 유사) 소스 파일 찾기
- 불필요한 재컴파일 방지를 위한 글로벌 객체 캐시 지원
- 빌드 끝의 프로그램에서 실행되는 장치 테스트 지원
Waf 지원:
- 컴퓨팅 종속성을 위한 C/C++ 전처리기
- 모듈 종속성의 자동 탐지를 통해 Fortran 지원
- OCaml 및 하이브리드 프로그램 및 GNOME 프로그램 지원
- D 프로그래밍 언어 지원(gdc 및 dmd 모두 지원)
- C#, Java, Python 프로젝트 지원
- DocBook, man 페이지, intltool/msgfmt 처리를 위한 다양한 도구 제공
와프는 파이톤으로 쓰여 있다.GNU make와 같은 빌드 시스템과 같이 시스템 소프트웨어의 필수 구성 요소로 설치되도록 의도된 것이 아니라, 프로젝트 자체의 소스 트리 내에서 Waf 소스를 분리하기 위해 실행되도록 의도된 내장 아카이브 파일을 포함하는 스크립트로 배포된다.
면허증
Waf의 소스 코드는 New BSD 라이선스의 조건에 따라 공개된다.다만 Waf를 시스템 전체 빌드 시스템으로 설치하기보다는 개별 소프트웨어 프로젝트의 일부로 포함시키자는 게 나기의 의도다.그러한 목적을 위해, Waf 릴리스의 일부로 선적되는 문서는 CC-BY-NC-ND 라이센스에 의거하여 수정과 상업적 재배포를 모두 금지한다. 이러한 변경은 Debian 프로젝트가 Waf를 시스템 전체 소프트웨어 패키지로 포함시키는 것을 방해하기 위해 이루어졌다.[4]데비안이 처음에는 문서 포함을 단순히 자제했지만, 나기로부터 직접 요청으로 데비안이 와프를 제거하고 빌드 시스템으로 사용하는 것을 단념하게 만들었다.[5]
Debian 개발자 Ian Jackson은 GNU GPL(General Public License)의 조건에 따라 소프트웨어 빌드 시스템에 배포된 Waf를 사용하는 것은 해당 라이센스 조건에 위배된다고 말했다. 이는 언팩팅 스크립트가 필요에 따라 "수정 우선 형식"이 아닌 원본 코드의 난독화된 복사본을 생성하기 때문이다.d 빌드 시스템에 대한 GPL의 표현에 의해.[6]
참고 항목
참조
- ^ "Waf". Analysis Summary. Ohloh. Retrieved 2010-12-19.
- ^ Riddell, Jonathan. "KDE to Migrate to bksys/SCons Build System". KDE Dot News. Retrieved 9 May 2012.
- ^ Unrau, Troy. "The Road to KDE 4: CMake, a New Build System for KDE". KDE Dot News. Retrieved 9 May 2012.
- ^ Nagy, Thomas (2 Oct 2009), "Configuration environment in custom targets", Waf users (mailing list), Google.
- ^ Falavigna, Luca (27 Feb 2010), "Intent to remove waf from Debian", Debian devel (mailing list), Debian.
- ^ Jackson, Ian (7 Feb 2012), "Doesn't contain source for waf binary code", Debian devel (mailing list), Debian.

