endif
BIN="bin/cassiopeia"
-LIBS=openssl collissiondetect
+LIBS=openssl collisiondetect
CC=libtool --mode=compile gcc
CC_DEP=g++
CFLAGS += -O2
endif
-CFLAGS+=${ADDFLAGS} -Wall -Werror -Wextra -pedantic -std=c++11 -Ilib/openssl/include -Isrc
+CFLAGS+=${ADDFLAGS} -Wall -Werror -Wextra -pedantic -std=c++1y -Ilib/openssl/include -Isrc
CXXFLAGS=$(CFLAGS)
LDFLAGS+=${ADDFLAGS} -L/usr/lib/i386-linux-gnu/ -lssl -lcrypto -ldl -Llib/openssl
OBJ_DIR=obj
DEP_DIR=dep
-FS_SRC=$(wildcard ${SRC_DIR}/*.cpp) $(wildcard ${SRC_DIR}/io/*.cpp) $(wildcard ${SRC_DIR}/crypto/*.cpp) $(wildcard ${SRC_DIR}/db/*.cpp)
+FS_SRC=$(wildcard ${SRC_DIR}/*.cpp) $(wildcard ${SRC_DIR}/log/*.cpp) $(wildcard ${SRC_DIR}/io/*.cpp) $(wildcard ${SRC_DIR}/crypto/*.cpp) $(wildcard ${SRC_DIR}/db/*.cpp)
FS_BIN=$(wildcard ${SRC_DIR}/app/*.cpp)
FS_LIBS=$(wildcard lib/*/)
FS_OBJ=$(FS_SRC:${SRC_DIR}/%.cpp=${OBJ_DIR}/%.lo)
FS_DEP=$(FS_SRC:${SRC_DIR}/%.cpp=${DEP_DIR}/%.d)
+LIB_OPENSSL=lib/openssl/libssl.a
+
.SUFFIXES: .c .cpp .d
.PHONY: dist-clean
dist-clean: clean
${MAKE} -C lib/openssl clean
- ${MAKE} -C lib/collissiondetect clean
+ ${MAKE} -C lib/collisiondetect clean
build: cassiopeia
libs: ${LIBS}
.PHONY: openssl
-openssl:
+openssl lib/openssl/libssl.a lib/openssl/libcrypto.a:
${MAKE} -C lib openssl
-.PHONY: collissiondetect
-collissiondetect:
- ${MAKE} -C lib/collissiondetect
+.PHONY: collisiondetect
+collisiondetect:
+ ${MAKE} -C lib collisiondetect
.PHONY: coverage
coverage:
find . -name "*.gcda" -exec rm {} + &&\
rm -rf coverage &&\
- rm -rf coverage.info &&\
+ rm -rf coverage.info coverage_stripped.info &&\
${MAKE} "DEB_BUILD_OPTIONS=coverage noopt" &&\
lcov -c --directory obj --directory test/obj --output-file coverage.info &&\
- genhtml -p $(shell pwd) coverage.info --output-directory coverage
+ lcov -r coverage.info "/usr/**" -o coverage_stripped.info &&\
+ genhtml -p $(shell pwd) coverage_stripped.info --output-directory coverage
# --------
cassiopeia: bin/cassiopeia bin/cassiopeia-signer
bin/cassiopeia: libs ${FS_OBJ} ${OBJ_DIR}/apps/client.lo
- ${MKDIR} $(shell dirname $@) && ${LD} ${LDFLAGS} -lmysqlclient -o $@ ${FS_OBJ} ${OBJ_DIR}/apps/client.lo
+ ${MKDIR} $(shell dirname $@) && ${LD} ${LDFLAGS} -lmysqlclient -lpqxx -lpq -o $@ ${FS_OBJ} ${OBJ_DIR}/apps/client.lo
bin/cassiopeia-signer: libs ${FS_OBJ} ${OBJ_DIR}/apps/signer.lo
- ${MKDIR} $(shell dirname $@) && ${LD} ${LDFLAGS} -o $@ $(filter-out ${OBJ_DIR}/db/mysql.lo,${FS_OBJ}) ${OBJ_DIR}/apps/signer.lo
+ ${MKDIR} $(shell dirname $@) && ${LD} ${LDFLAGS} -o $@ $(filter-out ${OBJ_DIR}/db/psql.lo, $(filter-out ${OBJ_DIR}/db/mysql.lo,${FS_OBJ})) ${OBJ_DIR}/apps/signer.lo
-${DEP_DIR}/%.d: ${SRC_DIR}/%.cpp
+${DEP_DIR}/%.d: ${SRC_DIR}/%.cpp ${LIB_OPENSSL}
${MKDIR} $(shell dirname $@) && $(CXX_DEP) $(CXXFLAGS) -M -MF $@ $<
-${DEP_DIR}/%.d: ${SRC_DIR}/%.c
+${DEP_DIR}/%.d: ${SRC_DIR}/%.c ${LIB_OPENSSL}
${MKDIR} $(shell dirname $@) && $(CC) $(CXXFLAGS) -M -MF $@ $<
${OBJ_DIR}/%.lo ${OBJ_DIR}/%.o: ${SRC_DIR}/%.c ${DEP_DIR}/%.d