forked from elastic/logstash-forwarder
/
Makefile
105 lines (82 loc) · 3.29 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
VERSION=0.0.2
CFLAGS+=-Ibuild/include
CFLAGS+=-D_POSIX_C_SOURCE=199309 -std=c99 -Wall -Wextra -Werror -pipe
CFLAGS+=-g
CFLAGS+=-Wno-unused-function
LDFLAGS+=-pthread
LDFLAGS+=-Lbuild/lib -Wl,-rpath,'$$ORIGIN/../lib'
LIBS=-lzmq -ljemalloc -lssl -lcrypto -luuid -lz
#-llz4
FETCH=sh fetch.sh
#-lmsgpack
#-ljansson
PREFIX?=/opt/lumberjack
default: build/bin/lumberjack
include Makefile.ext
ifeq ($(UNAME),Linux)
# clock_gettime is in librt on linux.
LIBS+=-lrt
endif
clean:
-@rm -fr lumberjack unixsock *.o build
-@#make -C vendor/msgpack/ clean
-@#make -C vendor/jansson/ clean
-@#make -C vendor/jemalloc/ clean
-@#make -C vendor/libuuid/ clean
-@#make -C vendor/zeromq/ clean
rpm deb: | build/bin/lumberjack
fpm -s dir -t $@ -n lumberjack -v $(VERSION) --prefix /opt/lumberjack \
--exclude '*.a' --exclude 'lib/pkgconfig/zlib.pc' -C build bin/lumberjack lib
#install: build/bin/lumberjack build/lib/libzmq.$(LIBEXT)
# install -d -m 755 build/bin/* $(PREFIX)/bin/lumberjack
# install -d build/lib/* $(PREFIX)/lib
#unixsock.c: build/include/insist.h
backoff.c: backoff.h
harvester.c: harvester.h proto.h str.h build/include/insist.h build/include/zmq.h
emitter.c: emitter.h ring.h build/include/zmq.h
lumberjack.c: build/include/insist.h build/include/zmq.h
lumberjack.c: backoff.h harvester.h emitter.h
harvester.c lumberjack.c pushpull.c ring.c str.c: build/include/jemalloc/jemalloc.h
str.c: str.h
proto.c: proto.h str.h
ring.c: ring.h
#proto.c: build/include/lz4.h
.PHONY: test
test: | build/test/test_ring
build/test/test_ring
# Tests
test_ring.c: ring.h build/include/jemalloc/jemalloc.h build/include/insist.h
build/test/test_ring: test_ring.o ring.o | build/test
$(CC) $(LDFLAGS) -o $@ $^ -ljemalloc
#build/bin/pushpull: | build/lib/libzmq.$(LIBEXT) build/lib/libmsgpack.$(LIBEXT) build/bin
#build/bin/pushpull: pushpull.o
# $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
build/bin/lumberjack: | build/bin build/lib/libzmq.$(LIBEXT)
build/bin/lumberjack: | build/lib/libjemalloc.$(LIBEXT)
build/bin/lumberjack: | build/lib/libz.$(LIBEXT)
#build/bin/lumberjack: | build/lib/liblz4.$(LIBEXT)
build/bin/lumberjack: lumberjack.o backoff.o harvester.o emitter.o str.o proto.o ring.o
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
@echo " => Build complete: $@"
@echo " => Run 'make rpm' to build an rpm (or deb or tarball)"
build/include/insist.h: | build/include
PATH=$$PWD:$$PATH fetch.sh -o $@ https://raw.github.com/jordansissel/experiments/master/c/better-assert/insist.h
build/include/zmq.h build/lib/libzmq.$(LIBEXT): | build
@echo " => Building zeromq"
PATH=$$PWD:$$PATH $(MAKE) -C vendor/zeromq/ install PREFIX=$$PWD/build
build/include/msgpack.h build/lib/libmsgpack.$(LIBEXT): | build
@echo " => Building msgpack"
PATH=$$PWD:$$PATH $(MAKE) -C vendor/msgpack/ install PREFIX=$$PWD/build
build/include/jemalloc/jemalloc.h build/lib/libjemalloc.$(LIBEXT): | build
@echo " => Building jemalloc"
PATH=$$PWD:$$PATH $(MAKE) -C vendor/jemalloc/ install PREFIX=$$PWD/build
build/include/lz4.h build/lib/liblz4.$(LIBEXT): | build
@echo " => Building lz4"
PATH=$$PWD:$$PATH $(MAKE) -C vendor/lz4/ install PREFIX=$$PWD/build
build/include/zlib.h build/lib/libz.$(LIBEXT): | build
@echo " => Building lz4"
PATH=$$PWD:$$PATH $(MAKE) -C vendor/zlib/ install PREFIX=$$PWD/build
build:
mkdir $@
build/include build/bin build/test: | build
mkdir $@