|
# this file is under GNU GPL 3.0, see LICENSE.txt
|
|
# see LICENSE.txt
|
|
|
|
DOWNLOADCLIENT?=../../downloadclient
|
|
|
|
BOOST_INCLUDE?=$(HOME)/dev/boost_1_72_0
|
|
BOOST_LIB?=$(HOME)/dev/boost_1_72_0/stage/lib
|
|
|
|
CRYPTOPP_INCLUDE?=/opt/local/include
|
|
CRYPTOPP_LIB?=/opt/local/lib
|
|
|
|
OPENSSL_INCLUDE?=$(HOME)/include
|
|
OPENSSL_LIB?=$(HOME)/lib
|
|
|
|
SIGNING_IDENTITY?=68AD28395D8090C2A8ACDD3A31FA6735C8DAE2F4
|
|
|
|
ifeq ($(wildcard local.conf),local.conf)
|
|
-include local.conf
|
|
endif
|
|
|
|
CC?=cc
|
|
CXX?=c++
|
|
CFLAGS+=-std=c17
|
|
CXXFLAGS+=-I$(BOOST_INCLUDE) -I$(CRYPTOPP_INCLUDE) -I$(OPENSSL_INCLUDE) -std=c++17
|
|
|
|
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+=$(DOWNLOADCLIENT)/libdownloadclient.a
|
|
LDFLAGS+=-lobjc -framework Foundation -framework AppKit
|
|
|
|
ifdef NDEBUG
|
|
CFLAGS+=-O3 -DNDEBUG
|
|
CXXFLAGS+=-O3 -DNDEBUG
|
|
else
|
|
CFLAGS+=-O0 -g
|
|
CXXFLAGS+=-O0 -g
|
|
endif
|
|
|
|
TARGET=foundation.pEp.adapter.macOS
|
|
INSTALL_TARGET=/Library/Application Support/pEp
|
|
|
|
ALL_SOURCE=$(wildcard *.m) $(wildcard *.mm)
|
|
DEPENDS=$(subst .m,.d,$(subst .mm,.d,$(ALL_SOURCE)))
|
|
ALL_OBJECTS=$(subst .d,.o,$(DEPENDS))
|
|
|
|
all: $(TARGET)
|
|
|
|
%.d: %.m
|
|
@set -e; rm -f $@; \
|
|
$(CC) -MM $(CPPFLAGS) $(CFLAGS) $< > $@.$$$$; \
|
|
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
|
rm -f $@.$$$$
|
|
|
|
%.d: %.mm
|
|
@set -e; rm -f $@; \
|
|
$(CC) -MM $(CPPFLAGS) $(CFLAGS) $< > $@.$$$$; \
|
|
sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
|
|
rm -f $@.$$$$
|
|
|
|
# If only the goal 'clean' is given, do not generate and include the '%.d' files.
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
-include $(DEPENDS)
|
|
endif
|
|
|
|
$(TARGET): $(ALL_OBJECTS)
|
|
$(CXX) $(LDFLAGS) -o $@ $^
|
|
ifdef NDEBUG
|
|
strip $@
|
|
endif
|
|
|
|
%.o: %.mm
|
|
$(CXX) $(CXXFLAGS) -c -o $@ $^
|
|
|
|
.PHONY: clean uninstall install unload load
|
|
|
|
load:
|
|
launchctl load /Library/LaunchAgents/foundation.pEp.adapter.macOS.plist
|
|
|
|
unload:
|
|
launchctl unload /Library/LaunchAgents/foundation.pEp.adapter.macOS.plist
|
|
|
|
install: $(TARGET)
|
|
sudo install -d "$(INSTALL_TARGET)/Updater"
|
|
sudo install -c foundation.pEp.adapter.macOS "$(INSTALL_TARGET)/foundation.pEp.adapter.macOS"
|
|
sudo install -c foundation.pEp.adapter.macOS.plist "/Library/LaunchAgents/foundation.pEp.adapter.macOS.plist"
|
|
sudo install -c test.plist "$(INSTALL_TARGET)/Updater/test.plist"
|
|
sudo cp -f *.der "$(INSTALL_TARGET)/Updater/"
|
|
|
|
uninstall:
|
|
sudo rm -f "$(INSTALL_TARGET)/foundation.pEp.adapter.macOS"
|
|
sudo rm -f "/Library/LaunchAgents/foundation.pEp.adapter.macOS.plist"
|
|
sudo rm -f "/Library/Application Support/pEp/Updater/test.plist"
|
|
|
|
clean:
|
|
rm -f *.o *.d *.d.* $(TARGET)
|
|
|
|
local.conf:
|
|
@echo DOWNLOADCLIENT=$(DOWNLOADCLIENT) > 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
|
|
@echo >> local.conf
|
|
@echo SIGNING_IDENTITY=$(SIGNING_IDENTITY) >> local.conf
|
|
|