PRJ_NAME := DP_bug_demo
TARGET := $(PRJ_NAME).out

# Configure where TI things is installed.
TI_INSTALL_DIR = C:/ti
C2000WARE_ROOT := $(TI_INSTALL_DIR)/c2000Ware/C2000Ware_5_01_00_01
TI_TOOL_DIR := $(TI_INSTALL_DIR)/commonTools

# Set the tool versions.
CG_TOOL_ROOT := $(TI_TOOL_DIR)/ti-cgt-c2000_22.6.0.LTS
SYSCFG_TOOL_ROOT := $(TI_TOOL_DIR)/sysconfig_1.19.0.2371712

# The compiler.
CC := $(CG_TOOL_ROOT)/bin/cl2000

SHELL = cmd.exe

PRE_INCLUDE_FILES := --preinclude="driverlib_patch/driverlib_patches.h"

INCLUDE_PATHS += --include_path="."
INCLUDE_PATHS += --include_path="$(C2000WARE_ROOT)/driverlib/f2837xd/driverlib"
INCLUDE_PATHS += --include_path="$(C2000WARE_ROOT)/device_support/f2837xd/common/include"
INCLUDE_PATHS += --include_path="$(C2000WARE_ROOT)/driverlib/f2837xd"
INCLUDE_PATHS += --include_path="$(CG_TOOL_ROOT)/include"

DEFINES += --define=LARGE_MODEL
DEFINES += --define=F28x_DEVICE
DEFINES += --define=_FLASH
DEFINES += --define=CPU1
DEFINES += --define=NDEBUG


OBJS += f2837xd_codestartbranch.obj
OBJS += DUT.obj
OBJS += main.obj
OBJS += $(C2000WARE_ROOT)/driverlib/f2837xd/driverlib/ccs/Release/driverlib.lib


RM := DEL /F
RMDIR := RMDIR /S/Q

LIB_SRCS += $(C2000WARE_ROOT)/driverlib/f2837xd/driverlib/ccs/Release/driverlib.lib 

CFLAGS += --cmd_file="diagnostic_options.opt"
CFLAGS += -O1
CFLAGS += --fp_mode=relaxed 
CFLAGS += --advice:performance=all
CFLAGS += -g
CFLAGS += --c11
CFLAGS += --preproc_with_comment
CFLAGS += --preproc_with_compile
CFLAGS += --diag_warning=225
CFLAGS += --diag_wrap=off
CFLAGS += --display_error_number
CFLAGS += --abi=eabi
CFLAGS += -k
CFLAGS += --asm_listing

CPPFLAGS += $(PRE_INCLUDE_FILES)
CPPFLAGS += $(DEFINES)
CPPFLAGS += $(INCLUDE_PATHS)

LDFLAGS += --heap_size=0x100
LDFLAGS += --stack_size=1748
LDFLAGS += --warn_sections
LDFLAGS += --reread_libs
LDFLAGS += $(LINK_DEFINES)
LDFLAGS += --diag_wrap=off
LDFLAGS += --display_error_number
LDFLAGS += --issue_remarks
LDFLAGS += --verbose_diagnostics
LDFLAGS += --mapfile_contents=all
LDFLAGS += --xml_link_info="$(PRJ_NAME)_linkInfo.xml"
LDFLAGS += --rom_model


LDLIBS += -i"C:/ti/ccs1281/ccs/tools/compiler/ti-cgt-c2000_22.6.3.LTS/lib"
LDLIBS += -i"C:/ti/c2000Ware/C2000Ware_5_01_00_01"
LDLIBS += -i"C:/ti/ccs1281/ccs/tools/compiler/ti-cgt-c2000_22.6.3.LTS/include"
LDLIBS += -l"driverlib/f2837xd/driverlib/ccs/Release/driverlib.lib" 
LDLIBS += -ldevice.cmd
LDLIBS += -llibc.a

# All Target
all: $(OBJS) $(LIB_SRCS) $(GEN_CMDS)
	@$(MAKE) --no-print-directory -Onone "$(PRJ_NAME).out"

#include sysconfig.mk

main.obj: main.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
	@echo 'Building file: "$<"'
	@echo 'Invoking: C2000 Compiler'
	"$(CC)" $(CFLAGS) $(CPPFLAGS)  $(GEN_OPTS__FLAG) "$<"
	@echo 'Finished building: "$<"'
	@echo ' '

DUT.obj: DUT.c $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
	@echo 'Building file: "$<"'
	@echo 'Invoking: C2000 Compiler'
	"$(CC)" $(CFLAGS) $(CPPFLAGS)  $(GEN_OPTS__FLAG) "$<"
	@echo 'Finished building: "$<"'
	@echo ' '

f2837xd_codestartbranch.obj: $(C2000WARE_ROOT)/device_support/f2837xd/common/source/f2837xd_codestartbranch.asm $(GEN_OPTS) | $(GEN_FILES) $(GEN_MISC_FILES)
	@echo 'Building file: "$<"'
	@echo 'Invoking: C2000 Compiler'
	"$(CC)" $(CFLAGS) $(CPPFLAGS)  $(GEN_OPTS__FLAG) "$<"
	@echo 'Finished building: "$<"'
	@echo ' 

# Tool invocations
$(TARGET): $(OBJS) $(LIB_SRCS) $(GEN_CMDS)
	@echo 'Building target: "$@"'
	@echo 'Invoking: C2000 Linker'
	"$(CC)" $(CFLAGS) $(CPPFLAGS) $(GEN_OPTS__FLAG) -z $(LDFLAGS)  $(GEN_CMDS__FLAG) -o "$(TARGET)" $(OBJS) $(LDLIBS)
	@echo 'Finished building target: "$@"'
	@echo ' '
	@$(MAKE) --no-print-directory post-build

# Other Targets
clean:
	-$(RM) "$(TARGET)"
	-$(RM) "*.lst" "*.map" "*.xml"
	-$(RM) "*.obj"
	-$(RM) "*.asm"
	-@echo 'Finished clean'
	-@echo ' '

post-build:
	C:\ti\commonTools\ti-cgt-c2000_22.6.3.LTS\bin\dis2000 $(TARGET)  -y -r -e -a -s --c2000_format=28 $(PRJ_NAME).asm
	@echo ' '

.PHONY: all clean post-build

