#Titan GNU Makefile
###################

MSSDK = C:/progra~1/micros~6

CC = gcc
WARNINGS = -Wall #-pedantic
DEFINES = 
CFLAGS = $(WARNINGS) -O2 -c -I$(MSSDK)/include -I.
LFLAGS = $(WARNINGS)

all: obj

clean:
	rm -rf ./obj/*
	rm -f ./titan*

obj:
	mkdir obj

win32: standard i386 winsrc winasm
	$(CC) $(LFLAGS) obj/sh2.o obj/debug.o obj/smpc.o obj/scu.o obj/m68k.o obj/settings.o obj/dynamap.o obj/emu.o obj/mem.o obj/pad.o obj/win.o obj/i386.o obj/dynalib.obj obj/gen68k.obj -o titan.exe

standard: sh2.c sh2.h smpc.c smpc.h scu.c scu.h settings.c emu.c m68k.c m68k.h dynamap.c dynamap.h debug.c debug.h mem.c mem.h
	$(CC) $(CFLAGS) sh2.c -o obj/sh2.o
	$(CC) $(CFLAGS) smpc.c -o obj/smpc.o
	$(CC) $(CFLAGS) scu.c -o obj/scu.o
	$(CC) $(CFLAGS) settings.c -o obj/settings.o
	$(CC) $(CFLAGS) emu.c -o obj/emu.o
	$(CC) $(CFLAGS) m68k.c -o obj/m68k.o
	$(CC) $(CFLAGS) dynamap.c -o obj/dynamap.o
	$(CC) $(CFLAGS) debug.c -o obj/debug.o
	$(CC) $(CFLAGS) mem.c -o obj/mem.o

i386: cpu/i386/i386.c
	$(CC) $(CFLAGS) cpu/i386/i386.c -o obj/i386.o

winsrc: win32/pad.c pad.h win32/win.c win32/gui.h
	$(CC) $(CFLAGS) win32/pad.c -o obj/pad.o
	$(CC) $(CFLAGS) win32/win.c -o obj/win.o

winasm: cpu/i386/dynalib.asm cpu/i386/gen68k.asm
	nasm -f win32 cpu/i386/dynalib.asm -o obj/dynalib.obj
	nasm -f win32 cpu/i386/gen68k.asm -o obj/gen68k.obj

#windef:
#	$(DEFINES) = -DWIN32

