-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
83 lines (62 loc) · 2.82 KB
/
Makefile
File metadata and controls
83 lines (62 loc) · 2.82 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
all: install
main: install
CC = gcc
DEVFLAGS = -std=gnu11 -g -pedantic -Wall -Wno-conversion \
-Wextra -Wno-missing-field-initializers -Wformat=2 \
-Wswitch-default -Wswitch -Wcast-align -Wpointer-arith \
-Wno-bad-function-cast -Wstrict-prototypes -Winline \
-Wundef -Wnested-externs -Wcast-qual -Wshadow -Wunreachable-code \
-Wlogical-op -Wno-float-equal -Wstrict-aliasing=3 -Wredundant-decls \
-Wold-style-definition -Werror -ggdb3 -O0 \
-fno-omit-frame-pointer -ffloat-store -fno-common -fstrict-aliasing -lm
MAINFLAGS = -O3
BUILD = build
INCLUDE = -Iinclude -Iexternal -I.
####################################
# MAIN
####################################
WEB_SOURCES := $(wildcard src/web/*.c)
WEB_OBJECTS=$(patsubst src/web/%.c, $(BUILD)/web-%.o, $(WEB_SOURCES))
$(WEB_OBJECTS): $(BUILD)/web-%.o : src/web/%.c
$(CC) $(MAINFLAGS) -c $(INCLUDE) $< -o $@
UTILS_SOURCES := $(wildcard src/utils/*.c)
UTILS_OBJECTS=$(patsubst src/utils/%.c, $(BUILD)/utils-%.o, $(UTILS_SOURCES))
$(UTILS_OBJECTS): $(BUILD)/utils-%.o : src/utils/%.c
$(CC) $(MAINFLAGS) -c $(INCLUDE) $< -o $@
DISCORD_SOURCES := $(wildcard src/discord/*.c)
DISCORD_OBJECTS=$(patsubst src/discord/%.c, $(BUILD)/discord-%.o, $(DISCORD_SOURCES))
$(DISCORD_OBJECTS): $(BUILD)/discord-%.o : src/discord/%.c
$(CC) $(MAINFLAGS) -c $(INCLUDE) $< -o $@
####################################
# DEV
####################################
DEV_WEB_SOURCES := $(wildcard src/web/*.c)
DEV_WEB_OBJECTS=$(patsubst src/web/%.c, $(BUILD)/dev-web-%.o, $(DEV_WEB_SOURCES))
$(DEV_WEB_OBJECTS): $(BUILD)/dev-web-%.o : src/web/%.c
$(CC) $(DEVFLAGS) -c $(INCLUDE) $< -o $@
DEV_UTILS_SOURCES := $(wildcard src/utils/*.c)
DEV_UTILS_OBJECTS=$(patsubst src/utils/%.c, $(BUILD)/dev-utils-%.o, $(DEV_UTILS_SOURCES))
$(DEV_UTILS_OBJECTS): $(BUILD)/dev-utils-%.o : src/utils/%.c
$(CC) $(DEVFLAGS) -c $(INCLUDE) $< -o $@
DEV_DISCORD_SOURCES := $(wildcard src/discord/*.c)
DEV_DISCORD_OBJECTS=$(patsubst src/discord/%.c, $(BUILD)/dev-discord-%.o, $(DEV_DISCORD_SOURCES))
$(DEV_DISCORD_OBJECTS): $(BUILD)/dev-discord-%.o : src/discord/%.c
$(CC) $(DEVFLAGS) -c $(INCLUDE) $< -o $@
example:
(cd examples/example_bot_1 && make)
install: build $(WEB_OBJECTS) $(UTILS_OBJECTS) $(DISCORD_OBJECTS) cJSON
ar -rsv libdisco.a $(WEB_OBJECTS) $(UTILS_OBJECTS) $(DISCORD_OBJECTS) $(BUILD)/cJSON.o
dev: build $(DEV_WEB_OBJECTS) $(DEV_UTILS_OBJECTS) $(DEV_DISCORD_OBJECTS) cJSON
ar -rsv libdisco.a $(DEV_WEB_OBJECTS) $(DEV_UTILS_OBJECTS) $(DEV_DISCORD_OBJECTS) $(BUILD)/cJSON.o
build:
mkdir -p $(BUILD)
clean: clean_test
rm -rf $(BUILD)
rm -f libdisco.a
rm -f libdevdisco.a
cJSON:
$(CC) $(CFLAGS) -c $(INCLUDE) external/cJSON/cJSON.c -o $(BUILD)/cJSON.o
test: install
(cd tests && make)
clean_test:
rm -f $(TEST_EXECUTABLES)