# Makefile for awinquakewos

CC = ppc-amigaos-gcc -warpup

OPT = -mcpu=604e -O3 -fexpensive-optimizations -funroll-loops -ffast-math \
			-fforce-addr -fforce-mem -fschedule-insns -fschedule-insns2

#OPT = -mcpu=603e -ffast-math
 
CFLAGS = -c -Wall

DEFS = -DAMIGA -DPPCTCP

LIBS = -lmoto

MAKEDEPEND = -MM

SOURCES = cd_amiga.c chase.c cl_demo.c cl_input.c cl_main.c cl_parse.c cl_tent.c cmd.c \
common.c console.c crc.c cvar.c d_edge.c d_fill.c d_init.c d_modech.c \
d_part.c d_polyse.c d_scan.c d_sky.c d_sprite.c d_surf.c d_vars.c d_zpoint.c \
draw.c host.c host_cmd.c in_amiga.c keys.c mathlib.c menu.c model.c \
net_dgrm.c net_loop.c net_main.c net_bsd.c net_amigaudp.c net_vcr.c nonintel.c pr_cmds.c \
pr_edict.c pr_exec.c r_aclip.c r_alias.c r_bsp.c r_draw.c r_edge.c r_efrag.c \
r_light.c r_main.c r_misc1.c r_misc2.c r_part.c r_sky.c r_sprite.c \
r_surf.c r_vars.c sbar.c screen.c snd_dma.c snd_mem.c snd_mix.c snd_amiga.c \
sv_main.c sv_move.c sv_phys.c sv_user.c sys_amiga.c vid_amiga.c view.c wad.c \
world.c zone.c

ASMSOURCES = amiga_ppc_c2p.s amiga_timer.s

DEP = $(SOURCES:.c=.d)
OBJS = $(SOURCES:.c=.o)
ASMOBJS = $(ASMSOURCES:.s=.o)

all: WarpQuake

WarpQuake: $(OBJS) $(ASMOBJS)
	$(CC) -o $@ $(OBJS) $(ASMOBJS) $(LIBS)
	-ppc-amigaos-nm -u $@
	-elf2exe $@ $@

%.o: %.c
	$(CC) $(CFLAGS) $(OPT) $(DEFS) $<

%.o: %.s
	pasm $<

%.d: %.c
	$(SHELL) -ec '$(CC) $(CFLAGS) $(OPT) $(DEFS) $(MAKEDEPEND) $< | sed '\''s;$*.c;& $@;g'\'' > $@'

net_amigaudp.o: net_amigaudp.c
	$(CC) $(CFLAGS) $(OPT) $(DEFS) -I/gg/os-include/netinclude $<

pr_exec.o: pr_exec.c
	$(CC) $(CFLAGS) $(DEFS) -O2 -ffast-math $<

amiga_ppc_c2p.o: amiga_ppc_c2p.s

amiga_timer.o: amiga_timer.s

clean:
	-delete $(OBJS) $(ASMOBJS) quiet

cleanmore:
	-delete $(OBJS) $(ASMOBJS) quiet
	-delete $(DEP) quiet

-include $(DEP)
