Makefile

Download
makefile 87 lines 2.2 KB
 1# ์ „์ฒด ์˜ˆ์ œ ๋นŒ๋“œ Makefile
 2
 3CC = gcc
 4CFLAGS = -Wall -Wextra -std=c11
 5THREAD_FLAGS = -pthread
 6
 7# C ํ”„๋กœ๊ทธ๋žจ ๋ชฉ๋ก
 8C_PROGRAMS = \
 9	02_calculator/calculator \
10	03_number_guess/number_guess \
11	05_dynamic_array/dynamic_array \
12	06_linked_list/linked_list \
13	14_bit_operations/bit_manipulation
14
15# ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ
16THREAD_PROGRAMS = \
17	12_multithread/thread_basic
18
19.PHONY: all clean c-programs thread-programs
20
21all: c-programs thread-programs
22
23c-programs:
24	@echo "=== C ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ ==="
25	@for prog in $(C_PROGRAMS); do \
26		echo "Compiling $$prog..."; \
27		$(CC) $(CFLAGS) $${prog}.c -o $$prog || exit 1; \
28	done
29	@echo "์™„๋ฃŒ!"
30
31thread-programs:
32	@echo ""
33	@echo "=== ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ ==="
34	@for prog in $(THREAD_PROGRAMS); do \
35		echo "Compiling $$prog..."; \
36		$(CC) $(CFLAGS) $(THREAD_FLAGS) $${prog}.c -o $$prog || exit 1; \
37	done
38	@echo "์™„๋ฃŒ!"
39
40clean:
41	@echo "=== ์ •๋ฆฌ ์ค‘ ==="
42	@for prog in $(C_PROGRAMS) $(THREAD_PROGRAMS); do \
43		rm -f $$prog; \
44	done
45	@echo "์™„๋ฃŒ!"
46
47# ๊ฐœ๋ณ„ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰
48run-calculator:
49	@echo "=== ๊ณ„์‚ฐ๊ธฐ ์‹คํ–‰ ==="
50	@./02_calculator/calculator
51
52run-guess:
53	@echo "=== ์ˆซ์ž ๋งž์ถ”๊ธฐ ์‹คํ–‰ ==="
54	@./03_number_guess/number_guess
55
56run-array:
57	@echo "=== ๋™์  ๋ฐฐ์—ด ์‹คํ–‰ ==="
58	@./05_dynamic_array/dynamic_array
59
60run-list:
61	@echo "=== ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์‹คํ–‰ ==="
62	@./06_linked_list/linked_list
63
64run-bit:
65	@echo "=== ๋น„ํŠธ ์—ฐ์‚ฐ ์‹คํ–‰ ==="
66	@./14_bit_operations/bit_manipulation
67
68run-thread:
69	@echo "=== ์Šค๋ ˆ๋“œ ์‹คํ–‰ ==="
70	@./12_multithread/thread_basic
71
72# ๋„์›€๋ง
73help:
74	@echo "์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น:"
75	@echo "  make              - ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ"
76	@echo "  make c-programs   - C ํ”„๋กœ๊ทธ๋žจ๋งŒ ์ปดํŒŒ์ผ"
77	@echo "  make thread-programs - ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋žจ ์ปดํŒŒ์ผ"
78	@echo "  make clean        - ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ ์‚ญ์ œ"
79	@echo ""
80	@echo "๊ฐœ๋ณ„ ์‹คํ–‰:"
81	@echo "  make run-calculator  - ๊ณ„์‚ฐ๊ธฐ ์‹คํ–‰"
82	@echo "  make run-guess       - ์ˆซ์ž ๋งž์ถ”๊ธฐ ์‹คํ–‰"
83	@echo "  make run-array       - ๋™์  ๋ฐฐ์—ด ์‹คํ–‰"
84	@echo "  make run-list        - ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์‹คํ–‰"
85	@echo "  make run-bit         - ๋น„ํŠธ ์—ฐ์‚ฐ ์‹คํ–‰"
86	@echo "  make run-thread      - ์Šค๋ ˆ๋“œ ์‹คํ–‰"