159 lines
4.6 KiB
Makefile
159 lines
4.6 KiB
Makefile
|
|
# Copyright (c) 2016 Sequence Logic, Inc. All rights reserved
|
||
|
|
# Created August 2013 by Kendrick Webster
|
||
|
|
#
|
||
|
|
# K2Daemon/makefile
|
||
|
|
# This will build for Linux and OSX
|
||
|
|
#
|
||
|
|
|
||
|
|
CC = gcc
|
||
|
|
CPP = g++
|
||
|
|
LD = g++
|
||
|
|
MD5 = md5
|
||
|
|
|
||
|
|
CFLAGS = -Wall -m64 -Wfatal-errors -Wno-unused-parameter -DMONGO_HAVE_STDINT
|
||
|
|
INCLUDES = -I../libeye -I../thirdparty/openssl/include -I../cppboost -I/usr/local/include -I/usr/local/include/libmongoc-1.0 -I/usr/local/include/libbson-1.0
|
||
|
|
LIBDIRS = -L../libeye/lib/${PLATFORM} -L/usr/local/lib -L../thirdparty/openssl/lib/${PLATFORM}
|
||
|
|
LIBHEADER = ../libeye/eyeconstants.h ../libeye/eyelog.h
|
||
|
|
LIBS = -ldl -lmongoc-1.0 -lbson-1.0 -leye -lz -lcrypto
|
||
|
|
|
||
|
|
UNAME := $(shell uname)
|
||
|
|
ifeq (${UNAME},Darwin)
|
||
|
|
PLATFORM=Darwin
|
||
|
|
LIBEXTN = .dylib
|
||
|
|
LIBS +=
|
||
|
|
INCLUDES += -I/opt/local/include
|
||
|
|
LIBDIRS += -L/opt/local/lib
|
||
|
|
JNI_INCLUDE = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/darwin
|
||
|
|
CFLAGS += -D${UNAME} ${INCLUDES}
|
||
|
|
CPPFLAGS = ${CFLAGS} -std=gnu++11
|
||
|
|
LDFLAGS = -std=gnu++11
|
||
|
|
else
|
||
|
|
PLATFORM=lin64
|
||
|
|
LIBEXTN = .so
|
||
|
|
LIBS += -lrt -lm -static-libstdc++
|
||
|
|
INCLUDES +=
|
||
|
|
JNI_INCLUDE = -I${JAVA_HOME}/include -I${JAVA_HOME}/include/linux
|
||
|
|
CFLAGS += -O2 -DLIN64 -fPIC -pthread ${INCLUDES}
|
||
|
|
CPPFLAGS = ${CFLAGS} -Wno-unused-local-typedefs -std=c++11
|
||
|
|
LDFLAGS = -m64 -fPIC -std=c++11
|
||
|
|
MD5 = openssl md5
|
||
|
|
endif
|
||
|
|
|
||
|
|
|
||
|
|
# target for 'all' or 'compile'
|
||
|
|
TARGETNAME = K2Daemon
|
||
|
|
TARGET = bin/${PLATFORM}/${TARGETNAME}
|
||
|
|
|
||
|
|
|
||
|
|
COMMON_HEADERS = ${LIBHEADER} global.h LogTrace.h Hash.h LogMemstats.h
|
||
|
|
|
||
|
|
OBJS = obj/${PLATFORM}/main.o \
|
||
|
|
obj/${PLATFORM}/Version.o \
|
||
|
|
obj/${PLATFORM}/LogTrace.o \
|
||
|
|
obj/${PLATFORM}/LogMemstats.o \
|
||
|
|
obj/${PLATFORM}/Hash.o \
|
||
|
|
obj/${PLATFORM}/ClientMap.o \
|
||
|
|
obj/${PLATFORM}/ClientCache.o \
|
||
|
|
obj/${PLATFORM}/OfficeSubscriptions.o \
|
||
|
|
obj/${PLATFORM}/MongoDB.o \
|
||
|
|
obj/${PLATFORM}/MongoNotifyQueue.o \
|
||
|
|
obj/${PLATFORM}/MongoDeviceStatus.o
|
||
|
|
|
||
|
|
|
||
|
|
obj/${PLATFORM}/main.o : main.cpp ${COMMON_HEADERS} ClientCache.h MongoDB.h MongoNotifyQueue.h Version.h
|
||
|
|
${CPP} ${CPPFLAGS} -c main.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/Version.o : Version.cpp ${COMMON_HEADERS} Version.h
|
||
|
|
${CPP} ${CPPFLAGS} -c Version.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/LogTrace.o : LogTrace.cpp ${COMMON_HEADERS}
|
||
|
|
${CPP} ${CPPFLAGS} -c LogTrace.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/LogMemstats.o : LogMemstats.cpp ${COMMON_HEADERS} ClientMap.h OfficeSubscriptions.h Version.h
|
||
|
|
${CPP} ${CPPFLAGS} -c LogMemstats.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/Hash.o : Hash.c Hash.h
|
||
|
|
${CPP} ${CFLAGS} -c Hash.c -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/ClientMap.o : ClientMap.cpp ${COMMON_HEADERS} ClientMap.h
|
||
|
|
${CPP} ${CPPFLAGS} -c ClientMap.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/ClientCache.o : ClientCache.cpp ${COMMON_HEADERS} ClientCache.h ClientMap.h MongoDB.h MongoNotifyQueue.h MongoDeviceStatus.h OfficeSubscriptions.h Version.h
|
||
|
|
${CPP} ${CPPFLAGS} -c ClientCache.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/OfficeSubscriptions.o : OfficeSubscriptions.cpp ${COMMON_HEADERS} OfficeSubscriptions.h
|
||
|
|
${CPP} ${CPPFLAGS} -c OfficeSubscriptions.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/MongoDB.o : MongoDB.cpp ${COMMON_HEADERS} MongoDB.h
|
||
|
|
${CPP} ${CPPFLAGS} -c MongoDB.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/MongoNotifyQueue.o : MongoNotifyQueue.cpp ${COMMON_HEADERS} MongoDB.h MongoNotifyQueue.h
|
||
|
|
${CPP} ${CPPFLAGS} -c MongoNotifyQueue.cpp -o $*.o
|
||
|
|
|
||
|
|
obj/${PLATFORM}/MongoDeviceStatus.o : MongoDeviceStatus.cpp ${COMMON_HEADERS} MongoDB.h MongoDeviceStatus.h
|
||
|
|
${CPP} ${CPPFLAGS} -c MongoDeviceStatus.cpp -o $*.o
|
||
|
|
|
||
|
|
|
||
|
|
${TARGET} : ${OBJS}
|
||
|
|
mkdir -p bin/${PLATFORM}
|
||
|
|
${LD} -o ${TARGET} ${OBJS} ${LIBDIRS} ${LDFLAGS} ${LIBS}
|
||
|
|
${MD5} ${TARGET} > ${TARGET}.md5
|
||
|
|
|
||
|
|
.PHONY: showconfig
|
||
|
|
showconfig: init
|
||
|
|
@echo showconfig - use make all/clean to actually build something
|
||
|
|
@echo PLATFORM........ ${PLATFORM}
|
||
|
|
@echo JAVA_HOME....... ${JAVA_HOME}
|
||
|
|
@echo CFLAGS.......... ${CFLAGS}
|
||
|
|
@echo CPPFLAGS........ ${CPPFLAGS}
|
||
|
|
@echo LDFLAGS......... ${LDFLAGS}
|
||
|
|
@echo LIBDIRS......... ${LIBDIRS}
|
||
|
|
@echo LIBS............ ${LIBS}
|
||
|
|
@echo CC.............. ${CC}
|
||
|
|
@echo CPP............. ${CPP}
|
||
|
|
@echo LD.............. ${LD}
|
||
|
|
@echo MD5............. ${MD5}
|
||
|
|
|
||
|
|
.PHONY: init
|
||
|
|
init:
|
||
|
|
@echo platform.mk init
|
||
|
|
mkdir -p obj/${PLATFORM}
|
||
|
|
mkdir -p obj/${PLATFORM}/client
|
||
|
|
mkdir -p lib/${PLATFORM}
|
||
|
|
mkdir -p bin/${PLATFORM}
|
||
|
|
mkdir -p classes
|
||
|
|
export LANG=en_US.US-ASCII
|
||
|
|
|
||
|
|
.PHONY: clean
|
||
|
|
clean : showconfig
|
||
|
|
@echo clean
|
||
|
|
rm -f ${TARGET} ${OBJS}
|
||
|
|
rm -rf bin/${PLATFORM}
|
||
|
|
|
||
|
|
.PHONY: all
|
||
|
|
all: showconfig init ${TARGET}
|
||
|
|
@echo all
|
||
|
|
|
||
|
|
.PHONY: compile
|
||
|
|
compile: all
|
||
|
|
@echo compile
|
||
|
|
|
||
|
|
docs:
|
||
|
|
ifeq (${UNAME},Linux)
|
||
|
|
doxygen K2Daemon.dox
|
||
|
|
cd lib/docs/html; jar -cvf ../K2Daemon.docs.jar *
|
||
|
|
endif
|
||
|
|
|
||
|
|
.PHONY: install
|
||
|
|
install: all docs
|
||
|
|
@echo install
|
||
|
|
|
||
|
|
.PHONY: test
|
||
|
|
test:
|
||
|
|
@echo No tests yet for Daemon
|
||
|
|
|
||
|
|
.PHONY: package
|
||
|
|
package:
|
||
|
|
@echo "Nothing to package"
|
||
|
|
|