recorder/Makefile
2016-09-12 09:09:16 +02:00

124 lines
3.1 KiB
Makefile

include config.mk
CFLAGS +=-Wall -Werror
LIBS = $(MORELIBS) -lm
LIBS += -lcurl -lconfig
TARGETS=
OTR_OBJS = json.o \
geo.o \
geohash.o \
mkpath.o \
base64.o \
misc.o \
util.o \
storage.o \
listsort.o
OTR_EXTRA_OBJS =
CFLAGS += -DGHASHPREC=$(GHASHPREC)
CFLAGS += -Imdb/
OTR_OBJS += gcache.o
LIBS += mdb/liblmdb.a -lpthread
TARGETS += mdb/liblmdb.a
ifeq ($(WITH_MQTT),yes)
CFLAGS += -DWITH_MQTT=1
CFLAGS += $(MOSQUITTO_INC)
LIBS += $(MOSQUITTO_LIB) -lmosquitto -lm
endif
ifeq ($(WITH_PING),yes)
CFLAGS += -DWITH_PING=1
endif
ifeq ($(WITH_LUA),yes)
CFLAGS += -DWITH_LUA=1 $(LUA_CFLAGS)
LIBS += $(LUA_LIBS)
OTR_OBJS += hooks.o
endif
ifeq ($(WITH_ENCRYPT),yes)
CFLAGS += -DWITH_ENCRYPT=1 $(SODIUM_CFLAGS)
LIBS += $(SODIUM_LIBS)
endif
ifeq ($(WITH_KILL),yes)
CFLAGS += -DWITH_KILL=1
endif
ifeq ($(WITH_HTTP),yes)
CFLAGS += -DWITH_HTTP=1
OTR_EXTRA_OBJS += mongoose.o http.o
endif
ifeq ($(WITH_GREENWICH),yes)
CFLAGS += -DWITH_GREENWICH=1
endif
ifeq ($(JSON_INDENT),yes)
CFLAGS += -DJSON_INDENT="\" \""
else
CFLAGS += -DJSON_INDENT=NULL
endif
CFLAGS += -DSTORAGEDEFAULT=\"$(STORAGEDEFAULT)\" -DDOCROOT=\"$(DOCROOT)\"
CFLAGS += -DCONFIGFILE=\"$(CONFIGFILE)\"
TARGETS += ot-recorder ocat
GIT_VERSION := $(shell git describe --long --abbrev=10 --dirty --tags 2>/dev/null || echo "tarball")
CFLAGS += -DGIT_VERSION=\"$(GIT_VERSION)\"
all: $(TARGETS)
ot-recorder: recorder.o $(OTR_OBJS) $(OTR_EXTRA_OBJS)
$(CC) $(CFLAGS) -o ot-recorder recorder.o $(OTR_OBJS) $(OTR_EXTRA_OBJS) $(LIBS)
if test -r codesign.sh; then /bin/sh codesign.sh; fi
ocat: ocat.o $(OTR_OBJS)
$(CC) $(CFLAGS) -o ocat ocat.o $(OTR_OBJS) $(LIBS)
$(OTR_OBJS): config.mk Makefile
recorder.o: recorder.c storage.h util.h Makefile geo.h udata.h json.h http.h gcache.h config.mk hooks.h base64.h recorder.h version.h
geo.o: geo.h geo.c udata.h
geohash.o: geohash.h geohash.c udata.h
base64.o: base64.h base64.c
$(CC) $(CFLAGS) -Wno-unused-result -Wno-uninitialized -c base64.c
gcache.o: gcache.c gcache.h json.h
misc.o: misc.c misc.h udata.h
http.o: http.c mongoose.h util.h http.h storage.h version.h hooks.h
util.o: util.c util.h
mongoose.o: mongoose.c mongoose.h
ocat.o: ocat.c storage.h util.h version.h config.mk Makefile
storage.o: storage.c storage.h util.h gcache.h listsort.h
hooks.o: hooks.c udata.h hooks.h util.h version.h gcache.h
listsort.o: listsort.c listsort.h
clean:
rm -f *.o
clobber: clean
(cd mdb; $(MAKE) clean)
rm -f ot-recorder ocat
mdb/liblmdb.a:
(cd mdb && $(MAKE) liblmdb.a CC=$(CC) CFLAGS="$(MDBFLAGS)" )
install: ot-recorder ocat
mkdir -p $(DESTDIR)$(INSTALLDIR)/bin
mkdir -p $(DESTDIR)$(INSTALLDIR)/sbin
mkdir -p $(DESTDIR)$(DOCROOT)
mkdir -p $(DESTDIR)$(STORAGEDEFAULT)/last
cp -R docroot/* $(DESTDIR)$(DOCROOT)/
install -m 0755 ot-recorder $(DESTDIR)$(INSTALLDIR)/sbin
install -m 0755 ocat $(DESTDIR)$(INSTALLDIR)/bin
test -r $(DESTDIR)/$(CONFIGFILE) || install -D -m 640 etc/ot-recorder.default $(DESTDIR)/$(CONFIGFILE)
ifndef DESTDIR
$(INSTALLDIR)/sbin/ot-recorder --initialize
endif
# mkdir -p $(DESTDIR)/etc/systemd/system/
# install --mode 0644 etc/ot-recorder.service $(DESTDIR)/etc/systemd/system/ot-recorder.service