all : interp1 interp2 interp1.ppc : little.tab.c lex.yy.o little.h little.s gcc -arch ppc -o interp1.ppc little.s lex.yy.o little.tab.c interp1 : little.tab.c lex.yy.o little.h little.o gcc -o interp1 little.o lex.yy.o little.tab.c lex.yy.c : little.flex little.tab.h flex little.flex little.tab.c little.tab.h : little.y bison -d little.y little.s: little.c ../../ccomp little.c interp2 : little_interp.ml little_syntax.cmo little_lex.cmo little.cmo ocamlc -o interp2 \ little.cmo little_syntax.cmo little_lex.cmo little_interp.ml .SUFFIXES: # Necessary to avoid that yacc is called on the .y file .SUFFIXES: .ml .mli .cmo .cmi .c .o .mli.cmi : ocamlc -c $*.mli .ml.cmo : ocamlc -c $*.ml .c.o : gcc -c $*.c little_syntax.ml little_syntax.mli : little_syntax.mly little.cmo ocamlyacc little_syntax.mly little_syntax.cmo : little_syntax.cmi little_lex.cmo : little_lex.cmi little_lex.ml : little_lex.mll ocamllex little_lex.mll clean : rm -f little_lex.ml little_syntax.ml little_syntax.mli \ *.cmo *.cmi interp[1234] *.o *.s little.tab.c lex.yy.c \ little.tab.h *.output *.log *.pdf *.dvi *.aux