Makefile

Download
makefile 175 lines 3.8 KB
  1# Algorithm Examples - C++ Makefile
  2# ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์ œ C++ ๋ฒ„์ „ ๋นŒ๋“œ์šฉ
  3
  4CXX = g++
  5CXXFLAGS = -Wall -Wextra -std=c++17 -O2
  6LDFLAGS =
  7
  8# ๋ชจ๋“  ์†Œ์Šค ํŒŒ์ผ
  9SOURCES = $(wildcard *.cpp)
 10TARGETS = $(SOURCES:.cpp=)
 11
 12# ๊ธฐ๋ณธ ํƒ€๊ฒŸ
 13.PHONY: all clean help test run-all
 14
 15all: $(TARGETS)
 16
 17# ๊ฐœ๋ณ„ ๋นŒ๋“œ ๊ทœ์น™
 18%: %.cpp
 19	$(CXX) $(CXXFLAGS) $< -o $@ $(LDFLAGS)
 20
 21# ์ •๋ฆฌ
 22clean:
 23	rm -f $(TARGETS)
 24	rm -f *.o
 25
 26# ๋„์›€๋ง
 27help:
 28	@echo "Algorithm Examples - C++ Makefile"
 29	@echo ""
 30	@echo "์‚ฌ์šฉ๋ฒ•:"
 31	@echo "  make          - ๋ชจ๋“  ์˜ˆ์ œ ์ปดํŒŒ์ผ"
 32	@echo "  make clean    - ์‹คํ–‰ ํŒŒ์ผ ์‚ญ์ œ"
 33	@echo "  make test     - ๋ชจ๋“  ์˜ˆ์ œ ์‹คํ–‰ ๋ฐ ํ…Œ์ŠคํŠธ"
 34	@echo "  make run-XX   - ํŠน์ • ์˜ˆ์ œ ์‹คํ–‰ (์˜ˆ: make run-01)"
 35	@echo ""
 36	@echo "์˜ˆ์ œ ๋ชฉ๋ก:"
 37	@echo "  01_complexity      - ์‹œ๊ฐ„ ๋ณต์žก๋„"
 38	@echo "  02_array_string    - ๋ฐฐ์—ด๊ณผ ๋ฌธ์ž์—ด"
 39	@echo "  03_stack_queue     - ์Šคํƒ๊ณผ ํ"
 40	@echo "  04_hash_table      - ํ•ด์‹œ ํ…Œ์ด๋ธ”"
 41	@echo "  05_sorting         - ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜"
 42	@echo "  06_searching       - ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜"
 43	@echo "  07_divide_conquer  - ๋ถ„ํ•  ์ •๋ณต"
 44	@echo "  08_backtracking    - ๋ฐฑํŠธ๋ž˜ํ‚น"
 45	@echo "  09_tree_bst        - ํŠธ๋ฆฌ์™€ BST"
 46	@echo "  10_heap            - ํž™"
 47	@echo "  11_trie            - ํŠธ๋ผ์ด"
 48	@echo "  12_graph_basic     - ๊ทธ๋ž˜ํ”„ ๊ธฐ์ดˆ"
 49	@echo "  13_topological_sort- ์œ„์ƒ ์ •๋ ฌ"
 50	@echo "  14_shortest_path   - ์ตœ๋‹จ ๊ฒฝ๋กœ"
 51	@echo "  15_mst             - ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ"
 52	@echo "  16_lca             - LCA"
 53	@echo "  17_scc             - SCC"
 54	@echo "  18_dp              - ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ"
 55	@echo "  19_greedy          - ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜"
 56	@echo "  20_bitmask_dp      - ๋น„ํŠธ๋งˆ์Šคํฌ DP"
 57	@echo "  21_number_theory   - ์ •์ˆ˜๋ก "
 58	@echo "  22_string_algorithm- ๋ฌธ์ž์—ด ์•Œ๊ณ ๋ฆฌ์ฆ˜"
 59	@echo "  23_segment_tree    - ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ"
 60	@echo "  24_fenwick_tree    - ํŽœ์œ… ํŠธ๋ฆฌ"
 61	@echo "  25_network_flow    - ๋„คํŠธ์›Œํฌ ํ”Œ๋กœ์šฐ"
 62	@echo "  26_geometry        - ๊ธฐํ•˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜"
 63	@echo "  27_game_theory     - ๊ฒŒ์ž„ ์ด๋ก "
 64	@echo "  28_advanced_dp     - ๊ณ ๊ธ‰ DP ์ตœ์ ํ™”"
 65	@echo "  29_practice        - ์‹ค์ „ ๋ฌธ์ œ ํ’€์ด"
 66
 67# ํ…Œ์ŠคํŠธ (๋ชจ๋“  ์˜ˆ์ œ ์‹คํ–‰)
 68test: all
 69	@echo "=========================================="
 70	@echo "๋ชจ๋“  ์˜ˆ์ œ ํ…Œ์ŠคํŠธ ์‹คํ–‰"
 71	@echo "=========================================="
 72	@for target in $(TARGETS); do \
 73		echo ""; \
 74		echo "โ–ถ Running $$target..."; \
 75		./$$target || echo "โœ— $$target ์‹คํŒจ"; \
 76		echo ""; \
 77	done
 78	@echo "=========================================="
 79	@echo "ํ…Œ์ŠคํŠธ ์™„๋ฃŒ"
 80	@echo "=========================================="
 81
 82# ์ „์ฒด ์‹คํ–‰
 83run-all: all
 84	@for target in $(TARGETS); do \
 85		./$$target; \
 86	done
 87
 88# ๊ฐœ๋ณ„ ์‹คํ–‰ ๊ทœ์น™
 89run-01: 01_complexity
 90	./01_complexity
 91
 92run-02: 02_array_string
 93	./02_array_string
 94
 95run-03: 03_stack_queue
 96	./03_stack_queue
 97
 98run-04: 04_hash_table
 99	./04_hash_table
100
101run-05: 05_sorting
102	./05_sorting
103
104run-06: 06_searching
105	./06_searching
106
107run-07: 07_divide_conquer
108	./07_divide_conquer
109
110run-08: 08_backtracking
111	./08_backtracking
112
113run-09: 09_tree_bst
114	./09_tree_bst
115
116run-10: 10_heap
117	./10_heap
118
119run-11: 11_trie
120	./11_trie
121
122run-12: 12_graph_basic
123	./12_graph_basic
124
125run-13: 13_topological_sort
126	./13_topological_sort
127
128run-14: 14_shortest_path
129	./14_shortest_path
130
131run-15: 15_mst
132	./15_mst
133
134run-16: 16_lca
135	./16_lca
136
137run-17: 17_scc
138	./17_scc
139
140run-18: 18_dp
141	./18_dp
142
143run-19: 19_greedy
144	./19_greedy
145
146run-20: 20_bitmask_dp
147	./20_bitmask_dp
148
149run-21: 21_number_theory
150	./21_number_theory
151
152run-22: 22_string_algorithm
153	./22_string_algorithm
154
155run-23: 23_segment_tree
156	./23_segment_tree
157
158run-24: 24_fenwick_tree
159	./24_fenwick_tree
160
161run-25: 25_network_flow
162	./25_network_flow
163
164run-26: 26_geometry
165	./26_geometry
166
167run-27: 27_game_theory
168	./27_game_theory
169
170run-28: 28_advanced_dp
171	./28_advanced_dp
172
173run-29: 29_practice
174	./29_practice