# $Id: Makefile.msp430,v 1.35 2011/01/19 07:30:31 adamdunkels Exp $ ifdef nodeid CFLAGS += -DNODEID=$(nodeid) endif .SUFFIXES: ### Define the CPU directory CONTIKI_CPU=$(CONTIKI)/cpu/msp430 ### Define the source files we have in the MSP430 port CONTIKI_CPU_DIRS = . dev MSP430 = msp430.c flash.c clock.c leds.c leds-arch.c \ watchdog.c lpm.c mtarch.c rtimer-arch.c UIPDRIVERS = me.c me_tabs.c slip.c crc16.c ELFLOADER = elfloader.c elfloader-msp430.c symtab.c CONTIKI_TARGET_SOURCEFILES += $(MSP430) \ $(SYSAPPS) $(ELFLOADER) \ $(UIPDRIVERS) CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES) ### Compiler definitions CC = msp430-gcc LD = msp430-gcc AS = msp430-as AR = msp430-ar NM = msp430-nm OBJCOPY = msp430-objcopy STRIP = msp430-strip BSL = msp430-bsl ifdef WERROR CFLAGSWERROR=-Werror endif CFLAGSNO = -Wall -mmcu=$(MCU) -g $(CFLAGSWERROR) CFLAGS += $(CFLAGSNO) -Os LDFLAGS += -mmcu=$(MCU) -Wl,-Map=contiki-$(TARGET).map ### These flags can reduce the code size and RAM usage with up to 10% ifdef SMALL CFLAGS += -ffunction-sections LDFLAGS += -Wl,--gc-sections,--undefined=_reset_vector__,--undefined=InterruptVectors,--undefined=_copy_data_init__,--undefined=_clear_bss_init__,--undefined=_end_of_init__ endif # SMALL PROJECT_OBJECTFILES += ${addprefix $(OBJECTDIR)/,$(CONTIKI_TARGET_MAIN:.c=.o)} ### Compilation rules %-stripped.o: %.c $(CC) $(CFLAGS) -c $< -o $@ $(STRIP) --strip-unneeded -g -x $@ %.cm: %.co $(LD) -i -r --unresolved-symbols=ignore-in-object-files -mmsp430x149 -o $@ $^ $(STRIP) --strip-unneeded -g -x $@ %-stripped.o: %.o $(STRIP) --strip-unneeded -g -x -o $@ $< %.o: ${CONTIKI_TARGET}/loader/%.S $(AS) -o $(notdir $(<:.S=.o)) $< %.firmware: %.${TARGET} mv $< $@ %.ihex: %.$(TARGET) $(OBJCOPY) $^ -O ihex $@ %.mspsim: %.${TARGET} java -jar ${CONTIKI}/tools/mspsim/mspsim.jar -platform=${TARGET} $< mspsim-maptable: contiki-${TARGET}.map java -classpath ${CONTIKI}/tools/mspsim/mspsim.jar se.sics.mspsim.util.MapTable $< core-labels.o: core.${TARGET} ${CONTIKI}/tools/msp430-make-labels core.${TARGET} > core-labels.S $(AS) -o $@ core-labels.S # cp core-labels.o app/ core-globals.o: core.${TARGET} ${CONTIKI}/tools/msp430-make-globals core.${TARGET} > core-globals.S $(AS) -o $@ core-globals.S loader-init.o: ${CONTIKI_TARGET}/loader/loader-init.S $(AS) -o $(notdir $(<:.S=.o)) $< # cp loader-init.o build-app/ .PHONY: symbols.c symbols.h ifdef CORE symbols.c: # @${CONTIKI}/tools/msp430-make-symbols $(CORE) $(NM) $(CORE) | awk -f $(CONTIKI)/tools/mknmlist > symbols.c else symbols.c symbols.h: @${CONTIKI}/tools/make-empty-symbols endif