-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
50 lines (40 loc) · 1.04 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
CC = gcc
EFLAGS = -fsanitize=address
SRCDIR = src
INCDIR = include
LIBDIR = lib
# please don't put '/' here otherwise you might wipe you system,if linux like
BUILDDIR = build
BINDIR = bin
_CFLAGS = -I$(INCDIR) -L$(LIBDIR) -ggdb3 -O0 -Wall -Wextra -Wuninitialized
LIBARIES = ""
ifeq ($(OS),Windows_NT)
CFLAGS = $(_CFLAGS) -lws2_32 -DWIN32
LIBARIES = -l:civetwebwin.o -l:sqlite3.o
else
CFLAGS = $(_CFLAGS)
LIBARIES = -l:civetweb.o -l:sqlite3.o
endif
SOURCE = $(filter-out $(wildcard $(SRCDIR)/*thread*.c), $(wildcard $(SRCDIR)/*.c))
SOURCE_OBJ = $(patsubst $(SRCDIR)/%.c,$(BUILDDIR)/%.o,$(SOURCE))
EXECUTABLE = peanut
p: pbsql
r:all run
all:$(EXECUTABLE)
$(EXECUTABLE):$(SOURCE_OBJ)
$(CC) $(LIBARIES) $^ -o $@ $(CFLAGS)
$(BUILDDIR)/%.o: $(SRCDIR)/%.c
$(CC) $(LIBARIES) -c $< -o $@ $(CFLAGS)
run:
./$(EXECUTABLE)
clean:
ifeq ($(OS),Windows_NT)
else
rm -r $(BUILDDIR)
endif
mkdir build
pbsql:
$(CC) -c $(SRCDIR)/database.c -o db.o $(CFLAGS)
$(CC) $(LIBARIES) db.o $(SRCDIR)/pbsql_parser.c -o a.out $(CFLAGS)
./a.out
.PHONY: all clean run