2 # This file is under GNU General Public License 3.0
5 HERE := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
7 include ../Makefile.conf
9 CC?=g++ -std=gnu++11 -pthread
10 CXX?=g++ -std=gnu++11 -pthread
12 LDFLAGS?=-L$(HOME)/lib
13 LDLIBS?=-letpan -lpEpEngine -lstdc++ -L../asn.1 -lasn1
14 ifeq ($(BUILD_FOR),Linux)
17 CXXFLAGS?=-std=c++11 -g -O0 -I../src -I../asn.1
18 # CXXFLAGS=-O3 -DNDEBUG
20 ifeq ("$(OPENPGP)","NETPGP")
26 UNIT_TESTS_SOURCE=$(wildcard *_test.cc)
27 UNIT_TESTS=$(subst .cc,,$(UNIT_TESTS_SOURCE))
28 UNIT_TESTS_RUN=$(subst .cc,_run,$(UNIT_TESTS_SOURCE))
30 all: $(TARGET) $(UNIT_TESTS)
34 # don't delete .o files!
38 TEST_HOME=$(HERE)/test_home
39 TEST_HOME_SKEL=$(TEST_HOME)_skel
40 TEST_GNUPGHOME_SKEL=$(TEST_HOME)_skel/.gnupg
42 ifeq ($(shell uname), Darwin)
43 LIBPATH = DYLD_LIBRARY_PATH
44 LLDB_BIN = /Applications/Xcode.app/Contents/Developer/usr/bin/lldb
46 LIBPATH = LD_LIBRARY_PATH
50 TEST_CMD_PFX = $(LIBPATH)=$(HOME)/lib:../src HOME=$(TEST_HOME)
54 ifeq ("$(OPENPGP)","NETPGP")
57 killgpg_if_using_it = $(killgpg)
62 mkdir -p test_home_skel
63 -cat 0x*.asc *_sec.asc | gpg2 --import --homedir $(TEST_GNUPGHOME_SKEL)
66 test_home_: test_home_skel
67 $(killgpg_if_using_it)
69 cp -a test_home_skel test_home
72 rm -f *.o $(TARGET) *.a *~ $(UNIT_TESTS) pep_Dokument_Titel.pdf msg4.asc
73 rm -Rf *.dSYM test_home test_home_skel pubring.gpg secring.gpg random_seed *.conf trustdb.gpg
75 test: pEpEngineTest test_home_
76 $(TEST_CMD_PFX) ./pEpEngineTest
78 %_test : %_test.o test_util.o
79 $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
85 $(TEST_CMD_PFX) $(LLDB_BIN) ./$<
87 %_valgrind : % test_home_
88 $(TEST_CMD_PFX) valgrind --leak-check=yes ./$<
91 $(TEST_CMD_PFX) gdb ./$<
93 unit_tests: $(UNIT_TESTS) $(UNIT_TESTS_RUN)