OBJS = emuschool.o cpu.o gamepad.o generic_ram.o graphics.o input.o keyboard.o mapper.o mapper0.o mapper2.o mem_bus.o ppu.o tile.o
emu : ${OBJS}
	gcc -Wall -g ${OBJS}  -o emu -lggi

cpu.o : cpu.cpp cpu.h data_types.h
	gcc -Wall -g -c cpu.cpp

emuschool.o : emuschool.cpp data_types.h
	gcc -Wall -g -c  emuschool.cpp

gamepad.o : gamepad.cpp gamepad.h data_types.h
	gcc -Wall -g -c gamepad.cpp

input.o : input.cpp input.h data_types.h
	gcc -Wall -g -c input.cpp

keyboard.o : keyboard.cpp keyboard.h data_types.h
	gcc -Wall -g -c keyboard.cpp

mapper.o : mapper.cpp mapper.h data_types.h
	gcc -Wall -g -c mapper.cpp

mapper0.o : mapper0.cpp mapper0.h data_types.h
	gcc -Wall -g -c mapper0.cpp

mapper2.o : mapper2.cpp mapper2.h data_types.h
	gcc -Wall -g -c mapper2.cpp

mem_bus.o : mem_bus.cpp mem_bus.h data_types.h
	gcc -Wall -g -c mem_bus.cpp

ppu.o : ppu.cpp ppu.h data_types.h
	gcc -Wall -g -c ppu.cpp

tile.o : tile.cpp tile.h data_types.h
	gcc -Wall -g -c tile.cpp

clean:
	rm *.o
	rm emu
