TARG1 = arc32
DEST = arcadeos
CC = @gcc
LD = @gcc
ASM = @nasmw
VERSION =ArcadeOS 2.5
DATE = Friday 1st November 2002
ASMFLAGS = -f coff -dUSE_STACK


CFLAGS = -fomit-frame-pointer -O3 -mpentium \
	-Werror -Wall -W -Wno-sign-compare -Wno-unused \
	-Wpointer-arith -Wbad-function-cast -Wcast-align -Waggregate-return \
	-pedantic \
	-Wshadow \
	-Wstrict-prototypes

LDFLAGS = -s


OBJS = fil.o help.o launch.o sbfm.o screen.o mouse.o \
		 glist.o main.o win.o crit.o lst.o disp.o mem.o joy.o \
		 key.o keyasm.o error.o scrn.o critasm.o control.o gpadpro.o \
		 sshot.o info.o pcx.o png.o scan.o sidewind.oa \
		 3d.o fixed.o psxpad.o edit.o config.o conmenu.o cab.o \
		 sound.o lcdlib.o


COMHEAD = main.h globals.h

ifeq ($(wildcard license.txt),)
nolic:
	@echo ArcadeOS License File Missing
endif


all: info $(TARG1).exe info2 pmwrap.exe info3

info:
	@echo ======================================================
	@echo compiling $(TARG1) - Protected Mode portion $(VERSION)
	@echo ======================================================


$(TARG1).exe:   $(OBJS)
	@echo ======================================================
	@echo linking $(TARG1) - Protected Mode portion $(VERSION)
	@echo ======================================================
	$(LD) $(LDFLAGS) $(OBJS) -lz -laudio -o $@
	@echo ======================================================
	@echo compressing $(TARG1).exe to $(DEST).bin
	@echo ======================================================
	@upx -9 -o $(DEST).bin $(TARG1).exe

info2:
	@echo ======================================================
	@echo compiling Protected Mode wrapper for key functions
	@echo ======================================================

pmwrap.exe:   pmwrap.o wrapasm.o
	@echo ======================================================
	@echo linking Protected Mode wrapper for key functions
	@echo ======================================================

	$(LD) $(LDFLAGS) pmwrap.o wrapasm.o -o $@

	@echo ======================================================
	@echo compressing Protected Mode wrapper for key functions
	@echo ======================================================
	@upx -9 pmwrap.exe

info3:
	@echo
	@type license.txt


%.o: %.c
	@echo compiling $<
	$(CC)  $(CFLAGS) -c $< -o $@


%.o: %.s
	@echo assembling $<
	$(CC) -x assembler-with-cpp $(CFLAGS) -o $@ -c $<

%.oa: %.asm
	@echo assembling $<
	$(ASM) -o $@ $(ASMFLAGS) $<




clean:
	@echo ======================================================
	@echo Clearing build for $(VERSION)
	@echo ======================================================
	@echo deleting objects...
	@del *.o
	@del *.oa
	@echo deleteing targets..
	@del $(DEST).bin
	@del pmwrap.exe




keyasm.o: keyasm.s
sidewind.oa: sidewind.asm
fil.o: fil.c $(COMHEAD) fil.h
help.o: help.c $(COMHEAD)
launch.o: launch.c $(COMHEAD)
sbfm.o: sbfm.c $(COMHEAD)
screen.o: screen.c $(COMHEAD)
mouse.o: mouse.c $(COMHEAD)
main.o: main.c $(COMHEAD)
win.o: win.c win.h
crit.o: crit.c $(COMHEAD)
lst.o: lst.c $(COMHEAD)
disp.o: disp.c $(COMHEAD)
mem.o: mem.c $(COMHEAD)
joy.o: joy.c $(COMHEAD)
key.o: key.c $(COMHEAD) key_lc.h
error.o: error.c $(COMHEAD)
scrn.o: scrn.c $(COMHEAD)
critasm.o: critasm.s
sshot.o: sshot.c $(COMHEAD)
info.o: info.c $(COMHEAD)
pcx.o: pcx.c $(COMHEAD)
png.o: png.c $(COMHEAD)
glist.o: glist.c $(COMHEAD) fil.h
pmwrap.o: pmwrap.c pmwrap.h
wrapasm.o: wrapasm.s
fixed.o: fixed.c
3d.o: 3d.c
gpadpro.o: gpadpro.c
control.o: control.c
edit.o: edit.c
config.o: config.c con_lc.h
conmenu.o: conmenu.c $(COMHEAD)
cab.o: cab.c $(COMHEAD)
sound.o: sound.c $(COMHEAD)
ldclib.o: lcdlib.c $(COMHEAD)
