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.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. SOURCE=null
  2. WHAT=null
  3. default:
  4. @echo "Specify target [secure|unsecure|build|exec|exec_secure|exec_unsecure|clean]"
  5. secure:
  6. @sed -i 's/#define SECURED (0)/#define SECURED (1)/g' Interpreteur/Tables/tables.c InterpreteurRegistres/Tables/tables.c Compilateur/Lex_Yacc/as.y
  7. @sed -i 's/constant SECURED : boolean := false;/constant SECURED : boolean := true;/g' Processeur/Processeur.srcs/sources_1/new/System.vhd
  8. unsecure:
  9. @sed -i 's/#define SECURED (1)/#define SECURED (0)/g' Interpreteur/Tables/tables.c InterpreteurRegistres/Tables/tables.c Compilateur/Lex_Yacc/as.y
  10. @sed -i 's/constant SECURED : boolean := true;/constant SECURED : boolean := false;/g' Processeur/Processeur.srcs/sources_1/new/System.vhd
  11. build:
  12. ifeq ($(WHAT),null)
  13. @echo "USAGE : make build WHAT=\"[compiler|interpreter|interpreter_registers|cross_assembler|all]\""
  14. else
  15. ifeq ($(WHAT),compiler)
  16. @echo "Building compiler"
  17. $(MAKE) -C Compilateur build
  18. @echo "Compiler built"
  19. else ifeq ($(WHAT),cross_assembler)
  20. @echo "Building CrossAssembler"
  21. $(MAKE) -C CrossAssembleur build
  22. @echo "CrossAssembler built"
  23. else ifeq ($(WHAT),interpreter)
  24. @echo "Building interpreter"
  25. $(MAKE) -C Interpreteur build
  26. @echo "Interpreter built"
  27. else ifeq ($(WHAT),interpreter_registers)
  28. @echo "Building interpreter_registers"
  29. $(MAKE) -C InterpreteurRegistres build
  30. @echo "Interpreter_registers built"
  31. else ifeq ($(WHAT),all)
  32. @echo "Building compiler"
  33. $(MAKE) -C Compilateur build
  34. @echo "Compiler built"
  35. @echo "Building interpreter"
  36. $(MAKE) -C Interpreteur build
  37. @echo "Interpreter built"
  38. @echo "Building CrossAssembler"
  39. $(MAKE) -C CrossAssembleur build
  40. @echo "CrossAssembler built"
  41. @echo "Building interpreter_registers"
  42. $(MAKE) -C InterpreteurRegistres build
  43. @echo "Interpreter_registers built"
  44. else
  45. @echo "USAGE : make build WHAT=\"[compiler|interpreter|interpreter_registers|cross_assembler|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\" WHAT=\"[compile|interprete|interprete_registers|cross_assemble|load|all]\""
  59. else
  60. ifeq ($(WHAT),null)
  61. @echo "USAGE : make exec SOURCE=\"file_name\" WHAT=\"[compile|interprete|interprete_registers|cross_assemble|load|all]\""
  62. else
  63. ifeq ($(WHAT),compile)
  64. @echo "Building program"
  65. cat $(SOURCE).c | Compilateur/compiler
  66. @mv output.txt $(SOURCE).memasm
  67. @echo "Program built"
  68. else ifeq ($(WHAT),interprete)
  69. @echo "Interpreting program"
  70. Interpreteur/interpreter $(SOURCE).memasm
  71. @echo "Program interpreted"
  72. else ifeq ($(WHAT),interprete_registers)
  73. @echo "Interpreting registers program"
  74. InterpreteurRegistres/interpreter_registers $(SOURCE).regasm
  75. @echo "Registers program interpreted"
  76. else ifeq ($(WHAT),cross_assemble)
  77. @echo "CrossAssembling program"
  78. cat $(SOURCE).memasm | CrossAssembleur/cross_assembler
  79. @mv output.asm $(SOURCE).regasm
  80. @mv output.bin $(SOURCE).bin
  81. @echo "Program CrossAssembled"
  82. else ifeq ($(WHAT),load)
  83. @echo "Loading binairy program"
  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 "Binairy program loaded"
  87. else ifeq ($(WHAT),all)
  88. @echo "Building program"
  89. cat $(SOURCE).c | Compilateur/compiler
  90. @mv output.txt $(SOURCE).memasm
  91. @echo "Program built"
  92. @echo "CrossAssembling program"
  93. cat $(SOURCE).memasm | CrossAssembleur/cross_assembler
  94. @mv output.asm $(SOURCE).regasm
  95. @mv output.bin $(SOURCE).bin
  96. @echo "Program CrossAssembled"
  97. @echo "Loading binairy program"
  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 "Binairy program loaded"
  101. else
  102. @echo "USAGE : make exec SOURCE=\"file_name\" WHAT=\"[compile|interprete|interprete_registers|cross_assemble|load|all]\""
  103. endif
  104. endif
  105. endif