-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
65 lines (52 loc) · 1.98 KB
/
Makefile
File metadata and controls
65 lines (52 loc) · 1.98 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
CC := cc
OK := fdbc
MAKE := make
LIBS := -ll -ly
#LIBS := -L/usr/local/mysql/lib/mysql -I/usr/local/mysql/include/mysql -DUNIV_LINUX
CFLAGS := $(LIBS) -Wall -O -g -pedantic -Wshadow -Wunused -Wstrict-aliasing
DESTDIR :=
PREFIX := /usr/local
RM-F := rm -f
#CXXFLAGS := $(CFLAGS) -lmysqlclient_r -lpthread -lz -lcrypt -lnsl -lm -levent
CXXFLAGS := $(CFLAGS) -lpthread -lz -lcrypt -lnsl -lm -levent
EXECUTABLE := -o $(OK) $(CXXFLAGS)
SOURCE := $(wildcard *.c)
OBJS := $(patsubst %.c,%.o,$(SOURCE))
HASHDIR := ./hashtable/ ./deposit/
FILTER := $(firstword $(HASHDIR))test_hashtable.o
HASHSOUR := $(foreach cd,$(HASHDIR), $(patsubst $(cd)%.c,$(cd)%.o, $(wildcard $(cd)*.c)))
HASHPROG := $(filter-out $(FILTER),$(HASHSOUR))
PARDIR := ./parser/
LEXSOUR := $(wildcard $(PARDIR)*.l)
LEXPROG := $(patsubst $(PARDIR)%.l,$(PARDIR)%.o, $(LEXSOUR))
YACCSOUR := $(wildcard $(PARDIR)*.y)
YACCPROG := $(patsubst $(PARDIR)%.y,$(PARDIR)%.o, $(YACCSOUR))
EXSOURCE := $(PARDIR)Expression.c
EXOBJ := $(patsubst %.c,%.o,$(EXSOURCE))
.PHONY : deps everything objs clean
$(OK) : parsers hashtables $(OBJS)
@echo "======== ok ========="
$(CC) $(OBJS) $(PARPROG) $(HASHPROG) $(LEXPROG) $(YACCPROG) $(EXOBJ) $(HASHROG) $(EXECUTABLE)
parsers :
@echo "======= parser ========="
$(foreach c,$(PARDIR),$(MAKE) -C $(c) && ) true
hashtables :
@echo "======= hashtable and deposit ========="
$(foreach c,$(HASHDIR),$(MAKE) -C $(c) && ) true
deps : $(OBJS)
$(CC) $(OBJS) $(CFLAGS) $(CXXFLAGS)
objs : $(OBJS)
install: $(OK)
install -s $(OK) $(DESTDIR)$(PREFIX)/bin
# install -m 644 webbench.1 $(DESTDIR)$(PREFIX)/man/man1
# install -d $(DESTDIR)$(PREFIX)/share/doc/webbench
# install -m 644 debian/copyright $(DESTDIR)$(PREFIX)/share/doc/webbench
# install -m 644 debian/changelog $(DESTDIR)$(PREFIX)/share/doc/webbench
clean :
$(RM-F) *.o
$(RM-F) *.gch
$(RM-F) $(OK)
$(RM-F) core.*
$(foreach c,$(PARDIR),$(MAKE) clean -C $(c) && ) true
$(foreach c,$(HASHDIR),$(MAKE) clean -C $(c) && ) true
# set noexpandtab