실전 Makefile 예제 — C/C++ 프로젝트용 기본 골격
기본 C/C++부터 라이브러리, 크로스 컴파일, 테스트 통합까지 — 실제 프로젝트에 그대로 쓰는 Makefile 패턴.
19개의 포스트
기본 C/C++부터 라이브러리, 크로스 컴파일, 테스트 통합까지 — 실제 프로젝트에 그대로 쓰는 Makefile 패턴.
파싱 시점 조건 분기, Makefile 분할, 그리고 -MMD -MP로 헤더 의존성을 자동 추적하는 표준 패턴.
내장 함수로 텍스트·파일·조건을 다루기 — wildcard / patsubst / filter / shell / foreach / call / eval.
% 한 글자로 100개의 규칙을 줄이는 패턴 규칙, Make 내장 암시적 규칙, 그리고 둘의 충돌·우선순위.
Make 변수의 두 가지 확장 방식, 자동 변수, 우선순위 — 같은 코드가 미묘하게 다르게 도는 9할의 원인.
Makefile 규칙의 구성 요소와 동작 방식 — 다중 타겟, order-only, 레시피 접두사, 이중 콜론까지.
GNU Make의 역할, 설치 방법, 첫 Makefile 작성과 실행.
Modern CMake의 고급 도구 모음 — 자주 안 보이지만 실무에서 결정적인 기능들.
타겟 중심 접근법, 피해야 할 안티패턴, 대규모 프로젝트 구성 전략.
install 명령으로 빌드 결과물 배포, CPack으로 플랫폼별 패키지 생성.
CMake 테스트 프레임워크 CTest와 Google Test, Catch2 연동 방법.
외부 라이브러리 탐색, FetchContent, 그리고 의존성 관리.
사용자 설정 가능한 빌드 옵션과 CMake 캐시 시스템.
Modern CMake의 핵심: 타겟 중심 접근법과 라이브러리 생성.
CMake 스크립트의 기본 문법: 변수, 리스트, 조건문, 반복문, 함수.
왜 메타 빌드 시스템이 필요한가, CMake가 그 자리에서 무엇을 하는가, 그리고 5줄 짜리 첫 프로젝트.
CMake 기반 ESP-IDF 빌드. 컴포넌트(component) 모델로 라이브러리 모듈화.
U-Boot의 빌드 시스템 — Kconfig 옵션, Makefile 구조, defconfig 패턴, out-of-tree 빌드.
Embedded 빌드 시스템 — toolchain file·target_link_options.