-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
91 lines (81 loc) · 2.75 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
CC=gcc
CCOPTS=-Wall -Wextra
BINARIES_FOLDER=.bin
OBJECTS_FOLDER=.objects
BINARIES=algorithms/binary_search \
algorithms/rec_binary_search \
algorithms/selection_sort \
algorithms/quick_sort \
exercises/recursion/static_and_global \
exercises/recursion/tail_and_head \
exercises/recursion/tree \
exercises/recursion/indirect \
exercises/recursion/nested \
exercises/recursion/natural_num_sum \
exercises/recursion/factorial \
exercises/recursion/fibonacci \
exercises/recursion/memoized_fibonacci \
exercises/recursion/combination \
exercises/recursion/tower_of_hanoi \
exercises/recursion/find_max_num \
exercises/array/single_missing_number \
exercises/array/multiple_missing_number \
exercises/array/duplicates \
exercises/string/str_duplicates \
exercises/string/change_case \
exercises/string/permutation \
exercises/stack/parenthesis_matching \
exercises/stack/infix_to_postfix \
exercises/stack/balanced_expression \
exercises/stack/postfix_evaluator \
OBJECT_FILES=algorithms/binary_search.o \
algorithms/rec_binary_search.o \
algorithms/selection_sort.o \
algorithms/quick_sort.o \
data-structures/array/array.o \
data-structures/linked-list/linked-list.o \
data-structures/hash-table/hash-table.o \
data-structures/stack/stack.o \
data-structures/queue/queue.o \
exercises/recursion/static_and_global.o \
exercises/recursion/tail_and_head.o \
exercises/recursion/tree.o \
exercises/recursion/indirect.o \
exercises/recursion/nested.o \
exercises/recursion/natural_num_sum.o \
exercises/recursion/factorial.o \
exercises/recursion/fibonacci.o \
exercises/recursion/memoized_fibonacci.o \
exercises/recursion/combination.o \
exercises/recursion/tower_of_hanoi.o \
exercises/recursion/find_max_num.o \
exercises/array/single_missing_number.o \
exercises/array/multiple_missing_number.o \
exercises/array/duplicates.o \
exercises/string/str_duplicates.o \
exercises/string/change_case.o \
exercises/string/permutation.o \
exercises/stack/parenthesis_matching.o \
exercises/stack/infix_to_postfix.o \
exercises/stack/balanced_expression.o \
exercises/stack/postfix_evaluator.o \
LIBS=$(OBJECTS_FOLDER)/array.o \
$(OBJECTS_FOLDER)/linked-list.o \
$(OBJECTS_FOLDER)/hash-table.o \
$(OBJECTS_FOLDER)/stack.o \
$(OBJECTS_FOLDER)/queue.o \
.PHONE: all clean
all: $(BINARIES)
clean:
@ echo
@ echo Cleaning up binaries and object files...
@ echo
@ rm -rf $(OBJECTS_FOLDER) $(BINARIES_FOLDER)
folders:
@ mkdir -p $(BINARIES_FOLDER) && mkdir -p $(OBJECTS_FOLDER)
%.o: %.c folders
@ echo [COMPILING] $<
@ $(CC) $(CCOPTS) -o $(OBJECTS_FOLDER)/$(notdir $@) -c $<
$(BINARIES): $(OBJECT_FILES)
@ echo [INFO] Creating binary $(BINARIES_FOLDER)/$(notdir $@)
@ $(CC) $(CCOPTS) -o $(BINARIES_FOLDER)/$(notdir $@) $(OBJECTS_FOLDER)/$(notdir $@).o $(LIBS)