
all: interpret

# -- LINKING --

interpret: p.main.o p.basic.o p.struct.o p.image.o parse_actions.o run_actions.o build_in.o p.value_location.o p.script_parser.o
	g++ -D_REENTRANT -O2 p.main.o p.basic.o p.struct.o p.image.o parse_actions.o run_actions.o build_in.o p.value_location.o p.script_parser.o -o interpret -lpthread -Wall -fno-strict-aliasing

# -- COMPILE --

p.main.o: p.main.cc
	g++ -D_REENTRANT -O2 -c p.main.cc -o p.main.o -Wall -fno-strict-aliasing

p.basic.o: p.basic.cc
	g++ -D_REENTRANT -O2 -c p.basic.cc -o p.basic.o -Wall -fno-strict-aliasing

p.struct.o: p.struct.cc
	g++ -D_REENTRANT -O2 -c p.struct.cc -o p.struct.o -Wall -fno-strict-aliasing

p.image.o: p.image.cc
	g++ -D_REENTRANT -O2 -c p.image.cc -o p.image.o -Wall

parse_actions.o: p.script_parser.h parse_actions.cc
	g++ -D_REENTRANT -O2 -c parse_actions.cc -o parse_actions.o -Wall -fno-strict-aliasing

run_actions.o: p.script_parser.h run_actions.cc
	g++ -D_REENTRANT -O2 -c run_actions.cc -o run_actions.o -Wall -fno-strict-aliasing

build_in.o: p.script_parser.h build_in.cc
	g++ -D_REENTRANT -O2 -c build_in.cc -o build_in.o -Wall -fno-strict-aliasing

p.value_location.o: p.value_location.cc
	g++ -D_REENTRANT -O2 -c p.value_location.cc -o p.value_location.o -Wall -fno-strict-aliasing

p.script_parser.o: p.script_parser.cc
	g++ -D_REENTRANT -O2 -c p.script_parser.cc -o p.script_parser.o -Wall -fno-strict-aliasing

# -- PROCESS --

p.main.cc: p.main.h main.cc
	./process main.cc > p.main.cc

p.main.h: main.h p.script_parser.h
	./process main.h > p.main.h

p.basic.cc: p.basic.h basic.cc
	./process basic.cc > p.basic.cc

p.basic.h: basic.h
	./process basic.h > p.basic.h

p.struct.cc: p.struct.h struct.cc
	./process struct.cc > p.struct.cc

p.struct.h: struct.h p.basic.h
	./process struct.h > p.struct.h

p.image.cc: p.image.h image.cc
	./process image.cc > p.image.cc

p.image.h: image.h p.struct.h
	./process image.h > p.image.h

p.value_location.cc: p.script_parser.h value_location.cc
	./process value_location.cc > p.value_location.cc

p.script_parser.cc: p.script_parser.h script_parser.cc
	./process script_parser.cc > p.script_parser.cc

p.script_parser.h: p.struct.h p.image.h script_parser.h parse_actions.h run_actions.h build_in.h
	./process script_parser.h > p.script_parser.h

