make generator가 되게 많네요?

oddman621의 이미지

며칠 전까지만 하더라도 cmake밖에 몰랐으나

오늘 제 시스템에 gmake라는게 있다는 것도 첨 알았고

어떤 튜토리얼을 따라하는데 여긴 premake라는 걸 씁니다

셋의 차이가 특별히 있는건가요? 왜 이렇게 많죠?

------------------------------------------------------------------------------------------------

이제보니 제가 지금까지 써온게 gmake였군요..

36311의 이미지

(1) cc를 대체하기 위해 gcc를 만든 것인데, cc 바로가기(?)를 gcc에 연결시켜놓는 것처럼
gmake도 make를 대체하기 위해 만든 것인데, 지금은 오히려 gmake가 make의 대명사가 되어버렸죠.

(2) make 자체가 워낙 오래전에 만들어진 것이다보니 새로운 기능에 대한 요구가 있었습니다.
특히 OS를 개발하는 회사들, Sun, HP, Microsoft(!) 등은 자신들만의 make를 만들었습니다. (자신들만의 cc를 가지고 있기도 합니다.)

대체적으로 이런 제품들은 기존 make와 어느정도 하위호환성(?)을 유지하고 있는 것으로 알고 있습니다.

(3) premake라는 제품은 써본적이 없습니다만,
이것은 make가 아니고 아마 이런 여러 종류의 makefile을 생성해주는 프로그램으로 추정됩니다.

* 포럼 주제와 무관한 신변잡기를 반복해서 올리지 맙시다.
* 질문 게시판 만이라도 익명 글쓰기를 막아야 한다고 생각합니다.

익명_사용자의 이미지

참고로 ninja도 살펴보세요.

CMake는 플랫폼에 맞는 빌드시스템을 생성하기위한 툴이고
다양한 backend를 지원합니다. 가령, Makefile대신 Visual Studio Project file도 생성할수 있죠.

ninja는 CMake같은 빌드시스템을 생성하는 툴이 아니고, Makefile을 대체하기 위한
새로운 빌드시스템입니다. 크롬, 안드로이드, llvm에서 쓰이고 있고
CMake도 ninja를 지원합니다. (Makefile대신 ninja 생성가능)

https://ninja-build.org

Anti-Lock의 이미지

ninja를 잠깐 살펴보았습니다.
제 삶에서 make파일을 걷어내고 ninja로 갈아타기 위해서요.
그런데 ninja에 그런 말이 있더군요.
'사람이 손으로 쓰기위해 만들어진게 아니라 오로지 빠른속도만을 추구한다'
위 문장이 저의 오해에서 비롯된 것일지라도, ninja 제너레이터를 사용하기를 권장하는것 같습니다.
알려진 제너레이터로는 cmake가 있습니다.
ninja. 빠르긴 빠릅니다!!