SDCCINC  = ../include
SDCCLIBS = .

CFLAGS =-c -V --no-peep-comments 

LFLAGS	= -L $(SDCCLIBS) --code-loc 0x1000
#LFLAGS	= -L $(SDCCLIBS)

#--code-loc <Value> The start location of the code segment, default value 0. Note when this option is used the
#                   interrupt vector table is also relocated to the given address. The value entered can be in 
#                   Hexadecimal for Decimal format, e.g.: --code-loc 0x8000 or --code-loc 32768.

CP=cp -f
RM=rm -f
MV=mv -f
#MCNV=c:/etools/sdcc_map_cnv.exe

ECHO	=	@-echo

DATETIME =$(shell date +%Y%m%d_%H%M)
		
TRG   = main

#---------------------
# Source files
#---------------------

	CSRC =  $(TRG).c\
		usart.c
	
	LIBSRC = 
	
	LIBS = $(LIBSRC:%.c=%.lib)
	
all: $(TRG).ihx $(TRG).bin

#mystart.rel: mystart.asm
#	asx8051 -ol $<

%rel: %c Makefile
	sdcc -c -I $(SDCCINC) $(CFLAGS) $<

%lib: %rel
	sdcclib $@ $<
	
$(TRG).ihx : $(CSRC:%.c=%.rel) $(LIBS)
	sdcc $(LFLAGS) $(CSRC:%.c=%.rel) $(LIBS)

$(TRG).bin: $(TRG).ihx
	srec_cat $(TRG).ihx -I -o $(TRG).bin -Binary
	srec_cat $(TRG).ihx -I -o $(TRG).hex -intel
#$(TRG).hex: $(TRG).ihx
#	packihx $(TRG).ihx > $(TRG).hex
#	$(ECHO) Ready!

ready:
	$(ECHO) Ready!

clean:
	$(RM) $(TRG).ihx
	$(RM) $(TRG).hex $(TRG).bin
	$(RM) $(TRG).lnk
	$(RM) $(TRG).map $(TRG).mem
	$(RM) $(CSRC:%.c=%.sym) $(CSRC:%.c=%.rst) $(CSRC:%.c=%.rel) $(CSRC:%.c=%.lst) $(CSRC:%.c=%.asm)
	$(RM) $(TRG).sym $(TRG).rst $(TRG).rel $(TRG).lst $(TRG).asm
#	$(RM) $(LIBSRC:%.c=%.asm)
	$(RM) $(LIBSRC:%.c=%.lst)
	$(RM) $(LIBSRC:%.c=%.rel)
	$(RM) $(LIBSRC:%.c=%.rst)
	$(RM) $(LIBSRC:%.c=%.sym)
	$(RM) $(CSRC:%.c=%.BAK) $(CSRC:%.c=%.bak) $(CSRC:%.c=%.Bak)
	$(RM) $(LIBSRC:%.c=%.BAK) $(LIBSRC:%.c=%.bak) $(LIBSRC:%.c=%.Bak)
	$(RM) $(LIBSRC:%.c=$(SDCCINC)/%.BAK) $(LIBSRC:%.c=$(SDCCINC)/%.bak) $(LIBSRC:%.c=$(SDCCINC)/%.Bak)
	$(RM) $(CSRC:%.c=$(SDCCINC)/%.h~) $(CSRC:%.c=%.c~)
	$(RM) $(LIBSRC:%.c=$(SDCCINC)/%.h~) $(LIBSRC:%.c=%.c~)
	$(RM) makefile.BAK
	
backup:
	make clean
	zip -r $(TRG)_$(DATETIME).zip ../src/*.c ../src/*.inc ../libs/*.lib ../include/*.h  ../src/makefile ../*.wsp
	$(MV) $(TRG)_$(DATETIME).zip ../zip_backup

depend:
	sdcc -MM -I $(SDCCINC) *.c > depend.txt
