Files
MSP430/MSP430F20xx_Code_Examples/GCC_Makefile/Makefile
T
2019-11-12 23:43:53 +02:00

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)