68 lines
2.3 KiB
Makefile
Executable File
68 lines
2.3 KiB
Makefile
Executable File
#===============================================================
|
|
#Makefile for building MSP Code Examples in command line
|
|
#environement using the GCC Open Source Compiler for MSP430
|
|
#===============================================================
|
|
|
|
# Require DEVICE to be specified
|
|
ifndef DEVICE
|
|
$(info Please specify a device, e.g. DEVICE=MSP430F5529)
|
|
$(error unspecified device)
|
|
endif
|
|
# Require EXAMPLE to be specified
|
|
ifndef EXAMPLE
|
|
$(info Please specify an example, e.g. EXAMPLE=MSP430F55xx_adc_01)
|
|
$(error unspecified example)
|
|
endif
|
|
|
|
###################### Windows OS ######################
|
|
ifeq ($(OS),Windows_NT)
|
|
################## GCC Root Variable ###################
|
|
GCC_DIR ?= '$(HOMEDRIVE)$(HOMEPATH)/ti/gcc'
|
|
GCC_MSP_INC_DIR ?= $(GCC_DIR)/include
|
|
LDDIR := $(GCC_MSP_INC_DIR)/$(DEVICE)
|
|
RM := rd /s /q
|
|
################### Linux or Mac OS ####################
|
|
else
|
|
################## GCC Root Variable ###################
|
|
GCC_DIR ?= ~/ti/gcc
|
|
GCC_MSP_INC_DIR ?= $(GCC_DIR)/include
|
|
LDDIR := $(GCC_MSP_INC_DIR)/$(shell echo $(DEVICE) | tr A-Z a-z)
|
|
RM := rm -rf
|
|
endif
|
|
|
|
######################################
|
|
GCC_BIN_DIR ?= $(GCC_DIR)/bin
|
|
GCC_INC_DIR ?= $(GCC_DIR)/msp430-elf/include
|
|
######################################
|
|
CC := $(GCC_BIN_DIR)/msp430-elf-gcc
|
|
GDB := $(GCC_BIN_DIR)/msp430-elf-gdb
|
|
######################################
|
|
CFLAGS := -Os -D__$(DEVICE)__ -mmcu=$(DEVICE) -g -ffunction-sections -fdata-sections -DDEPRECATED
|
|
LDFLAGS := -T $(LDDIR).ld -L $(GCC_MSP_INC_DIR) -mmcu=$(DEVICE) -g -Wl,--gc-sections
|
|
INCLUDES := -I $(GCC_MSP_INC_DIR) -I $(GCC_INC_DIR)
|
|
######################################
|
|
SRC := ../C/$(EXAMPLE).c
|
|
EXOBJECT := $(EXAMPLE)/$(EXAMPLE).o
|
|
EXOUTPUT := $(EXAMPLE)/$(EXAMPLE).out
|
|
######################################
|
|
|
|
all: $(EXOUTPUT)
|
|
|
|
$(EXAMPLE):
|
|
@mkdir $(EXAMPLE)
|
|
|
|
$(EXOBJECT): ${SRC}
|
|
@echo ============================================
|
|
@echo Compiling $(EXAMPLE).c
|
|
$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
|
|
|
|
$(EXOUTPUT): $(EXAMPLE) $(EXOBJECT)
|
|
@echo ============================================
|
|
@echo Linking objects and generating output binary
|
|
$(CC) $(LDFLAGS) $(EXOBJECT) -o $@
|
|
|
|
debug: all
|
|
$(GDB) $(EXAMPLE)/$(EXAMPLE).out
|
|
|
|
clean:
|
|
@$(RM) $(EXAMPLE)
|