SOURCE=null QUOI=null default: @echo "Specifiez une cible [compile|clean|exec]" compile: ifeq ($(QUOI),null) @echo "USAGE : make compile QUOI=\"[compilateur|cross_assembleur|all]\"" else ifeq ($(QUOI),compilateur) @echo "Compilation du compilateur" $(MAKE) -C Compilateur build @echo "Compilation terminée" else ifeq ($(QUOI),cross_asembleur) @echo "Compilation du CrossAssembleur" $(MAKE) -C CrossAssembleur build @echo "Compilation terminée" else ifeq ($(QUOI),all) @echo "Compilation du compilateur" $(MAKE) -C Compilateur build @echo "Compilation terminée" @echo "Compilation du CrossAssembleur" $(MAKE) -C CrossAssembleur build @echo "Compilation terminée" else @echo "USAGE : make compile QUOI=\"[compilateur|cross_assembleur|all]\"" endif endif clean: $(MAKE) -C Compilateur clean $(MAKE) -C CrossAssembleur clean exec: ifeq ($(SOURCE),null) @echo "USAGE : make exec SOURCE=\"file_name\" QUOI=\"[compile|cross_assemble|load|all]\"" else ifeq ($(QUOI),null) @echo "USAGE : make exec SOURCE=\"file_name\" QUOI=\"[compile|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),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|cross_assemble|load|all]\"" endif endif