129 lines
4.6 KiB
Makefile
129 lines
4.6 KiB
Makefile
SOURCE=null
|
|
QUOI=null
|
|
|
|
default:
|
|
@echo "Specifiez une cible [secure|unsecure|compile|exec|exec_secure|exec_unsecure|clean]"
|
|
|
|
|
|
|
|
|
|
secure:
|
|
@sed -i 's/#define SECURISED (0)/#define SECURISED (1)/g' Interpreteur/Tables/tables.c InterpreteurRegistres/Tables/tables.c Compilateur/Lex_Yacc/as.y
|
|
@sed -i 's/constant SECURISED : boolean := false;/constant SECURISED : boolean := true;/g' Processeur/Processeur.srcs/sources_1/new/System.vhd
|
|
|
|
|
|
|
|
|
|
unsecure:
|
|
@sed -i 's/#define SECURISED (1)/#define SECURISED (0)/g' Interpreteur/Tables/tables.c InterpreteurRegistres/Tables/tables.c Compilateur/Lex_Yacc/as.y
|
|
@sed -i 's/constant SECURISED : boolean := true;/constant SECURISED : boolean := false;/g' Processeur/Processeur.srcs/sources_1/new/System.vhd
|
|
|
|
|
|
|
|
|
|
compile:
|
|
ifeq ($(QUOI),null)
|
|
@echo "USAGE : make compile QUOI=\"[compilateur|interpreteur|interpreteur_registres|cross_assembleur|all]\""
|
|
else
|
|
ifeq ($(QUOI),compilateur)
|
|
@echo "Compilation du compilateur"
|
|
$(MAKE) -C Compilateur build
|
|
@echo "Compilation terminée"
|
|
else ifeq ($(QUOI),cross_assembleur)
|
|
@echo "Compilation du CrossAssembleur"
|
|
$(MAKE) -C CrossAssembleur build
|
|
@echo "Compilation terminée"
|
|
else ifeq ($(QUOI),interpreteur)
|
|
@echo "Compilation de l'interpreteur"
|
|
$(MAKE) -C Interpreteur build
|
|
@echo "Compilation terminée"
|
|
else ifeq ($(QUOI),interpreteur_registres)
|
|
@echo "Compilation de l'interpreteur_registres"
|
|
$(MAKE) -C InterpreteurRegistres build
|
|
@echo "Compilation terminée"
|
|
else ifeq ($(QUOI),all)
|
|
@echo "Compilation du compilateur"
|
|
$(MAKE) -C Compilateur build
|
|
@echo "Compilation terminée"
|
|
@echo "Compilation de l'interpreteur"
|
|
$(MAKE) -C Interpreteur build
|
|
@echo "Compilation terminée"
|
|
@echo "Compilation du CrossAssembleur"
|
|
$(MAKE) -C CrossAssembleur build
|
|
@echo "Compilation terminée"
|
|
@echo "Compilation de l'interpreteur_registres"
|
|
$(MAKE) -C InterpreteurRegistres build
|
|
@echo "Compilation terminée"
|
|
else
|
|
@echo "USAGE : make compile QUOI=\"[compilateur|interpreteur|interpreteur_registres|cross_assembleur|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\" QUOI=\"[compile|interprete|interprete_registres|cross_assemble|load|all]\""
|
|
else
|
|
ifeq ($(QUOI),null)
|
|
@echo "USAGE : make exec SOURCE=\"file_name\" QUOI=\"[compile|interprete|interprete_registres|cross_assemble|load|all]\""
|
|
else
|
|
ifeq ($(QUOI),compile)
|
|
@echo "Compilation"
|
|
cat $(SOURCE).c | Compilateur/rondoudou_gcc
|
|
@mv output.txt $(SOURCE).memasm
|
|
@echo "Compilation terminée"
|
|
else ifeq ($(QUOI),interprete)
|
|
@echo "Interpretation"
|
|
Interpreteur/rondoudou_interpreter $(SOURCE).memasm
|
|
@echo "Interpretation terminée"
|
|
else ifeq ($(QUOI),interprete_registres)
|
|
@echo "Interpretation registres"
|
|
InterpreteurRegistres/rondoudou_interpreter_registres $(SOURCE).regasm
|
|
@echo "Interpretation registres terminée"
|
|
else ifeq ($(QUOI),cross_assemble)
|
|
@echo "CrossAssemblage"
|
|
cat $(SOURCE).memasm | CrossAssembleur/rondoudou_cross_assembleur
|
|
@mv output.asm $(SOURCE).regasm
|
|
@mv output.bin $(SOURCE).bin
|
|
@echo "CrossAssemblage terminé"
|
|
else ifeq ($(QUOI),load)
|
|
@echo "Chargement du binaire"
|
|
@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 "Chargement du binaire terminé"
|
|
else ifeq ($(QUOI),all)
|
|
@echo "Compilation"
|
|
cat $(SOURCE).c | Compilateur/rondoudou_gcc
|
|
@mv output.txt $(SOURCE).memasm
|
|
@echo "Compilation terminée"
|
|
@echo "CrossAssemblage"
|
|
cat $(SOURCE).memasm | CrossAssembleur/rondoudou_cross_assembleur
|
|
@mv output.asm $(SOURCE).regasm
|
|
@mv output.bin $(SOURCE).bin
|
|
@echo "CrossAssemblage terminé"
|
|
@echo "Chargement du binaire"
|
|
@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 "Chargement du binaire terminé"
|
|
else
|
|
@echo "USAGE : make exec SOURCE=\"file_name\" QUOI=\"[compile|interprete|interprete_registres|cross_assemble|load|all]\""
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
|