Make
Jump to navigation
Jump to search
Make
Overview
Make는 Linux 빌드 자동화 도구. Makefile로 의존성 관리, 컴파일, 링크, 테스트 자동화. C/C++ 프로젝트 표준.
Summary
- * 무엇인가? 빌드 자동화 도구. Makefile로 의존성 관리
- * 왜 필요한가? 복잡한 빌드 과정 자동화. 재현 가능한 빌드
- * 언제 사용하는가? C/C++ 프로젝트 빌드, 스크립트 자동화
---
Purpose
이 문서가 존재하는 이유
- Goal: Make의 개념, 사용법, 설정 가이드 제공
- Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
- Non-goals: 고급 커스터마이징, 내부 소스 코드 분석
---
Key Concepts
---
Architecture
Make는 Makefile을 읽어서 타겟과 의존성을 분석. 의존성이 변경되면 해당 명령어 실행. parallel 빌드(-j)로 속도 향상.
---
Workflow
1. 1. Makefile 작성
2. 2. make로 빌드
3. 3. make clean으로 정리
4. 4. make install로 설치
5. 5. parallel 빌드(-j8)
---
Configuration
# Makefile 예시
CC = gcc
CFLAGS = -Wall -O2
LDFLAGS = -lcudart -lcublas
SRCS = main.c kernel.c
targets = main
all: $(targets)
main: main.o kernel.o
$(CC) $(LDFLAGS) -o $@ $^
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -f *.o $(targets)
install: main
cp main /usr/local/bin/
.PHONY: all clean install
---
Best Practices
- -j로 parallel 빌드
- clean 타겟 필수
- .PHONY로 가짜 타겟 명시
- CMake로 더 큰 프로젝트 관리
- Makefile 버전 관리 (Git)
---
Limitations
- Makefile 작성 복잡도
- 대규모 프로젝트는 CMake 권장
- Windows에서 MinGW 필요
---
References
---