include Makefile.conf

CC=gcc
OBJECTS = sope.o init.o dasm.o syscall.o hwr.o gpu.o fileio.o cpu_diff.o memio.o util.o vram.o pad.o gte.o cdrom.o spu.o vagdepack.o gui_console.o interpreter.o plugins.o mdec.o ${GUI_EXTRA_OBJS}
CFLAGS += -Idynarec/${MACHINE}
DDIRS = dynarec

all: ${OBJECTS} ${GTK_OBJECTS}
	for i in $(DDIRS); do \
		(cd $$i; [ -f Makefile ] && $(MAKE) all) \
	done; true
	${CC} -o ../sope ${CFLAGS} ${OBJECTS} ${OPCODES} ${LIBS} dynarec/libdynarec.a

clean:
	rm -f core *.o */*.a */*/*.o

#Dependencies
cdrom.o: cdrom.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h cdrom.h hwr.h /usr/include/assert.h fileio.h
cdrom2.o: cdrom2.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h hwr.h cdrom.h
contrib-main.o: contrib-main.c
contrib-syscall.o: contrib-syscall.c sope.h sope_defs.h \
 dynarec/dummy/context.h dynarec/dummy/dynrec.h
cpu_diff.o: cpu_diff.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h memio.h
dasm.o: dasm.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h tables.h
fileio.o: fileio.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h gui.h fileio.h
flow.o: flow.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h syscall.h pad.h
gpu.o: gpu.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h gpu.h gpu_defs.h renderer.h gpu_types.h \
 plugins.h memio.h vram.h gui.h gpu_getvars.h gpu_sprites.h \
 gpu_tiles.h gpu_polys.h gpu_lines.h gpu_misc.h
gte.o: gte.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h gte_defs.h gte_alg.h gte_cc.h
gtk_callbacks.o: gtk_callbacks.c gtk_callbacks.h gtk_interface.h \
 gtk_support.h sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h gui.h renderer.h gpu_types.h gpu.h plugins.h \
 sound.h
gtk_interface.o: gtk_interface.c gtk_callbacks.h gtk_interface.h \
 gtk_support.h sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h gui.h renderer.h gpu_types.h gpu.h plugins.h \
 sound.h
gui_console.o: gui_console.c gui_console.h gui.h sope.h sope_defs.h \
 dynarec/dummy/context.h dynarec/dummy/dynrec.h renderer.h gpu_types.h \
 gpu.h plugins.h fileio.h
gui_gtk.o: gui_gtk.c gui_gtk.h gui.h /usr/local/include/gtk/gtk.h \
 gtk_interface.h gtk_support.h sope.h sope_defs.h \
 dynarec/dummy/context.h dynarec/dummy/dynrec.h renderer.h gpu_types.h \
 gpu.h plugins.h sound.h
hwr.o: hwr.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h hwr.h cdrom.h spu.h gpu.h mdec.h
init.o: init.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h gui.h renderer.h gpu_types.h gpu.h plugins.h \
 sound.h
interpreter.o: interpreter.c sope.h sope_defs.h \
 dynarec/dummy/context.h dynarec/dummy/dynrec.h interpreter.h \
 cpu_diff.h memio.h gte.h pad.h syscall.h hwr.h cdrom.h \
 interpreter_bra.h interpreter_jmp.h
mdec.o: mdec.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h hwr.h
memio.o: memio.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h hwr.h pad.h
pad.o: pad.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h renderer.h gpu_types.h gpu.h plugins.h \
 keyboard.h
plugins.o: plugins.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h gui.h plugins.h renderer.h gpu_types.h gpu.h \
 sound.h
plugins_config.o: plugins_config.c
sope.o: sope.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h /usr/include/sys/time.h gui.h renderer.h \
 gpu_types.h gpu.h plugins.h sound.h spu.h init.h
spu.o: spu.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h hwr.h sound.h plugins.h
syscall.o: syscall.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h gui.h
util.o: util.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h
vagdepack.o: vagdepack.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h
vram.o: vram.c sope.h sope_defs.h dynarec/dummy/context.h \
 dynarec/dummy/dynrec.h vram.h
