-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
67 lines (53 loc) · 1.97 KB
/
Makefile
File metadata and controls
67 lines (53 loc) · 1.97 KB
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
CC=gcc
CFLAGS=-Werror-implicit-function-declaration -Wall -Wextra -ggdb3 \
-pedantic -std=c99 \
-Iinclude/ -Itests
TEST_OBJS=test__mem_memwrap.o test__adt_stack.o test__adt_dequeue.o \
test__adt_hashtable.o test__adt_forwardlist.o
MEM_OBJS=memwrap.o
ADT_OBJS=stack.o dequeue.o hashtable.o forwardlist.o
MEM_BUILD_OBJS=$(addprefix $(BUILD)/, $(MEM_OBJS))
ADT_BUILD_OBJS=$(addprefix $(BUILD)/, $(ADT_OBJS))
OBJ_FILES=$(ADT_OBJS) $(MEM_OBJS) $(TEST_OBJS) main.o
EXEC=a.out
SURFACE=.
TESTS=./tests
INCLUDE=./include
LIB=$(SURFACE)/lib
BUILD=./build
DOCS=./docs
OBJS=$(addprefix $(BUILD)/, $(OBJ_FILES))
STATIC_LIB=$(BUILD)/libgonlibs.a
all: prep_build $(OBJS) $(STATIC_LIB)
$(CC) $(CFLAGS) $(OBJS) -o $(EXEC)
prep_build:
$(info =======================)
$(info === Building Executable)
$(info =======================)
mkdir -p $(BUILD)
docs:
$(info ==========================)
$(info === Building Documentation)
$(info ==========================)
mkdir -p $(DOCS)
doxygen docs_conf
$(STATIC_LIB):
ar -rcs $@ $(ADT_BUILD_OBJS) $(MEM_BUILD_OBJS)
$(BUILD)/%.o:
$(CC) $(CFLAGS) -c -o $@ $<
$(BUILD)/test__mem_memwrap.o: $(TESTS)/test__mem_memwrap.c $(TESTS)/tests.h
$(BUILD)/test__adt_stack.o: $(TESTS)/test__adt_stack.c $(TESTS)/tests.h
$(BUILD)/test__adt_dequeue.o: $(TESTS)/test__adt_dequeue.c $(TESTS)/tests.h
$(BUILD)/test__adt_hashtable.o: $(TESTS)/test__adt_hashtable.c $(TESTS)/tests.h
$(BUILD)/test__adt_forwardlist.o: $(TESTS)/test__adt_forwardlist.c $(TESTS)/tests.h
$(BUILD)/memwrap.o: $(LIB)/MEM/memwrap.c $(INCLUDE)/MEM/memwrap.h
$(BUILD)/stack.o: $(LIB)/ADT/stack.c $(INCLUDE)/ADT/stack.h
$(BUILD)/dequeue.o: $(LIB)/ADT/dequeue.c $(INCLUDE)/ADT/dequeue.h
$(BUILD)/hashtable.o: $(LIB)/ADT/hashtable.c $(INCLUDE)/ADT/hashtable.h
$(BUILD)/forwardlist.o: $(LIB)/ADT/forwardlist.c $(INCLUDE)/ADT/forwardlist.h
$(BUILD)/main.o: main.c
$(CC) $(CFLAGS) -c -o $@ $<
clean:
rm -rf $(BUILD)
rm -rf $(DOCS)
rm -f $(EXEC)