Compilateur/Makefile
2021-06-14 09:04:23 +02:00

94 lines
2.7 KiB
Makefile

default :
@echo "Spécifiez une cible"
###########################
### NETTOYAGE ###
###########################
clean : clean_Symboles clean_Instructions clean_Lex_Yacc clean_Fonctions
@rm -f rondoudou_gcc
@rm -f output.txt
clean_Symboles:
@rm -f Tables/Symboles/*.o
@rm -f Tables/Symboles/test
clean_Instructions:
@rm -f Tables/Instructions/*.o
@rm -f Tables/Instructions/test
clean_Fonctions:
@rm -f Tables/Fonctions/*.o
@rm -f Tables/Fonctions/test
clean_Lex_Yacc:
@rm -f Lex_Yacc/as.output Lex_Yacc/as.tab.* Lex_Yacc/lex.yy.*
###########################
### COMPILATION ###
###########################
build : clean build_Symboles build_Instructions build_Lex_Yacc build_Fonctions
gcc Lex_Yacc/as.tab.o Lex_Yacc/lex.yy.o Tables/Instructions/tab_instruc.o Tables/Symboles/table_symboles.o Tables/Fonctions/tab_fonctions.o -ll -o rondoudou_gcc
build_Symboles: clean_Symboles
gcc -c Tables/Symboles/table_symboles.c -o Tables/Symboles/table_symboles.o
build_Instructions: clean_Instructions
gcc -c Tables/Instructions/tab_instruc.c -o Tables/Instructions/tab_instruc.o
build_Fonctions : clean_Fonctions
gcc -c Tables/Fonctions/tab_fonctions.c -o Tables/Fonctions/tab_fonctions.o
build_Lex_Yacc: clean_Lex_Yacc
bison -g -v -d -t -b Lex_Yacc/as Lex_Yacc/as.y
flex -o Lex_Yacc/lex.yy.c Lex_Yacc/al.lex
gcc -c Lex_Yacc/as.tab.c -o Lex_Yacc/as.tab.o
gcc -c Lex_Yacc/lex.yy.c -o Lex_Yacc/lex.yy.o
###########################
### TESTS ###
###########################
test_Symboles: build_Symboles
gcc -c Tables/Symboles/test.c -o Tables/Symboles/test.o
gcc Tables/Symboles/test.o Tables/Symboles/table_symboles.o -o Tables/Symboles/test
Tables/Symboles/test
test_Instructions: build_Instructions
gcc -c Tables/Instructions/test.c -o Tables/Instructions/test.o
gcc Tables/Instructions/test.o Tables/Instructions/tab_instruc.o -o Tables/Instructions/test
Tables/Instructions/test
test_Fonctions: build_Fonctions
gcc -c Tables/Fonctions/test.c -o Tables/Fonctions/test.o
gcc Tables/Fonctions/test.o Tables/Fonctions/tab_fonctions.o -o Tables/Fonctions/test
Tables/Fonctions/test
test: build
cat Fichiers_Tests/progC | ./rondoudou_gcc
###########################
### EDITION ###
###########################
edit_Lex_Yacc:
pluma Lex_Yacc/al.lex Lex_Yacc/as.y &
edit_Symboles:
pluma Tables/Symboles/table_symboles.c Tables/Symboles/table_symboles.h &
edit_Instructions:
pluma Tables/Instructions/tab_instruc.c Tables/Instructions/tab_instruc.h &
edit_Progs:
pluma Fichiers_Tests/progC &
edit_Fonctions :
pluma Tables/Fonctions/tab_fonctions.c Tables/Fonctions/tab_fonctions.h &
edit: edit_Lex_Yacc edit_Symboles edit_Instructions edit_Progs edit_Fonctions