
NAME    = hallo
RESNAME = CVXRES

#MAKEBIN = 0
MAKEBIN = 1


CVOSDIR = ../cvos
UTILDIR = $(CVOSDIR)/utils

OBJDIR 	= ./OBJ
APPINC  = ./INCLUDE
INCDIR  = $(CVOSDIR)/INCLUDE
SYSINC  = $(INCDIR)/sysinc
SRCDIR  = ./SOURCE
RESDIR  = ./RESOURCE

LIBSTART  = $(CVOSDIR)/cvxstart.a

APPOBJ  = $(OBJDIR)/$(NAME).obj
APPOBJ += $(OBJDIR)/hallo2.obj

OBJ    = $(APPOBJ) $(OBJDIR)/$(RESNAME).obj


DEFAULT = -DPIXEL_1
DEF     =  $(DEFAULT) -I$(INCDIR) -I$(APPINC)

CCOPT 	= -O1 -m68000 -fno-common -fomit-frame-pointer
ASOPT	= -M
LDOPT   = -L$(CVOSDIR) -lc -lgcc -lcvos

CC	= m68k-cellvic-aout-gcc.exe $(CCOPT)
ASM	= m68k-cellvic-aout-as.exe 
LD	= m68k-cellvic-aout-ld.exe
NM	= m68k-cellvic-aout-nm.exe
STRIP	= m68k-cellvic-aout-strip.exe

###################### goal ######################

ifeq "$(MAKEBIN)" "1"
goal: $(NAME).cvx
else
goal: $(NAME).abs
endif

##################################################

# $(OBJDIR)/hallo.obj : $(SRCDIR)/hallo.c

ifeq "$(MAKEBIN)" "1"
$(NAME).cvx: $(OBJ) $(OBJDIR)/cvxhdr.obj $(NAME).x
	$(UTILDIR)/hex2bin cvxhdr.hex 
	$(UTILDIR)/gencvx 70000.bin $(UTILDIR)/cvxreloc.bin $(NAME).x $(RESDIR)/$(NAME).bin $(NAME).cvx
	@-$(RM) 70000.bin
	@-$(RM) $(NAME).x
else
$(NAME).abs: $(OBJ) $(NAME).cmd
    $(LINK) -c $(NAME).cmd -F ieee -o $*.abs -M
endif

#  C files
$(OBJDIR)/%.obj: $(SRCDIR)/%.c
	$(CC) $< $(DEF) -c -o $@
	
$(NAME).x: $(OBJDIR)/$(NAME).obj
	$(LD) -Map $(NAME).map -r -o $(NAME).x $(LIBSTART) $(APPOBJ) $(LDOPT)
	$(NM) -u $(NAME).x
	$(STRIP) --strip-unneeded $(NAME).x

$(OBJDIR)/$(RESNAME).obj: $(RESDIR)/$(RESNAME).src $(NAME).x
#genhdr returns non zero value... need '-' to ignore error checking for command
	-$(UTILDIR)/genhdr $(RESDIR)/$(RESNAME).src $(UTILDIR)/cvxreloc.bin $(NAME).x $(RESDIR)/$(NAME).bin $(RESDIR)/cvxhdr.src

$(OBJDIR)/cvxhdr.obj: $(RESDIR)/cvxhdr.src
	$(ASM) $(ASOPT) -o $(OBJDIR)/cvxhdr.obj $(RESDIR)/cvxhdr.src
	$(LD) -Map hdr.map $@ -oformat srec -Ttext 0x70000 -o cvxhdr.hex
	
clean:
	@-$(RM) $(APPOBJ)
	@-$(RM) $(NAME).cvx
	@-$(RM) $(NAME).abs
	@-$(RM) $(NAME).map
	@-$(RM) hdr.map
	@-$(RM) cvxhdr.hex
	@-$(RM) $(OBJDIR)\cvxhdr.obj
