forked from beanstalkd/beanstalkd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
122 lines (94 loc) · 1.95 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
PREFIX?=/usr/local
BINDIR=$(DESTDIR)$(PREFIX)/bin
override CFLAGS+=-Wall -Werror -Wformat=2 -g
override LDFLAGS?=
LDLIBS?=
OS?=$(shell uname | tr 'A-Z' 'a-z')
INSTALL?=install
PKG_CONFIG?=pkg-config
ifeq ($(OS),sunos)
override LDFLAGS += -lxnet -lsocket -lnsl
endif
VERS=$(shell ./vers.sh)
TARG=beanstalkd
MOFILE=main.o
OFILES=\
$(OS).o\
conn.o\
file.o\
heap.o\
job.o\
ms.o\
net.o\
primes.o\
prot.o\
serv.o\
time.o\
tube.o\
util.o\
vers.o\
walg.o\
TOFILES=\
testheap.o\
testjobs.o\
testms.o\
testserv.o\
testutil.o\
HFILES=\
dat.h\
ifeq ($(OS),linux)
LDLIBS+=-lrt
endif
# systemd support can be configured via USE_SYSTEMD:
# no: disabled
# yes: enabled, build fails if libsystemd is not found
# otherwise: enabled if libsystemd is found
ifneq ($(USE_SYSTEMD),no)
ifeq ($(shell $(PKG_CONFIG) --exists libsystemd && echo $$?),0)
LDLIBS+=$(shell $(PKG_CONFIG) --libs libsystemd)
CPPFLAGS+=-DHAVE_LIBSYSTEMD
else
ifeq ($(USE_SYSTEMD),yes)
$(error USE_SYSTEMD is set to "$(USE_SYSTEMD)", but $(PKG_CONFIG) cannot find libsystemd)
endif
endif
endif
CLEANFILES=\
vers.c\
$(wildcard *.gc*)
.PHONY: all
all: $(TARG)
$(TARG): $(OFILES) $(MOFILE)
$(LINK.o) -o $@ $^ $(LDLIBS)
.PHONY: install
install: $(BINDIR)/$(TARG)
$(BINDIR)/%: %
$(INSTALL) -d $(dir $@)
$(INSTALL) $< $@
CLEANFILES+=$(TARG)
$(OFILES) $(MOFILE): $(HFILES)
CLEANFILES+=$(wildcard *.o)
.PHONY: clean
clean:
rm -f $(CLEANFILES)
.PHONY: check
check: ct/_ctcheck
ct/_ctcheck
.PHONY: bench
bench: ct/_ctcheck
ct/_ctcheck -b
ct/_ctcheck: ct/_ctcheck.o ct/ct.o $(OFILES) $(TOFILES)
ct/_ctcheck.c: $(TOFILES) ct/gen
ct/gen $(TOFILES) >[email protected]
mv [email protected] $@
ct/ct.o ct/_ctcheck.o: ct/ct.h ct/internal.h
$(TOFILES): $(HFILES) ct/ct.h
CLEANFILES+=$(wildcard ct/_* ct/*.o ct/*.gc*)
ifneq ($(shell ./verc.sh),$(shell cat vers.c 2>/dev/null))
.PHONY: vers.c
endif
vers.c:
./verc.sh >vers.c
doc/beanstalkd.1 doc/beanstalkd.1.html: doc/beanstalkd.ronn
ronn $<
freebsd.o: darwin.c