No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. SOURCE=null
  2. QUOI=null
  3. default:
  4. @echo "Specifiez une cible [secure|unsecure|compile|exec|exec_secure|exec_unsecure|clean]"
  5. secure:
  6. @sed -i 's/#define SECURISED (0)/#define SECURISED (1)/g' Interpreteur/Tables/tables.c InterpreteurRegistres/Tables/tables.c Compilateur/Lex_Yacc/as.y
  7. @sed -i 's/constant SECURISED : boolean := false;/constant SECURISED : boolean := true;/g' Processeur/Processeur.srcs/sources_1/new/System.vhd
  8. unsecure:
  9. @sed -i 's/#define SECURISED (1)/#define SECURISED (0)/g' Interpreteur/Tables/tables.c InterpreteurRegistres/Tables/tables.c Compilateur/Lex_Yacc/as.y
  10. @sed -i 's/constant SECURISED : boolean := true;/constant SECURISED : boolean := false;/g' Processeur/Processeur.srcs/sources_1/new/System.vhd
  11. compile:
  12. ifeq ($(QUOI),null)
  13. @echo "USAGE : make compile QUOI=\"[compilateur|interpreteur|interpreteur_registres|cross_assembleur|all]\""
  14. else
  15. ifeq ($(QUOI),compilateur)
  16. @echo "Compilation du compilateur"
  17. $(MAKE) -C Compilateur build
  18. @echo "Compilation terminée"
  19. else ifeq ($(QUOI),cross_assembleur)
  20. @echo "Compilation du CrossAssembleur"
  21. $(MAKE) -C CrossAssembleur build
  22. @echo "Compilation terminée"
  23. else ifeq ($(QUOI),interpreteur)
  24. @echo "Compilation de l'interpreteur"
  25. $(MAKE) -C Interpreteur build
  26. @echo "Compilation terminée"
  27. else ifeq ($(QUOI),interpreteur_registres)
  28. @echo "Compilation de l'interpreteur_registres"
  29. $(MAKE) -C InterpreteurRegistres build
  30. @echo "Compilation terminée"
  31. else ifeq ($(QUOI),all)
  32. @echo "Compilation du compilateur"
  33. $(MAKE) -C Compilateur build
  34. @echo "Compilation terminée"
  35. @echo "Compilation de l'interpreteur"
  36. $(MAKE) -C Interpreteur build
  37. @echo "Compilation terminée"
  38. @echo "Compilation du CrossAssembleur"
  39. $(MAKE) -C CrossAssembleur build
  40. @echo "Compilation terminée"
  41. @echo "Compilation de l'interpreteur_registres"
  42. $(MAKE) -C InterpreteurRegistres build
  43. @echo "Compilation terminée"
  44. else
  45. @echo "USAGE : make compile QUOI=\"[compilateur|interpreteur|interpreteur_registres|cross_assembleur|all]\""
  46. endif
  47. endif
  48. clean:
  49. $(MAKE) -C Compilateur clean
  50. $(MAKE) -C Interpreteur clean
  51. $(MAKE) -C InterpreteurRegistres clean
  52. $(MAKE) -C CrossAssembleur clean
  53. @rm -f ./*.memasm ./*.regasm ./*.bin
  54. exec_secure: secure compile exec
  55. exec_unsecure: unsecure compile exec
  56. exec:
  57. ifeq ($(SOURCE),null)
  58. @echo "USAGE : make exec SOURCE=\"file_name\" QUOI=\"[compile|interprete|interprete_registres|cross_assemble|load|all]\""
  59. else
  60. ifeq ($(QUOI),null)
  61. @echo "USAGE : make exec SOURCE=\"file_name\" QUOI=\"[compile|interprete|interprete_registres|cross_assemble|load|all]\""
  62. else
  63. ifeq ($(QUOI),compile)
  64. @echo "Compilation"
  65. cat $(SOURCE).c | Compilateur/rondoudou_gcc
  66. @mv output.txt $(SOURCE).memasm
  67. @echo "Compilation terminée"
  68. else ifeq ($(QUOI),interprete)
  69. @echo "Interpretation"
  70. Interpreteur/rondoudou_interpreter $(SOURCE).memasm
  71. @echo "Interpretation terminée"
  72. else ifeq ($(QUOI),interprete_registres)
  73. @echo "Interpretation registres"
  74. InterpreteurRegistres/rondoudou_interpreter_registres $(SOURCE).regasm
  75. @echo "Interpretation registres terminée"
  76. else ifeq ($(QUOI),cross_assemble)
  77. @echo "CrossAssemblage"
  78. cat $(SOURCE).memasm | CrossAssembleur/rondoudou_cross_assembleur
  79. @mv output.asm $(SOURCE).regasm
  80. @mv output.bin $(SOURCE).bin
  81. @echo "CrossAssemblage terminé"
  82. else ifeq ($(QUOI),load)
  83. @echo "Chargement du binaire"
  84. @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
  85. @mv $(SOURCE).tmp.vhd Processeur/Processeur.srcs/sources_1/new/MemoireInstructions.vhd
  86. @echo "Chargement du binaire terminé"
  87. else ifeq ($(QUOI),all)
  88. @echo "Compilation"
  89. cat $(SOURCE).c | Compilateur/rondoudou_gcc
  90. @mv output.txt $(SOURCE).memasm
  91. @echo "Compilation terminée"
  92. @echo "CrossAssemblage"
  93. cat $(SOURCE).memasm | CrossAssembleur/rondoudou_cross_assembleur
  94. @mv output.asm $(SOURCE).regasm
  95. @mv output.bin $(SOURCE).bin
  96. @echo "CrossAssemblage terminé"
  97. @echo "Chargement du binaire"
  98. @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
  99. @mv $(SOURCE).tmp.vhd Processeur/Processeur.srcs/sources_1/new/MemoireInstructions.vhd
  100. @echo "Chargement du binaire terminé"
  101. else
  102. @echo "USAGE : make exec SOURCE=\"file_name\" QUOI=\"[compile|interprete|interprete_registres|cross_assemble|load|all]\""
  103. endif
  104. endif
  105. endif