Makefile

Download
makefile 61 lines 1.6 KB
 1# Makefile for Mini Shell Examples
 2
 3CC = gcc
 4CFLAGS = -Wall -Wextra -std=c11
 5TARGET_DIR = .
 6
 7# 실행 파일
 8TARGETS = minishell_v1 builtins redirect pipe minishell
 9
10# 기본 타겟
11all: $(TARGETS)
12
13# 1. 기본 쉘
14minishell_v1: minishell_v1.c
15	$(CC) $(CFLAGS) -o $(TARGET_DIR)/minishell_v1 minishell_v1.c
16
17# 2. 내장 명령어 테스트
18builtins: builtins.c
19	$(CC) $(CFLAGS) -DTEST_BUILTINS -o $(TARGET_DIR)/builtins builtins.c
20
21# 3. 리다이렉션 테스트
22redirect: redirect.c
23	$(CC) $(CFLAGS) -DTEST_REDIRECT -o $(TARGET_DIR)/redirect redirect.c
24
25# 4. 파이프 테스트
26pipe: pipe.c
27	$(CC) $(CFLAGS) -DTEST_PIPE -o $(TARGET_DIR)/pipe pipe.c
28
29# 5. 완성된 미니 쉘
30minishell: minishell.c
31	$(CC) $(CFLAGS) -o $(TARGET_DIR)/minishell minishell.c
32
33# 테스트 (간단한 실행 확인)
34test: all
35	@echo "=== 컴파일 완료 ==="
36	@echo "실행 파일:"
37	@ls -lh minishell_v1 builtins redirect pipe minishell 2>/dev/null || true
38
39# 정리
40clean:
41	rm -f $(TARGETS)
42	rm -f *.o
43	@echo "정리 완료"
44
45# 도움말
46help:
47	@echo "Mini Shell Makefile"
48	@echo ""
49	@echo "사용법:"
50	@echo "  make all          - 모든 실행 파일 컴파일"
51	@echo "  make minishell_v1 - 기본 쉘만 컴파일"
52	@echo "  make builtins     - 내장 명령어 테스트만 컴파일"
53	@echo "  make redirect     - 리다이렉션 테스트만 컴파일"
54	@echo "  make pipe         - 파이프 테스트만 컴파일"
55	@echo "  make minishell    - 완성된 미니 쉘만 컴파일"
56	@echo "  make test         - 컴파일 후 파일 확인"
57	@echo "  make clean        - 실행 파일 제거"
58	@echo "  make help         - 이 도움말 출력"
59
60.PHONY: all test clean help