
###############################################################################
# Makefile for uWatch
###############################################################################


## General Flags
PROJECT = ledRing
TARGET = build/$(PROJECT).elf
CC = msp430-gcc

MSPDEBUG = mspdebug
PROGFLAGS = rf2500

## MCU to pass to the linker
MCU = msp430g2553

## C flags
#CFLAGS := -Wall -Os -mmcu=$(MCU) -nostartfiles #-gdwarf-2 

CFLAGS := -Wall -Os -mmcu=$(MCU) -std=c99 -fpack-struct -gstabs -fdata-sections -ffunction-sections

## Assembly flags
ASMFLAGS := -x assembler-with-cpp -mmcu=$(MCU) -Wa,-gstabs 

## Linker flags
LDFLAGS = -mmcu=$(MCU)  -Wl,--gc-sections


SRC_DIR   := 
BUILD_DIR := build 

## Do not edit below this line.


SRC_A       := $(wildcard src/*.c) $(wildcard src/capSense/*.c) 

SRC       := $(patsubst src/%.c,%.c,$(SRC_A))


ASM       := led.s

ASM_OBJ	  := build/led.o #$(ASM:.s=.o)

#OBJ       = $(patsubst src/%.c,build/%.o,$(SRC))
OBJ_A 	:= $(SRC:.c=.o)
OBJ     = $(OBJ_A:%.o=build/%.o)

DEP	  := $(OBJ:%.o=%.d)
INCLUDES  := $(addprefix -I,$(SRC_DIR))
INCLUDES += -I.



all: checkdirs $(OBJ) $(ASM_OBJ) $(TARGET) size debug

#-include $(DEP)

checkdirs: 
	@mkdir -p build
	@mkdir -p build/capSense


clean:
	@rm -rf build/



# Build ASM src files
#%.o : $(SRC_DIR)/%.s
#	@echo "ASM" $< " > " $@
#	@$(CC) $(INCLUDES) $(ASMFLAGS) -c $< -o $@
#	@msp430-size $@

# Build dir must be built in order to compile
#$(ASM_OBJ): | $(BUILD_DIR)


# Build ASM src files
build/%.o: src/%.s
#"CC " $< " > " $@
	$(CC) $(INCLUDES) $(ASMFLAGS) -c $< -o $@
	@msp430-size $(patsubst src/%,build/%,$@)

ec:
	@echo $(OBJ)

# Build C src files
build/%.o: src/%.c
#"CC " $< " > " $@
	$(CC) $(INCLUDES) $(CFLAGS) -c $< -MD -o $@
	@msp430-size $(patsubst src/%,build/%,$@)



	
	
# Compile *.elf target from objects	
$(TARGET): $(OBJ) $(ASM_OBJ)
	@echo "=========================="
	@echo "$^ >" $@
	@$(CC) $(LDFLAGS) $(LIBDIRS) $(LIBS) $^ -o $@
	@echo "=========================="

size: $(TARGET)
#	@echo
	@msp430-size ${TARGET}

prog: $(TARGET)
	$(MSPDEBUG) $(PROGFLAGS) 'prog $<'


debug: $(TARGET)
	@msp430-objdump -DSC $< > build/ledRing.lst

