#
# Makefile for to make stuffs
# msp430 version! 
# OpenWii - YOLD 3173 wafro
#

# cross compiler
# CHANGE THIS TO YOUR COMPILER'S BINARY DIRECTORY AND CROSS COMPILER PREFIX
CROSS_COMPILE_PATH = /opt/msp430_latest/bin/
CROSS_COMPILE_PREFIX = msp430-

# what files to use for each section.
OBJS=../common/serial.o ../common/main.o archdep.o

#what to name the intermediate .elf and output .bin file
BINNAME = openwii_msp430

#Target processor
MCU = msp430x2013

#If your compilers are called something different change these...
LD = $(CROSS_COMPILE_PATH)$(CROSS_COMPILE_PREFIX)ld
CC = $(CROSS_COMPILE_PATH)$(CROSS_COMPILE_PREFIX)gcc
AS = $(CROSS_COMPILE_PATH)$(CROSS_COMPILE_PREFIX)as

#c compiler options
CFLAGS = -mdisable-hwmul -mmcu=$(MCU)

#Ld flags
LDFLAGS = -m$(MCU) \
  $(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib/crt430x2013.o \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3/msp1 \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3 \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3/msp1 \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3 \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib/msp1 \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib/msp1 \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib \
  -L$(CROSS_COMPILE_PATH)../lib/gcc-lib/msp430/3.2.3/../../..

#more ld flags
LDADD = -lgcc -lc -lgcc

# This defines how to handle the various file types in/out
#.S.s:
#	$(AS) $(AFLAGS) $< -o $*.s
.S.o:
	$(AS) $(AFLAGS) $< -o $*.o
.c.o:
	$(CC) $(CFLAGS) -c $< -o $*.o
.o:
	$(CC) -c $(CFLAGS) $<
.o.elf:
	$(LD) $(LDFLAGS) $< -o *.elf
.elf.bin:
	$(LD) $(LDFLAGS) $< -o *.bin --oformat binary

#These sections below define the different make types
# make everythng
all: openwii link

#make openwii microntroller firmware
openwii: $(OBJS)
	$(CC) $(CFLAGS) -o openwii.elf $(OBJS)

#link openwii microntroller firmware
link: 
	$(LD) $(LDFLAGS) $(ASMFILES) $(OBJS) -o $(BINNAME).elf $(LDADD)

# ofc a make clean, very handy
clean:
	rm -f *.o *.elf *.bin *.hex ../common/*.o
