.PHONY: cryptomain.ex crypt.ex decrypt.ex GCXX_DEBUG=-ggdb CFLAGS=-Wall -Wextra --std=c++14 $(GCXX_DEBUG) LDFLAGS=-lcrypto CXX=g++ BIN_PATH=./bin LIB_PATH=./lib OBJ_PATH=./obj EXEC=$(BIN_PATH)/cryptomain.ex SRC=main.cpp JSONCPP_O=$(OBJ_PATH)/jsoncpp.o BASE64_O=$(OBJ_PATH)/base64.o cryptomain.ex: $(EXEC) # merge crypt and decrypt binary into cryptomain $(EXEC): $(SRC) *.hpp $(JSONCPP_O) $(BASE64_O) @echo "compilation de aes" @$(CXX) $(CFLAGS) $(LDFLAGS) -o $(EXEC) $(SRC) $(JSONCPP_O) $(BASE64_O) SOURCES_BASE64=$(wildcard $(LIB_PATH)/base64/base64.*) $(BASE64_O): $(SOURCES_BASE64) @echo "compilation de base64" @$(CXX) $(CFLAGS) -c $(LIB_PATH)/base64/base64.cpp -o $(BASE64_O) SOURCES_JSON_CPP :=$(LIB_PATH)/jsoncpp.cpp $(wildcard $(LIB_PATH)/*.h) $(JSONCPP_O): $(SOURCES_JSON_CPP) @echo "compilation de jsoncpp" @$(CXX) $(CFLAGS) -I ../lib/jsoncpp-master/include/ -c $(LIB_PATH)/jsoncpp.cpp -o $(JSONCPP_O) run: $(EXEC) @./$(EXEC) data/cryptomain/file # separate crypt and decrypt binary EXEC_DECRYPT=$(BIN_PATH)/decrypt.ex EXEC_CRYPT=$(BIN_PATH)/crypt.ex SRC_CRYPT=mainCrypt.cpp SRC_DECRYPT=mainDecrypt.cpp crypt.ex: $(EXEC_CRYPT) decrypt.ex: $(EXEC_DECRYPT) $(EXEC_CRYPT): $(SRC_CRYPT) *.hpp $(JSONCPP_O) $(BASE64_O) @echo "compilation de crypt.ex" @$(CXX) $(CFLAGS) $(LDFLAGS) -o $(EXEC_CRYPT) $(SRC_CRYPT) $(JSONCPP_O) $(BASE64_O) $(EXEC_DECRYPT): $(SRC_DECRYPT) *.hpp $(JSONCPP_O) $(BASE64_O) @echo "compilation de decrypt.ex" @$(CXX) $(CFLAGS) $(LDFLAGS) -o $(EXEC_DECRYPT) $(SRC_DECRYPT) $(JSONCPP_O) $(BASE64_O) run2: $(EXEC_CRYPT) $(EXEC_DECRYPT) @./$(EXEC_CRYPT) data/crypt_decrypt/file && ./$(EXEC_DECRYPT) data/crypt_decrypt/file.enc data/crypt_decrypt/file.key # debug target valgrind: @valgrind --leak-check=full --track-origins=yes ./$(EXEC) file # clean target clean: cleanO cleanB cleanO: @rm -rf $(OBJ_PATH)/*.o cleanB: @rm -rf $(BIN_PATH)/*.ex cleanD: @rm -f data/*.enc @rm -f data/*.dec @rm -f data/*.key doc: @pandoc -s -f markdown+emoji -t html \ --shift-heading-level-by=2 \ --wrap=preserve \ --toc \ --toc-depth=2 \ --highlight-style=tango \ -o readme.html readme.md