###########################################################################
#	PIC Serial BootLoader Makefile
#			T.Barnaby,	2008-02-28
###########################################################################
#

CC		= g++
CXXFLAGS	+= -I. -I/usr/include/Beam
#LDLIBS		+= -lBeam
LDLIBS		+= /usr/lib/libBeam.a

PCC		= sdcc
#PCFLAGS 	= -mpic16 -p18f2420 -I.
PCFLAGS 	= -mpic16 -p18f2520 -I.

#PCFLAGS 	= -mpic14 -p16f873a -I.
#PCFLAGS 	= -mpic14 -p16f873a -I. --no-pcode-opt
#PLDFLAGS	= -Wl,-bBOOTLOADER=0x800
#PLDFLAGS	= -Wl,-m -Wl,-I. -Wl,"-s 16f873a.lkr" --code-loc 0x200 --codeseg TEST1
#CFLAGS= -mpic16 -p18f2550 --fstack --optimize-goto --optimize-cmp --optimize-df 
#--obanksel=2 --opt-code-size --fommit-frame-pointer --denable-peeps 
#--ivt-loc=0x800 -DF_CPU=${F_CPU} --debug-ralloc
#LDFLAGS= -mpic16 -p18f2550 --fstack --optimize-goto --optimize-cmp 
#--optimize-df --obanksel=2 --opt-code-size --fommit-frame-pointer 
#--denable-peeps --ivt-loc=0x800 --debug-ralloc  --use-crt=bootloader_crt0i.rel  
#-Wl,-s,bootloader.lkr
#PCFLAGS 	+= --fstack --optimize-goto --optimize-cmp --optimize-df--obanksel=2
#PCFLAGS 	+= --opt-code-size --fommit-frame-pointer --denable-peeps


.SUFFIXES: .hex .asm

.c.hex:
	$(PCC) $(PCFLAGS) $(PLDFLAGS) $<
.asm.hex:
	gpasm -I. -o $@ $<

all:	picBootLoader.hex picProgrammer

clean:
	rm -f *.o picProgrammer *.hex *.cod *.lst *.p *.stc *.map *.asm

picProgrammer: picProgrammer.o HexFile.o


###########################################################################
#	Information
###########################################################################
#
# Low level Programming
#	k16 p picBootLoader.hex
#
# Simulation
#	cp gpsim.rc ~/.gpsim
#	gpsim -p 16f873a -c picBootLoader.stc picBootLoader.hex
#
#	g++ -o programUploader programUploader.o PicProgram.o

