1 # Copyright 2019, pEp Foundation
2 # This file is part of pEpEngine
3 # This file may be used under the terms of the GNU General Public License version 3
8 GTEST_SRC_DIR:=/usr/src/gtest
9 GTEST_INC_DIR:=$(GTEST_SRC_DIR)/include
10 GTEST_PL:=$(HOME)/src/gtest-parallel/gtest_parallel.py
12 include ../Makefile.conf # This should import changed values for the above from
15 SRCS:=$(wildcard src/*.cc) $(wildcard src/*/*.cc)
16 OBJS:=$(addsuffix .o,$(basename $(SRCS)))
19 LDFLAGS+= -L../asn.1 -L../src $(ETPAN_LIB) $(GTEST_LDFLAGS)
23 GTEST_SUITE_SYM:=test_suite_name
25 ifeq ($(shell grep -c $(GTEST_SUITE_SYM) $(GTEST_SRC_DIR)/src/gtest.cc),0)
26 GTEST_SUITE_SYM=test_case_name
29 CXXFLAGS+= -DGTEST_SUITE_SYM=$(GTEST_SUITE_SYM)
32 LDFLAGS+= $(GPGME_LIB)
33 else ifeq ($(OPENPGP),NETPGP)
34 LDFLAGS+= $(NETGPG_LIB)
37 LDLIBS+= -letpan -lpEpEngine -lstdc++ -lasn1
39 ifeq ($(BUILD_FOR),Linux)
43 ifeq ($(OPENPGP),SEQUOIA)
44 LDFLAGS+= $(SEQUOIA_LDFLAGS)
45 LDLIBS+= $(SEQUOIA_LIB)
46 CXXFLAGS+= $(SEQUOIA_CFLAGS) -DUSE_SEQUOIA
47 INC_FLAGS+= $(SEQUOIA_INC)
56 else ifeq ($(OPENPGP),NETPGP)
58 ifeq ($(BUILD_FOR),Linux)
63 CXXFLAGS:=-I$(GTEST_INC_DIR) $(filter-out -DNDEBUG,$(CXXFLAGS))
65 # FIXME Possibly missing incdirs: ASN1C_INC
66 CXXFLAGS+= -I./src -I../sync $(INC_FLAGS) -Wno-deprecated -Wno-unused-variable
69 CXXFLAGS+= -DUSE_GPG $(GPGME_INC)
70 else ifeq ($(OPENPGP),NETPGP)
71 CXXFLAGS+= -DUSE_NETPGP $(NETPGP_INC)
74 EXTRA_LIB_PATHS=.:../src:
76 EXTRA_LIB_PATHS:=$(EXTRA_LIB_PATHS)$(patsubst -L%,%,$(ETPAN_LIB)):
79 EXTRA_LIB_PATHS:=$(EXTRA_LIB_PATHS)$(patsubst -L%,%,$(GPGME_LIB)):
82 EXTRA_LIB_PATHS:=$(EXTRA_LIB_PATHS)$(patsubst -L%,%,$(NETPGP_LIB)):
86 EXTRA_LIB_PATHS:=$(EXTRA_LIB_PATHS::=)
88 ifeq ($(BUILD_FOR),Darwin)
89 LIBPATH=DYLD_LIBRARY_PATH
91 LIBPATH=LD_LIBRARY_PATH
94 # FIXME: this forces a path on execution which overrides system paths for
95 # libraries like iconv and causes runtime errors.
96 #TEST_CMD_PFX=$(LIBPATH)=$(EXTRA_LIB_PATHS)
99 .PHONY: all clean test
105 $(CXX) -MM $(CPPFLAGS) $(CXXFLAGS) $< | sed -e 's,\($*\)\.o[ :]*,\1.o $@: ,g' > $@
108 ${CXX} ${LDFLAGS} -L${PREFIX}/lib -o $@ $^ -lpEpEngine -lgtest -lgtest_main -lsequoia_openpgp_ffi $(LDLIBS)
112 $(RM) -rf ./pEp_test_home/*
113 $(TEST_CMD_PFX) $(TEST_DEBUGGER) GTEST_COLOR=no python3 $(GTEST_PL) --gtest_color=no ./$(TARGET)
115 $(RM) $(TARGET) $(TARGET).o $(TARGET).d $(OBJS) $(notdir $(basename $(OBJS))) $(DEPS)
116 $(RM) -rf ./pEp_test_home/*
117 # If only the goal 'clean' is given, do not generate and include the '%.d' files.¬
118 ifneq ($(MAKECMDGOALS),clean)