SCons

SCons는 오픈 소스 소프트웨어 빌드 도구이다. SCons는 autoconf/automake의 기능과 ccache와 같은 컴파일러 캐시를 통합한, 고전적인 Make 유틸리티의 대체품이다. 이전의 도구들과 비교하여, SCons는 더 쓰기 쉽고, 더 신뢰할 수 있고, 더 빠른 것을 목표로 한다.

주요 기능 
 설정 파일이 파이썬 스크립트이다: 사용자가 작성한 빌드 스크립트에 완전한 범용 프로그래밍 언어의 기능을 사용할 수 있다.
 C, C++과 포트란에 대해, 자동 종속성 분석(Automatic dependency analysis)이 내장되어 있다.
 make와 달리, 종속성을 획득하기 위한 "make depend"나 "make clean"과 같은 별도의 명령어는 필요하지 않다. 종속성 분석(Dependency analysis)은 다른 언어나 파일 종류를 위한 사용자 정의 종속성 스캐너를 통해 쉽게 확장할 수 있다.
 autotools와 달리, gcc의 내장 종속성 분석을 사용하지 않는다. 그 대신, "#include"에 대한 regexp 스캔을 모든 C/C++ 소스 파일에 행한다. gcc 기반 빌드에서는, 종속성 생성이 더 느려질 수 있고(추가적인 스캔이 언제나 필요하므로). 신뢰성이 더 낮아질 수 있다(-DSOMETHING와 같은 전처리기 플래그 같은 것이 무시된다는 의미에서). 그러나 이것은 비-gcc 컴파일러에 호환성이 더 좋은 방식이다.
 C, C++, D, 자바, Fortran, Objective-C, Yacc, Lex, Qt과 SWIG와 TeX 및 LaTeX 문서 빌드를 기본 지원한다. 다른 언어나 파일 종류는 사용자 정의 빌더(Builder)를 통해 지원할 수 있다.
 소스 코드 및 빌드 전 대상(pre-built targets)에 대한 중심 저장소(central repositories)에서의 빌드를 지원한다.
 SCCS, RCS(Revision Control System), CVS(Concurrent Versions System), 서브버전, 비트키퍼와 퍼포스(Perforce)에서 소스를 가져오는 것을 기본 지원한다.
 .dsp, .dsw, .sln와 .vcproj 파일의 생성을 포함한 마이크로소프트 비주얼 스튜디오 .NET와 이전의 비주얼 스튜디오 버전을 기본 지원한다.
 파일 내용 변화 감지에 MD5 시그너처를 사용한다: 옵션 설정으로, 전통적인 타임스탬프(timestamps) 방식도 지원한다.
 디렉터리 체계와 관계없이 지정한 작업들(jobs)의 수를 유지하는 병렬 빌드를 지원한다.
 #include 파일과 라이브러리, 함수와 typedef들을 탐색하는 통합된 Autoconf와 유사한 기능을 지원한다.
 모든 종속성을 전역적으로 조망한다: 복수의 빌드 패스나 타겟 순서 재지정이 필요하지 않다.
 다중 빌드를 가속하기 위한 캐시 파일을 공유하는 능력이 있다: ccache와 유사하지만 C/C++ 컴파일 뿐만 아니라, 다른 모든 파일 종류를 지원한다.
 크로스 플랫폼 빌드(cross-platform builds)를 위해 처음부터 차례로 끝까지 다시 설계했다: 리눅스, 다른 POSIX 호환 운영 체제(AIX, *BSD systems, HP-UX, IRIX와 솔라리스, Mac OS X), 윈도우와 OS/2를 지원한다.

가장 단순한 SConstruct 파일 
 Program('main.c')
사용자가 'scons' 명령을 실행하면, scons는 'main' 실행 파일 (유닉스 호환 OS에서) 또는 'main.exe' 실행 파일 (윈도우에서)을 빌드한다.

역사 
SCons는 2000년 8월의 SC Build competition에서의 최우수상을 받은 'ScCons'라는 빌드 도구 설계에서 시작했다. 이 설계는 Cons 라는 빌드 도구에 기반한 것이었다.

주요 응용 프로젝트 목록 
 Aqsis (3D 그래픽스)
 Ardour (audio processor)
 배틀필드 1942
 블렌더 (3D 그래픽스)
 Delta3D (게임 엔진)
 id Software
 Nullsoft Scriptable Install System
 SuperCollider (Audio programming language and environment)
 VMware
 Csound5

각주

외부 링크 
 SCons 홈페이지
 Make Alternatives
 Stop the autoconf insanity! Why we need a new build system.

컴파일 도구
빌드 자동화
파이썬 소프트웨어
파이썬으로 작성된 자유 소프트웨어
MIT 라이선스 소프트웨어