Antoine
9bf38eca5a
pass metadata and configuration with yaml file instead to put it into makefile and markdown file This permit pretty mardown rendering into gitea GUI
78 lines
2.0 KiB
Makefile
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
|
|
|