CC        = gcc
CPP       = gcc -E
LDFLAGS   = 
CFLAGS    = -O3 -fomit-frame-pointer -Wall -Wno-unused -Wno-format -W -Wmissing-prototypes -Wstrict-prototypes -DGCCCONSTFUNC="__attribute__((const))" -fno-strength-reduce -D__inline__=inline -DSTATFS_NO_ARGS=2 -DSTATBUF_BAVAIL=f_bavail -DREGPARAM="__attribute__((regparm(3)))" -DX86_ASSEMBLY -DNDEBUG -DBUILD_68000 -DBUILD_COMPATIBLE
ASMOBJS   = machdep/X86.o
#CPUOBJS   = cpu_f0win.o cpu_f1win.o cpu_f2win.o cpu_f3win.o cpu_f4win.o cpu_f5win.o cpu_f6win.o cpu_f7win.o cpu_f8win.o cpu_f9win.o cpu_fAwin.o cpu_fBwin.o cpu_fCwin.o cpu_fDwin.o cpu_fEwin.o cpu_fFwin.o
CPUOBJS   = cpu0.o cpu1.o cpu2.o cpu3.o cpu4.o cpu5.o cpu6.o cpu7.o cpu8.o cpu9.o cpuA.o cpuB.o cpuC.o cpuD.o cpuE.o cpuF.o
DEBUGOBJS = debug.o
MATHLIB   = -lm

MINGW32   = d:/gnuwin32/mingw32
GNUWIN32  = d:/gnuwin32/b18

.SUFFIXES: .o .c .h .m .i

WINFLAGS=-L$(MINGW32)/lib/ -L$(GNUWIN32)/H-i386-cygwin32/i386-cygwin32/lib/ -luser32 -lgdi32 -lkernel32 -lshell32 -lwinmm -lcrtdll -ladvapi32 -lmingw32 -b pe-i386 -L$(GNUWIN32)/H-i386-cygwin32/lib/gcc-lib/i386-cygwin32/cygnus-2.7.2-970404/

INCDIRS = -Iinclude -I. -I$(MINGW32)/include/ -I$(MINGW32)/include/nonansi/ -I$(GNUWIN32)/H-i386-cygwin32/i386-cygwin32/include/

UAEOBJS = newcpu.o custom.o main.o sounddep/sound.o gfxutil.o \
        memory.o cia.o disk.o blitter.o audio.o picasso96.o missing.o \
        blitfunc.o blittable.o autoconf.o readcpu.o fpp.o p2c.o \
        cpustbl.o ersatz.o filesys.o hardfile.o keybuf.o expansion.o zfile.o cpudefs.o osdep/win32gui.o compiler.o uaelib.o machdep/support.o a1000.o serial.o osdep/win32.o osdep/posixemu.o osdep/parser.o osdep/joystick.o osdep/keyboard.o

OBJS = $(UAEOBJS) $(CPUOBJS) $(GFXOBJS) $(DEBUGOBJS) $(ASMOBJS) gfxlib.o

#       bsdsocklib.o bsdsockw32.o

uaec.exe: $(OBJS) Makefile winuae.res
	ld -o uaesymc.exe $(MINGW32)/lib/crt0.o -L$(MINGW32)/lib/ -L$(MINGW32)/win32/lib/ -L$(GNUWIN32)/H-i386-cygwin32/i386-cygwin32/lib/ -L$(GNUWIN32)/H-i386-cygwin32/lib/gcc-lib/i386-cygwin32/cygnus-2.7.2-970404/ -Ld:\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib -Ld:\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib\pe-i386\cygnus-2.7.2-970404\../../.. $(OBJS) -lmoldname -lmingw32 -lgcc -lcrtdll -lkernel32 -luser32 -lgdi32 -lshell32 -lwinmm -ladvapi32 -lcomctl32 -lcomdlg32 --base-file fooc.base
	dlltool --dllname fooc.exe --base-file fooc.base --output-exp fooc.exp
	ld -o uaec.exe $(MINGW32)/lib/crt0.o -L$(MINGW32)/lib/ -L$(MINGW32)/win32/lib/ -L$(GNUWIN32)/H-i386-cygwin32/i386-cygwin32/lib/ -L$(GNUWIN32)/H-i386-cygwin32/lib/gcc-lib/i386-cygwin32/cygnus-2.7.2-970404/ -Ld:\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib -Ld:\gnuwin32\b18\H-i386-cygwin32\lib\gcc-lib\pe-i386\cygnus-2.7.2-970404\../../.. $(OBJS) fooc.exp -lmoldname -lmingw32 -lgcc -lcrtdll -lkernel32 -luser32 -lgdi32 -lshell32 -lwinmm -ladvapi32 -lcomctl32 -lcomdlg32 --strip-debug
	rcl -i winuae.res -pe uaec.exe

.m.o:
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.m
.c.o:
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c -o $@
.c.s:
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $*.c
.c.i:
	$(CC) $(INCLUDES) -E $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $*.c > $@
.S.o:
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.S -o $@
.s.o:
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.s

clean:
	rm $(UAEOBJS) fooc.base uaec.exe uaesymc.exe fooc.exp

# Some more dependencies... Bah, this is out of date.
cpustbl.o: cputbl.h
cputbl.o: cputbl.h

build68k.o: include/readcpu.h
readcpu.o: include/readcpu.h

newcpu.o: newcpu.c
osdep/win32.o: config.h osdep/win32.c
cpustbl.o: cpustbl.c
a1000.o: a1000.c
cia.o: cia.c
fpp.o: fpp.c
disk.o: disk.c
custom.o: custom.c
blitter.o: blitter.c
readcpu.o: readcpu.c
memory.o: memory.c
main.o: main.c
ersatz.o: ersatz.c
filesys.o: filesys.c
hardfile.o: hardfile.c
keybuf.o: keybuf.c
zfile.o: zfile.c
cpudefs.o: cpudefs.c
osdep/win32gui.o: osdep/win32gui.c
compiler.o: compiler.c
uaelib.o: uaelib.c
machdep/support.o: machdep/support.c
serial.o: serial.c
main.o: config.h
cia.o: include/events.h
custom.o: config.h include/events.h blit.h
newcpu.o: config.h include/events.h
autoconf.o: config.h autoconf.c
expansion.o: config.h
audio.o: include/events.h audio.c
memory.o: config.h
debug.o: config.h
fpp.o: config.h
disk.o: include/events.h
blitter.o: include/events.h blit.h
