#
# Makefile.in for UAE
#

@SET_MAKE@
CC        = @CC@
CPP       = @CPP@
LDFLAGS   = @LDFLAGS@
CFLAGS    = @CFLAGS@ -D__inline__=@ac_cv_c_inline@ -DSTATFS_NO_ARGS=@STATFS_NO_ARGS@ \
            -DSTATBUF_BAVAIL=@STATBUF_BAVAIL@ -DBROKEN_JOYSTICK_H=@BROKEN_JOYSTICK_H@ \
            -DOLD_JOYSTICK_H=@OLD_JOYSTICK_H@ $(AFINCLUDE)
X_CFLAGS  = @X_CFLAGS@ -DFORMS_H_VARIANT=@FORMS_H_VARIANT@ -DSHM_SUPPORT_LINKS=@SHM_SUPPORT_LINKS@
TARGET    = @TARGET@
LIBRARIES = @LIBRARIES@ @LIBS@
MATHLIB   = @MATHLIB@

NO_SCHED_CFLAGS = @NO_SCHED_CFLAGS@

INSTALL         = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA    = @INSTALL_DATA@
prefix          = @prefix@
exec_prefix     = @exec_prefix@
bindir          = @bindir@
libdir          = @libdir@
sysconfdir      = @sysconfdir@

.SUFFIXES: .o .c .h .m .i .S

# If you want to use the AF System to play sound, set theese to the
# correct paths. If not, leave them commented out.
# (Don't forget to define AF_SOUND in config.h)
#AFINCLUDE=-I/usr/local/vol/AudioFile/include
#AFLDFLAGS=-L/usr/local/vol/AudioFile/lib -lAF

INCLUDES=-I@top_srcdir@/src/include/ -I@top_srcdir@/src/

OBJS = main.o newcpu.o memory.o @CPUOBJS@ custom.o cia.o serial.o blitter.o \
       autoconf.o ersatz.o filesys.o hardfile.o keybuf.o expansion.o zfile.o \
       fpp.o readcpu.o cpudefs.o gfxutil.o gfxlib.o blitfunc.o blittable.o \
       disk.o audio.o compiler.o uaelib.o picasso96.o cpustbl.o p2c.o \
       uaeexe.o missing.o sounddep/sound.o osdep/joystick.o machdep/support.o \
       @ASMOBJS@ @GFXOBJS@ @DEBUGOBJS@

all: $(TARGET)

x11: progs

svgalib: progs

ggilib: progs

asciiart: progs

amigaos: progs

p_os: progs
	markhunk uae

beos: progs

next: progs
	cp uae ../Uae.app/Uae

progs: uae readdisk

install:

readdisk: readdisk.o missing.o
	$(CC) readdisk.o missing.o -o readdisk $(LDFLAGS) $(DEBUGFLAGS)

uae: $(OBJS)
	$(CC) $(OBJS) -o uae $(GFXLDFLAGS) $(AFLDFLAGS) $(LDFLAGS) $(DEBUGFLAGS) $(LIBRARIES) $(MATHLIB)

clean:
	-rm -f $(OBJS) *.o uae readdisk
	-rm -f gencpu genblitter build68k cpudefs.c cpuopti
	-rm -f cpu?.c blit.h cpu-tmp*.s
	-rm -f cputbl.h cpustbl.c cpu_f?.s
	-rm -f blitfunc.c blitfunc.h blittable.c config.h

halfclean:
	-rm -f $(OBJS)

streifenfrei: clean
	-rm -f Makefile config.cache config.log config.status include/sysconfig.h
	-rm -f machdep osdep threaddep sounddep target.h

blit.h: genblitter
	./genblitter i >blit.h
blitfunc.c: genblitter blitfunc.h
	./genblitter f >blitfunc.c
blitfunc.h: genblitter
	./genblitter h >blitfunc.h
blittable.c: genblitter blitfunc.h
	./genblitter t >blittable.c

genblitter: genblitter.o blitops.o
	$(CC) $(LDFLAGS) -o genblitter genblitter.o blitops.o
build68k: build68k.o
	$(CC) $(LDFLAGS) -o build68k build68k.o
cpuopti: cpuopti.o
	$(CC) $(LDFLAGS) -o cpuopti cpuopti.o
gencpu: gencpu.o readcpu.o cpudefs.o missing.o
	$(CC) $(LDFLAGS) -o gencpu gencpu.o readcpu.o missing.o cpudefs.o
genp2c: genp2c.o
	$(CC) $(LDFLAGS) -o genp2c genp2c.o

custom.o: blit.h p2c.h
p2c.o: p2c.h

p2c.h: genp2c
	./genp2c H >p2c.h
p2c.c: genp2c
	./genp2c C >p2c.c
p2c_x86.S: genp2c
	./genp2c x86 >p2c_x86.S

cpudefs.c: build68k table68k
	./build68k >cpudefs.c
cpustbl.c: gencpu
	./gencpu s >cpustbl.c
cputbl.c: gencpu
	./gencpu t >cputbl.c
cputbl.h: gencpu
	./gencpu h >cputbl.h

cpu0.c: gencpu
	./gencpu f 0 >cpu0.c
cpu1.c: gencpu
	./gencpu f 1 >cpu1.c
cpu2.c: gencpu
	./gencpu f 2 >cpu2.c
cpu3.c: gencpu
	./gencpu f 3 >cpu3.c
cpu4.c: gencpu
	./gencpu f 4 >cpu4.c
cpu5.c: gencpu
	./gencpu f 5 >cpu5.c
cpu6.c: gencpu
	./gencpu f 6 >cpu6.c
cpu7.c: gencpu
	./gencpu f 7 >cpu7.c
cpu8.c: gencpu
	./gencpu f 8 >cpu8.c
cpu9.c: gencpu
	./gencpu f 9 >cpu9.c
cpuA.c: gencpu
	./gencpu f 10 >cpuA.c
cpuB.c: gencpu
	./gencpu f 11 >cpuB.c
cpuC.c: gencpu
	./gencpu f 12 >cpuC.c
cpuD.c: gencpu
	./gencpu f 13 >cpuD.c
cpuE.c: gencpu
	./gencpu f 14 >cpuE.c
cpuF.c: gencpu
	./gencpu f 15 >cpuF.c

cpu0.o: cpu0.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu1.o: cpu1.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu2.o: cpu2.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu3.o: cpu3.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu4.o: cpu4.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu5.o: cpu5.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu6.o: cpu6.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu7.o: cpu7.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu8.o: cpu8.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpu9.o: cpu9.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpuA.o: cpuA.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpuB.o: cpuB.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpuC.o: cpuC.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpuD.o: cpuD.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpuE.o: cpuE.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
cpuF.o: cpuF.c cputbl.h
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c
              
cpu_f0.s: cpu0.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp0.s
	./cpuopti <cpu-tmp0.s >$@
	rm cpu-tmp0.s
cpu_f1.s: cpu1.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp1.s
	./cpuopti <cpu-tmp1.s >$@
	rm cpu-tmp1.s
cpu_f2.s: cpu2.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp2.s
	./cpuopti <cpu-tmp2.s >$@
	rm cpu-tmp2.s
cpu_f3.s: cpu3.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp3.s
	./cpuopti <cpu-tmp3.s >$@
	rm cpu-tmp3.s
cpu_f4.s: cpu4.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp4.s
	./cpuopti <cpu-tmp4.s >$@
	rm cpu-tmp4.s
cpu_f5.s: cpu5.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp5.s
	./cpuopti <cpu-tmp5.s >$@
	rm cpu-tmp5.s
cpu_f6.s: cpu6.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp6.s
	./cpuopti <cpu-tmp6.s >$@
	rm cpu-tmp6.s
cpu_f7.s: cpu7.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp7.s
	./cpuopti <cpu-tmp7.s >$@
	rm cpu-tmp7.s
cpu_f8.s: cpu8.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp8.s
	./cpuopti <cpu-tmp8.s >$@
	rm cpu-tmp8.s
cpu_f9.s: cpu9.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmp9.s
	./cpuopti <cpu-tmp9.s >$@
	rm cpu-tmp9.s
cpu_fA.s: cpuA.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmpA.s
	./cpuopti <cpu-tmpA.s >$@
	rm cpu-tmpA.s
cpu_fB.s: cpuB.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmpB.s
	./cpuopti <cpu-tmpB.s >$@
	rm cpu-tmpB.s
cpu_fC.s: cpuC.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmpC.s
	./cpuopti <cpu-tmpC.s >$@
	rm cpu-tmpC.s
cpu_fD.s: cpuD.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmpD.s
	./cpuopti <cpu-tmpD.s >$@
	rm cpu-tmpD.s
cpu_fE.s: cpuE.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmpE.s
	./cpuopti <cpu-tmpE.s >$@
	rm cpu-tmpE.s
cpu_fF.s: cpuF.c cputbl.h cpuopti
	$(CC) $(INCLUDES) -S $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $(NO_SCHED_CFLAGS) $< -o cpu-tmpF.s
	./cpuopti <cpu-tmpF.s >$@
	rm cpu-tmpF.s
	
osdep/beos.o: osdep/beos.cpp
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) osdep/beos.cpp -o osdep/beos.o

.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) $(DEBUGFLAGS) $*.c -o $@
.c.i:
	$(CC) $(INCLUDES) -E $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.c > $@
.S.o:
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.S -o $@
.s.o:
	$(CC) $(INCLUDES) -c $(INCDIRS) $(CFLAGS) $(X_CFLAGS) $(DEBUGFLAGS) $*.s -o $@

# Saves recompiling...
touch:
	touch *.o; touch build68k; touch cpudefs.c; touch cpudefs.o; touch gencpu; touch cpu?.c cpu*tbl.[ch]; touch cpuopti.o cpuopti cpu?.o cpu_f?.s cpu_f?.o cpu*tbl.o

# 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

main.o: config.h
cia.o: config.h include/events.h
custom.o: config.h include/events.h blit.h
newcpu.o: config.h include/events.h
autoconf.o: config.h
expansion.o: config.h
xwin.o: config.h
svga.o: config.h
audio.o: config.h include/events.h
memory.o: config.h
debug.o: config.h
fpp.o: config.h
ersatz.o: config.h
filesys.o: config.h
execlib.o: config.h
disk.o: config.h include/events.h
blitter.o: config.h include/events.h blit.h

config.h: ../config.h
	ln -s ../config.h config.h

