default: build preprocessing0 preprocessing1 

build: ot_blinds.cpp ot_blinds.h
	g++ -DECCLVL=251 -I ~/OTExtension/extern/ENCRYPTO_utils/src/ -I ~/OTExtension/ -O3 -DNDEBUG -std=gnu++17 -o ot_blinds.cpp.o -c ot_blinds.cpp
	g++ -O3 -DNDEBUG ot_blinds.cpp.o -o OT external/libaby.a external/libencrypto_utils.a -lstdc++fs external/libotextension.a external/libencrypto_utils.a external/librelic_s.a -lpthread -l boost_system -l boost_thread -l gmp -l gmpxx -l crypto

debug: ot_blinds.cpp ot_blinds.h
	g++ -DECCLVL=251 -I ~/OTExtension/extern/ENCRYPTO_utils/src/ -I ~/OTExtension/ -O3 -g -std=gnu++17 -o ot_blinds.cpp.o -c ot_blinds.cpp
	g++ -O3 -g ot_blinds.cpp.o -o OT external/libaby.a external/libencrypto_utils.a -lstdc++fs external/libotextension.a external/libencrypto_utils.a external/librelic_s.a -lpthread -l boost_system -l boost_thread -l gmp -l gmpxx -l crypto

#clean:
#	rm ot_blinds.cpp.o
#	rm OT

CXX = g++
CXXFLAGS = -g -march=native -std=c++17 -Wall -pedantic -fopenmp -O3 -Wno-ignored-attributes -pthread
LIBS = -lbsd -lboost_system -lboost_thread -pthread
FLAGS = -DBOOST_ERROR_CODE_HEADER_ONLY #-DDEBUG 

# OPENSSL_INCLUDE ?= -I/usr/include/openssl
# CXXFLAGS += $(OPENSSL_INCLUDE)
# OPENSSL_LIBS ?= -lcrypto
# LIBS += $(OPENSSL_LIBS)

#BINDIR = bin 

all: directories preprocessing0 preprocessing1 
 
preprocessing0: preprocessing.cpp  #dpf++/dpf.h  
	$(CXX) $(CXXFLAGS) -o preprocessing0 preprocessing.cpp $(LIBS) $(FLAGS) -DPARTY=0 -I.

preprocessing1: preprocessing.cpp #dpf++/dpf.h 
	$(CXX) $(CXXFLAGS) -o preprocessing1 preprocessing.cpp $(LIBS) $(FLAGS) -DPARTY=1 -I.

docs:
	doxygen Doxyfile

.PHONY: directories

directories: $(BINDIR)

# $(BINDIR):
# 	mkdir -p $(BINDIR)

clean:
	rm -f preprocessing1 preprocessing0
	rm ot_blinds.cpp.o
	rm OT
