SOURCE=null WHAT=null default: @echo "Specify target [secure|unsecure|build|exec|exec_secure|exec_unsecure|clean]" secure: @sed -i 's/#define SECURED (0)/#define SECURED (1)/g' Interpreteur/Tables/tables.c InterpreteurRegistres/Tables/tables.c Compilateur/Lex_Yacc/as.y @sed -i 's/constant SECURED : boolean := false;/constant SECURED : boolean := true;/g' Processeur/Processeur.srcs/sources_1/new/System.vhd unsecure: @sed -i 's/#define SECURED (1)/#define SECURED (0)/g' Interpreteur/Tables/tables.c InterpreteurRegistres/Tables/tables.c Compilateur/Lex_Yacc/as.y @sed -i 's/constant SECURED : boolean := true;/constant SECURED : boolean := false;/g' Processeur/Processeur.srcs/sources_1/new/System.vhd build: ifeq ($(WHAT),null) @echo "USAGE : make build WHAT=\"[compiler|interpreter|interpreter_registers|cross_assembler|all]\"" else ifeq ($(WHAT),compiler) @echo "Building compiler" $(MAKE) -C Compilateur build @echo "Compiler built" else ifeq ($(WHAT),cross_assembler) @echo "Building CrossAssembler" $(MAKE) -C CrossAssembleur build @echo "CrossAssembler built" else ifeq ($(WHAT),interpreter) @echo "Building interpreter" $(MAKE) -C Interpreteur build @echo "Interpreter built" else ifeq ($(WHAT),interpreter_registers) @echo "Building interpreter_registers" $(MAKE) -C InterpreteurRegistres build @echo "Interpreter_registers built" else ifeq ($(WHAT),all) @echo "Building compiler" $(MAKE) -C Compilateur build @echo "Compiler built" @echo "Building interpreter" $(MAKE) -C Interpreteur build @echo "Interpreter built" @echo "Building CrossAssembler" $(MAKE) -C CrossAssembleur build @echo "CrossAssembler built" @echo "Building interpreter_registers" $(MAKE) -C InterpreteurRegistres build @echo "Interpreter_registers built" else @echo "USAGE : make build WHAT=\"[compiler|interpreter|interpreter_registers|cross_assembler|all]\"" endif endif clean: $(MAKE) -C Compilateur clean $(MAKE) -C Interpreteur clean $(MAKE) -C InterpreteurRegistres clean $(MAKE) -C CrossAssembleur clean @rm -f ./*.memasm ./*.regasm ./*.bin exec_secure: secure compile exec exec_unsecure: unsecure compile exec exec: ifeq ($(SOURCE),null) @echo "USAGE : make exec SOURCE=\"file_name\" WHAT=\"[compile|interprete|interprete_registers|cross_assemble|load|all]\"" else ifeq ($(WHAT),null) @echo "USAGE : make exec SOURCE=\"file_name\" WHAT=\"[compile|interprete|interprete_registers|cross_assemble|load|all]\"" else ifeq ($(WHAT),compile) @echo "Building program" cat $(SOURCE).c | Compilateur/rondoudou_gcc @mv output.txt $(SOURCE).memasm @echo "Program built" else ifeq ($(WHAT),interprete) @echo "Interpreting program" Interpreteur/rondoudou_interpreter $(SOURCE).memasm @echo "Program interpreted" else ifeq ($(WHAT),interprete_registers) @echo "Interpreting registers program" InterpreteurRegistres/rondoudou_interpreter_registers $(SOURCE).regasm @echo "Registers program interpreted" else ifeq ($(WHAT),cross_assemble) @echo "CrossAssembling program" cat $(SOURCE).memasm | CrossAssembleur/rondoudou_cross_assembler @mv output.asm $(SOURCE).regasm @mv output.bin $(SOURCE).bin @echo "Program CrossAssembled" else ifeq ($(WHAT),load) @echo "Loading binairy program" @sed -r "s/signal MEMORY : STD_LOGIC_VECTOR \(\(Mem_Size \* Nb_bits\)-1 downto 0\) := \"[01]*\";/signal MEMORY : STD_LOGIC_VECTOR \(\(Mem_Size \* Nb_bits\)-1 downto 0\) := $$(cat $(SOURCE).bin);/g" Processeur/Processeur.srcs/sources_1/new/MemoireInstructions.vhd > $(SOURCE).tmp.vhd @mv $(SOURCE).tmp.vhd Processeur/Processeur.srcs/sources_1/new/MemoireInstructions.vhd @echo "Binairy program loaded" else ifeq ($(WHAT),all) @echo "Building program" cat $(SOURCE).c | Compilateur/rondoudou_gcc @mv output.txt $(SOURCE).memasm @echo "Program built" @echo "CrossAssembling program" cat $(SOURCE).memasm | CrossAssembleur/rondoudou_cross_assembler @mv output.asm $(SOURCE).regasm @mv output.bin $(SOURCE).bin @echo "Program CrossAssembled" @echo "Loading binairy program" @sed -r "s/signal MEMORY : STD_LOGIC_VECTOR \(\(Mem_Size \* Nb_bits\)-1 downto 0\) := \"[01]*\";/signal MEMORY : STD_LOGIC_VECTOR \(\(Mem_Size \* Nb_bits\)-1 downto 0\) := $$(cat $(SOURCE).bin);/g" Processeur/Processeur.srcs/sources_1/new/MemoireInstructions.vhd > $(SOURCE).tmp.vhd @mv $(SOURCE).tmp.vhd Processeur/Processeur.srcs/sources_1/new/MemoireInstructions.vhd @echo "Binairy program loaded" else @echo "USAGE : make exec SOURCE=\"file_name\" WHAT=\"[compile|interprete|interprete_registers|cross_assemble|load|all]\"" endif endif endif