Make

From HPCWIKI
Revision as of 14:10, 17 July 2026 by Clara (talk | contribs) (Phase 0.5: Create Make)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Make

Template:Status

Template:TOC

Overview

Make는 Linux 빌드 자동화 도구. Makefile로 의존성 관리, 컴파일, 링크, 테스트 자동화. C/C++ 프로젝트 표준.

Summary

  • * 무엇인가? 빌드 자동화 도구. Makefile로 의존성 관리
  • * 왜 필요한가? 복잡한 빌드 과정 자동화. 재현 가능한 빌드
  • * 언제 사용하는가? C/C++ 프로젝트 빌드, 스크립트 자동화

---

Purpose

이 문서가 존재하는 이유

  • Goal: Make의 개념, 사용법, 설정 가이드 제공
  • Scope: 기본 개념, 설치/설정, 사용 예제, 모범 사례
  • Non-goals: 고급 커스터마이징, 내부 소스 코드 분석

---

Key Concepts

Template:KeyConcepts

---

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

---

Related Pages