#
# Makefile for the v6M/be/rtthumb library.
#

ifndef PRODDIR
PRODDIR		= $(ORIGIN)..		# product directory
endif
ifndef RM
RM		= rm -f
endif

SRC		= ..\..\..\			# source directory

AS		= $(PRODDIR)\bin\asarm
CC		= $(PRODDIR)\bin\carm
AR		= $(PRODDIR)\bin\ararm

all		: rtthumb.lib 

clean		:
		$(RM) *.obj
		$(RM) rtthumb.lib 


OBJECTS		+= sll64.obj
sll64.obj   	: $(SRC)sll64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)sll64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian sll64.src 
		$(RM) sll64.src

OBJECTS		+= srl64.obj
srl64.obj   	: $(SRC)srl64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)srl64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian srl64.src 
		$(RM) srl64.src

OBJECTS		+= sra64.obj
sra64.obj   	: $(SRC)sra64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)sra64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian sra64.src 
		$(RM) sra64.src

OBJECTS		+= cmp64.obj
cmp64.obj   	: $(SRC)cmp64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)cmp64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian cmp64.src 
		$(RM) cmp64.src

OBJECTS		+= ucmp64.obj
ucmp64.obj   	: $(SRC)ucmp64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)ucmp64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian ucmp64.src 
		$(RM) ucmp64.src

OBJECTS		+= dcmpun.obj
dcmpun.obj   	: $(SRC)dcmpun.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)dcmpun.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian dcmpun.src 
		$(RM) dcmpun.src

OBJECTS		+= fcmpun.obj
fcmpun.obj   	: $(SRC)fcmpun.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)fcmpun.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian fcmpun.src 
		$(RM) fcmpun.src

OBJECTS		+= drsub.obj
drsub.obj   	: $(SRC)drsub.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)drsub.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian drsub.src 
		$(RM) drsub.src

OBJECTS		+= frsub.obj
frsub.obj   	: $(SRC)frsub.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)frsub.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian frsub.src 
		$(RM) frsub.src

OBJECTS		+= memcpy8.obj
memcpy8.obj   	: $(SRC)memcpy8.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memcpy8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memcpy8.src 
		$(RM) memcpy8.src

OBJECTS		+= memmove8.obj
memmove8.obj   	: $(SRC)memmove8.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memmove8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memmove8.src 
		$(RM) memmove8.src

OBJECTS		+= memclr8.obj
memclr8.obj   	: $(SRC)memclr8.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memclr8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memclr8.src 
		$(RM) memclr8.src

OBJECTS		+= memset8.obj
memset8.obj   	: $(SRC)memset8.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memset8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memset8.src 
		$(RM) memset8.src

OBJECTS		+= memcpy32.obj
memcpy32.obj   	: $(SRC)memcpy32.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memcpy32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memcpy32.src 
		$(RM) memcpy32.src

OBJECTS		+= memmove32.obj
memmove32.obj   	: $(SRC)memmove32.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memmove32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memmove32.src 
		$(RM) memmove32.src

OBJECTS		+= memclr32.obj
memclr32.obj   	: $(SRC)memclr32.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memclr32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memclr32.src 
		$(RM) memclr32.src

OBJECTS		+= memset32.obj
memset32.obj   	: $(SRC)memset32.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memset32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memset32.src 
		$(RM) memset32.src

OBJECTS		+= memcpy64.obj
memcpy64.obj   	: $(SRC)memcpy64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memcpy64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memcpy64.src 
		$(RM) memcpy64.src

OBJECTS		+= memmove64.obj
memmove64.obj   	: $(SRC)memmove64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memmove64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memmove64.src 
		$(RM) memmove64.src

OBJECTS		+= memclr64.obj
memclr64.obj   	: $(SRC)memclr64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memclr64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memclr64.src 
		$(RM) memclr64.src

OBJECTS		+= memset64.obj
memset64.obj   	: $(SRC)memset64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)memset64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian memset64.src 
		$(RM) memset64.src

OBJECTS		+= uread4.obj
uread4.obj   	: $(SRC)uread4.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)uread4.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian uread4.src 
		$(RM) uread4.src

OBJECTS		+= uwrite4.obj
uwrite4.obj   	: $(SRC)uwrite4.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)uwrite4.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian uwrite4.src 
		$(RM) uwrite4.src

OBJECTS		+= uread8.obj
uread8.obj   	: $(SRC)uread8.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)uread8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian uread8.src 
		$(RM) uread8.src

OBJECTS		+= uwrite8.obj
uwrite8.obj   	: $(SRC)uwrite8.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)uwrite8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian uwrite8.src 
		$(RM) uwrite8.src

OBJECTS		+= cases8.obj
cases8.obj   	: $(SRC)cases8.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)cases8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian cases8.src 
		$(RM) cases8.src

OBJECTS		+= cases16.obj
cases16.obj   	: $(SRC)cases16.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)cases16.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian cases16.src 
		$(RM) cases16.src

OBJECTS		+= cases32.obj
cases32.obj   	: $(SRC)cases32.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)cases32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian cases32.src 
		$(RM) cases32.src

OBJECTS		+= cases64.obj
cases64.obj   	: $(SRC)cases64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)cases64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian cases64.src 
		$(RM) cases64.src

OBJECTS		+= caseu8.obj
caseu8.obj   	: $(SRC)caseu8.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)caseu8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian caseu8.src 
		$(RM) caseu8.src

OBJECTS		+= caseu16.obj
caseu16.obj   	: $(SRC)caseu16.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)caseu16.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian caseu16.src 
		$(RM) caseu16.src

OBJECTS		+= caseu32.obj
caseu32.obj   	: $(SRC)caseu32.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)caseu32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian caseu32.src 
		$(RM) caseu32.src

OBJECTS		+= caseu64.obj
caseu64.obj   	: $(SRC)caseu64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)caseu64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian caseu64.src 
		$(RM) caseu64.src

OBJECTS		+= div32_thumb.obj
div32_thumb.obj   	: $(SRC)div32_thumb.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)div32_thumb.asm 

OBJECTS		+= div64.obj
div64.obj   	: $(SRC)div64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)div64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian div64.src 
		$(RM) div64.src

OBJECTS		+= mul64.obj
mul64.obj   	: $(SRC)mul64.c
		$(CC)  --interwork -gc -Rlibrt --call-info --silicon-bug --global-type-checking --cpu=ARMv6M --thumb --big-endian --call=f  $(SRC)mul64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian mul64.src 
		$(RM) mul64.src

OBJECTS		+= div0_thumb.obj
div0_thumb.obj   	: $(SRC)div0_thumb.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)div0_thumb.asm 

OBJECTS		+= div32_thumb_0.obj
div32_thumb_0.obj   	: $(SRC)div32_thumb_0.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)div32_thumb_0.asm 

OBJECTS		+= div64_thumb_0.obj
div64_thumb_0.obj   	: $(SRC)div64_thumb_0.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)div64_thumb_0.asm 

OBJECTS		+= vectortemplate_thumb2.obj
vectortemplate_thumb2.obj   	: $(SRC)vectortemplate_thumb2.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)vectortemplate_thumb2.asm 

OBJECTS		+= veneertemplates_t2_16.obj
veneertemplates_t2_16.obj   	: $(SRC)veneertemplates_t2_16.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)veneertemplates_t2_16.asm 

OBJECTS		+= initvectortable_thumb.obj
initvectortable_thumb.obj   	: $(SRC)initvectortable_thumb.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)initvectortable_thumb.asm 

OBJECTS		+= inithardware_thumb.obj
inithardware_thumb.obj   	: $(SRC)inithardware_thumb.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)inithardware_thumb.asm 

OBJECTS		+= stack_thumb.obj
stack_thumb.obj   	: $(SRC)stack_thumb.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv6M --thumb --big-endian $(SRC)stack_thumb.asm 

rtthumb.lib   	: $(OBJECTS)
		argfile rtthumb.lib.opt $(OBJECTS)
		$(AR) -r $@ -f rtthumb.lib.opt
		$(RM) rtthumb.lib.opt
