aes/Makefile
Antoine 9bf38eca5a enhance pandoc documentation generation
pass metadata and configuration with yaml file instead to put it into makefile and markdown file
This permit pretty mardown rendering into gitea GUI
2020-04-29 21:12:09 +02:00

78 lines
2.0 KiB
Makefile

.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 --defaults=pandocConfig.yaml