
XOPTS = -I"C:/ti/xdctools_3_25_03_72/packages/" -Dxdc_target_types__=C:/ti/xdctools_3_25_03_72/packages/ti/targets/arm/elf/std.h -Dxdc_target_name__=Arm9

vpath % C:/ti/bios_6_35_04_50/packages/ti/sysbios/
vpath %.c C:/ti/xdctools_3_25_03_72/packages/

CCOPTS    = -me -mv5e --abi=eabi -q -ms --opt_for_speed=2  --program_level_compile -o3 -g --optimize_with_debug 

XDC_ROOT  = C:/ti/xdctools_3_25_03_72/packages/

BIOS_ROOT = C:/ti/bios_6_35_04_50/packages/ti/sysbios/

BIOS_DEFS =  -Dti_sysbios_BIOS_swiEnabled__D=TRUE -Dti_sysbios_BIOS_taskEnabled__D=TRUE -Dti_sysbios_BIOS_clockEnabled__D=TRUE -Dti_sysbios_hal_Hwi_DISABLE_ALL_HOOKS -Dti_sysbios_knl_Swi_DISABLE_ALL_HOOKS -Dti_sysbios_BIOS_smpEnabled__D=FALSE -Dti_sysbios_Build_useHwiMacros -Dti_sysbios_knl_Swi_numPriorities__D=16 -Dti_sysbios_knl_Task_deleteTerminatedTasks__D=FALSE -Dti_sysbios_knl_Task_numPriorities__D=16 -Dti_sysbios_knl_Clock_TICK_SOURCE=ti_sysbios_knl_Clock_TickSource_TIMER -Dti_sysbios_knl_Clock_TICK_MODE=ti_sysbios_knl_Clock_TickMode_PERIODIC -Dti_sysbios_utils_Load_taskEnabled__D=TRUE -Dti_sysbios_utils_Load_swiEnabled__D=FALSE -Dti_sysbios_family_arm_da830_Hwi_dispatcherSwiSupport__D=TRUE -Dti_sysbios_family_arm_da830_Hwi_dispatcherTaskSupport__D=TRUE -Dti_sysbios_family_arm_da830_Hwi_dispatcherAutoNestingSupport__D=TRUE -Dti_sysbios_family_arm_da830_Hwi_dispatcherIrpTrackingSupport__D=TRUE -Dti_sysbios_knl_Semaphore_supportsEvents__D=FALSE -Dti_sysbios_family_arm_exc_Exception_enableDecode__D=TRUE

BIOS_INC  = -I"C:/ti/bios_6_35_04_50/packages/"

CC = C:/ti/ccsv5/tools/compiler/arm_5.1.14/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv5/tools/compiler/arm_5.1.14/include
ASM = C:/ti/ccsv5/tools/compiler/arm_5.1.14/bin/armcl -c $(CCOPTS) -I C:/ti/ccsv5/tools/compiler/arm_5.1.14/include
AR = C:/ti/ccsv5/tools/compiler/arm_5.1.14/bin/armar rq

DEL = cmd.exe /q /c del /f
CP = cmd.exe /q /c copy /Y

define RM
	$(if $(wildcard $1),$(DEL) $1,:)
endef

define ASSEMBLE
	@echo asme9 $< ...
	@$(ASM) $(BIOS_DEFS) $(XOPTS) $(BIOS_INC) $<
endef

all: sysbios.ae9

arm_IntrinsicsSupport_asm.obj: family/arm/IntrinsicsSupport_asm.asm makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=arm_IntrinsicsSupport_asm.obj

arm_TaskSupport_asm.obj: family/arm/TaskSupport_asm.asm makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=arm_TaskSupport_asm.obj

arm_HwiCommon_asm.obj: family/arm/HwiCommon_asm.asm makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=arm_HwiCommon_asm.obj

exc_Exception_asm.obj: family/arm/exc/Exception_asm.asm makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=exc_Exception_asm.obj

da830_Hwi_asm.obj: family/arm/da830/Hwi_asm.s470 makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=da830_Hwi_asm.obj

dm6446_Hwi_asm.obj: family/arm/dm6446/Hwi_asm.s470 makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=dm6446_Hwi_asm.obj

omap1030_Hwi_asm.obj: family/arm/omap1030/Hwi_asm.s470 makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=omap1030_Hwi_asm.obj

sim1030_Hwi_asm.obj: family/arm/sim1030/Hwi_asm.s470 makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=sim1030_Hwi_asm.obj

sim1030_Clobber_asm.obj: family/arm/sim1030/Clobber_asm.s470 makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=sim1030_Clobber_asm.obj

arm9_Mmu_asm.obj: family/arm/arm9/Mmu_asm.asm makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=arm9_Mmu_asm.obj

arm9_Cache_asm.obj: family/arm/arm9/Cache_asm.asm makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=arm9_Cache_asm.obj

timer64_Timer_asm.obj: timers/timer64/Timer_asm.s470 makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=timer64_Timer_asm.obj

dmtimer_Timer_asm.obj: timers/dmtimer/Timer_asm.s470 makefile
	@-$(call RM, $@)
	$(ASSEMBLE) --output_file=dmtimer_Timer_asm.obj


BIOS.obj: BIOS.c family/arm/HwiCommon.c family/arm/IntrinsicsSupport.c family/arm/TaskSupport.c hal/Hwi.c hal/Hwi_stack.c hal/Hwi_startup.c hal/Timer.c hal/Cache.c knl/Clock.c knl/Idle.c knl/Intrinsics.c knl/Queue.c knl/Semaphore.c knl/Swi.c knl/Swi_andn.c knl/Task.c timers/timer64/Timer.c timers/timer64/TimestampProvider.c gates/GateHwi.c gates/GateMutex.c family/arm/da830/Hwi.c family/arm/da830/TimerSupport.c family/arm/exc/Exception.c family/arm/arm9/Cache.c family/arm/arm9/Mmu.c heaps/HeapMem.c makefile
	@-$(call RM, $@)
	@echo cle9 $< ...
	@$(CC) $(BIOS_DEFS) $(XOPTS) $(BIOS_INC) \
	$(BIOS_ROOT)BIOS.c \
	$(BIOS_ROOT)family/arm/HwiCommon.c \
	$(BIOS_ROOT)family/arm/IntrinsicsSupport.c \
	$(BIOS_ROOT)family/arm/TaskSupport.c \
	$(BIOS_ROOT)hal/Hwi.c \
	$(BIOS_ROOT)hal/Hwi_stack.c \
	$(BIOS_ROOT)hal/Hwi_startup.c \
	$(BIOS_ROOT)hal/Timer.c \
	$(BIOS_ROOT)hal/Cache.c \
	$(BIOS_ROOT)knl/Clock.c \
	$(BIOS_ROOT)knl/Idle.c \
	$(BIOS_ROOT)knl/Intrinsics.c \
	$(BIOS_ROOT)knl/Queue.c \
	$(BIOS_ROOT)knl/Semaphore.c \
	$(BIOS_ROOT)knl/Swi.c \
	$(BIOS_ROOT)knl/Swi_andn.c \
	$(BIOS_ROOT)knl/Task.c \
	$(BIOS_ROOT)timers/timer64/Timer.c \
	$(BIOS_ROOT)timers/timer64/TimestampProvider.c \
	$(BIOS_ROOT)gates/GateHwi.c \
	$(BIOS_ROOT)gates/GateMutex.c \
	$(BIOS_ROOT)family/arm/da830/Hwi.c \
	$(BIOS_ROOT)family/arm/da830/TimerSupport.c \
	$(BIOS_ROOT)family/arm/exc/Exception.c \
	$(BIOS_ROOT)family/arm/arm9/Cache.c \
	$(BIOS_ROOT)family/arm/arm9/Mmu.c \
	$(BIOS_ROOT)heaps/HeapMem.c \

sysbios.ae9: BIOS.obj arm_IntrinsicsSupport_asm.obj arm_TaskSupport_asm.obj arm_HwiCommon_asm.obj exc_Exception_asm.obj da830_Hwi_asm.obj dm6446_Hwi_asm.obj omap1030_Hwi_asm.obj sim1030_Hwi_asm.obj sim1030_Clobber_asm.obj arm9_Mmu_asm.obj arm9_Cache_asm.obj timer64_Timer_asm.obj dmtimer_Timer_asm.obj
	@-$(call RM, $@)
	@echo are9 $^ ...
	@$(AR) $@ $^


clean:
	@-$(call RM, sysbios.ae9)
	@-$(call RM, BIOS.obj)
	@-$(call RM, arm_IntrinsicsSupport_asm.obj)
	@-$(call RM, arm_TaskSupport_asm.obj)
	@-$(call RM, arm_HwiCommon_asm.obj)
	@-$(call RM, exc_Exception_asm.obj)
	@-$(call RM, da830_Hwi_asm.obj)
	@-$(call RM, dm6446_Hwi_asm.obj)
	@-$(call RM, omap1030_Hwi_asm.obj)
	@-$(call RM, sim1030_Hwi_asm.obj)
	@-$(call RM, sim1030_Clobber_asm.obj)
	@-$(call RM, arm9_Mmu_asm.obj)
	@-$(call RM, arm9_Cache_asm.obj)
	@-$(call RM, timer64_Timer_asm.obj)
	@-$(call RM, dmtimer_Timer_asm.obj)
