You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.0 KiB
Makefile

# this file is under GNU GPL 3.0, see LICENSE.txt
# see LICENSE.txt
PREFIX=$(HOME)
BOOST_INCLUDE?=$(PREFIX)/include
BOOST_LIB?=$(PREFIX)/lib
CRYPTOPP_INCLUDE?=$(PREFIX)/include
CRYPTOPP_LIB?=$(PREFIX)/lib
OPENSSL_INCLUDE?=$(HOME)/include
OPENSSL_LIB?=$(HOME)/lib
LIBZ_INCLUDE?=$(HOME)/include
LIBZ_LIB?=$(HOME)/lib
ifeq ($(wildcard ../local.conf),../local.conf)
-include ../local.conf
endif
CXXFLAGS += -std=c++17 -O0 -g
CXXFLAGS += -I$(BOOST_INCLUDE) -I$(CRYPTOPP_INCLUDE) -I$(OPENSSL_INCLUDE) -I$(LIBZ_INCLUDE)
LDFLAGS+=$(BOOST_LIB)/libboost_regex.a $(BOOST_LIB)/libboost_iostreams.a $(BOOST_LIB)/libboost_system.a
LDFLAGS+=$(CRYPTOPP_LIB)/libcryptopp.a
LDFLAGS+=$(OPENSSL_LIB)/libssl.a $(OPENSSL_LIB)/libcrypto.a
LDFLAGS+=$(LIBZ_LIB)/libz.a
TARGET=libsignedpkg.a
SOURCE=$(wildcard *.cc)
HEADERS=$(wildcard *.hh *.hxx)
OBJECTS=$(subst .cc,.o,$(SOURCE))
WITHOUT_TESTS=$(patsubst test_%.o,,$(OBJECTS))
TESTSOURCE=$(wildcard test_*.cc)
TESTOBJECTS=$(subst .cc,.o,$(TESTSOURCE))
TESTS=$(subst .cc,,$(TESTSOURCE))
all: $(TARGET)
%.o: %.cc %.hh
$(CXX) $(CXXFLAGS) -c $<
$(TARGET): $(WITHOUT_TESTS)
ar -rc $@ $^
.PHONY: clean install uninstall test
clean:
rm -f $(TARGET) *.o *.a
rm -f $(TESTS)
install: $(TARGET)
-mkdir -p $(PREFIX)/include/pEp
cp $(HEADERS) $(PREFIX)/include/pEp/
cp $(TARGET) $(PREFIX)/lib/
uninstall:
cd $(PREFIX)/include && rm -f $(HEADERS)
cd $(PREFIX)/lib && rm -f $(TARGET)
test_%: test_%.o $(TARGET)
$(CXX) $(LDFLAGS) $< $(TARGET) -o $@
test: $(TESTS)
. run_tests.sh $(TESTS)
tags: $(SOURCE) $(HEADERS)
ctags $(SOURCE) $(HEADERS)
local.conf:
@echo PREFIX=$(PREFIX) > local.conf
@echo >> local.conf
@echo BOOST_INCLUDE=$(BOOST_INCLUDE) >> local.conf
@echo BOOST_LIB=$(BOOST_LIB) >> local.conf
@echo >> local.conf
@echo CRYPTOPP_INCLUDE=$(CRYPTOPP_INCLUDE) >> local.conf
@echo CRYPTOPP_LIB=$(CRYPTOPP_LIB) >> local.conf
@echo >> local.conf
@echo OPENSSL_INCLUDE=$(OPENSSL_INCLUDE) >> local.conf
@echo OPENSSL_LIB=$(OPENSSL_LIB) >> local.conf