#
# Makefile for the v7M/le/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=ARMv7M --thumb  $(SRC)sll64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)srl64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)sra64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)cmp64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)ucmp64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)dcmpun.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)fcmpun.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)drsub.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)frsub.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memcpy8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memmove8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memclr8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memset8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memcpy32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memmove32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memclr32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memset32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memcpy64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memmove64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memclr64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)memset64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)uread4.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)uwrite4.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)uread8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)uwrite8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)cases8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)cases16.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)cases32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)cases64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)caseu8.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)caseu16.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)caseu32.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb 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=ARMv7M --thumb  $(SRC)caseu64.c
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb caseu64.src 
		$(RM) caseu64.src

OBJECTS		+= div32_thumb2.obj
div32_thumb2.obj   	: $(SRC)div32_thumb2.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)div32_thumb2.asm 

OBJECTS		+= div64_thumb2.obj
div64_thumb2.obj   	: $(SRC)div64_thumb2.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)div64_thumb2.asm 

OBJECTS		+= mul64.obj
mul64.obj   	: $(SRC)mul64.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)mul64.asm 

OBJECTS		+= div0.obj
div0.obj   	: $(SRC)div0.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)div0.asm 

OBJECTS		+= div32_0.obj
div32_0.obj   	: $(SRC)div32_0.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)div32_0.asm 

OBJECTS		+= div64_0.obj
div64_0.obj   	: $(SRC)div64_0.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)div64_0.asm 

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

OBJECTS		+= veneertemplates_thumb2.obj
veneertemplates_thumb2.obj   	: $(SRC)veneertemplates_thumb2.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)veneertemplates_thumb2.asm 

OBJECTS		+= initvectortable.obj
initvectortable.obj   	: $(SRC)initvectortable.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)initvectortable.asm 

OBJECTS		+= inithardware.obj
inithardware.obj   	: $(SRC)inithardware.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)inithardware.asm 

OBJECTS		+= stack.obj
stack.obj   	: $(SRC)stack.asm
		$(AS)  -gAhLS --silicon-bug --cpu=ARMv7M --thumb $(SRC)stack.asm 

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