# -----------------------------------------------
# PShell - a runtime environment for    
# sharp pocket computers                 
# file     : makefile                   
# author   : puehringer edgar           
# date     : 06.06.2004                 
# version  : 1.0.0                      
# -----------------------------------------------

# tools

ASM=as61860
ASMFLAGS=-los

LNK=aslink
LNKFLAGS=-imwu

DEPLOYTOOL=ihx2emu

BOOTLDRTOOL=ihx2bas
BOOTLDRFLAGS=-compact -nostub

RM=rm -f


# files

OBJS=pshell.rel keyboard.rel display.rel serial.rel printer.rel sound.rel mainmenu.rel globdata.rel stdprogs.rel
OUTPUT=pshell.ihx
DEPLOYDIR=../emu1350/ROM/
DEPLOYFILE=pshell.bin
BOOTLDRFILE=pshell.bas
TARGETHEADERS=pc1262.h pc1350.h pc1403.h
STUBFILE1=bootldr1.bas
STUBFILE2=bootldr2.bas

# targets

all: $(OUTPUT)


# This target builds a basic bootloader

bootldr: $(BOOTLDRFILE)

$(BOOTLDRFILE): $(OUTPUT)
	cat $(STUBFILE1)>$(BOOTLDRFILE) && $(BOOTLDRTOOL) $(BOOTLDRFLAGS) $(OUTPUT) >> $(BOOTLDRFILE) && cat $(STUBFILE2) >> $(BOOTLDRFILE)

# This target copies a memory image to lolos sharptool (emulator)

deploy: $(DEPLOYDIR)$(DEPLOYFILE)

$(DEPLOYDIR)$(DEPLOYFILE): $(OUTPUT)
	$(DEPLOYTOOL) -o $(DEPLOYDIR)$(DEPLOYFILE) $(OUTPUT)

$(OUTPUT): $(OBJS)
	$(LNK) $(LNKFLAGS) $(OUTPUT) $(OBJS)

%.rel: %.asm
	$(ASM) $(ASMFLAGS) $<

pshell.rel: pshell.h internal.h regs.h target.h $(TARGETHEADERS)

keyboard.rel: pshell.h internal.h regs.h target.h $(TARGETHEADERS)

display.rel: pshell.h internal.h regs.h target.h $(TARGETHEADERS)

serial.rel: pshell.h internal.h regs.h target.h $(TARGETHEADERS)

printer.rel: pshell.h internal.h regs.h target.h $(TARGETHEADERS)

sound.rel: pshell.h internal.h regs.h target.h $(TARGETHEADERS)

mainmenu.rel: pshell.h internal.h regs.h target.h $(TARGETHEADERS)

globdata.rel: pshell.h internal.h regs.h target.h $(TARGETHEADERS)

stdprogs.rel: pshell.h regs.h target.h $(TARGETHEADERS)

clean:
	$(RM) *.rel *.sym *.lst $(OUTPUT) $(BOOTLDRFILE)

.PHONY: all clean
