# Tool prefix XC16_HOME := /opt/microchip/xc16/v1.21/ XC16_PFX := $(XC16_HOME)/bin/xc16- GCC := $(XC16_HOME)/bin/bin/coff-gcc LD := $(XC16_HOME)/bin/bin/coff-ld BIN2HEX := $(XC16_HOME)/bin/bin/coff-bin2hex CPUFLAGS := -mcpu=30F3012 CFLAGS := -I. $(CPUFLAGS) -g -Wall -mlarge-code -mconst-in-code -fno-schedule-insns -fno-schedule-insns2 REBUILD := Makefile # Always rebuild when Makefile changes H := $(wildcard *.h) .PHONY: all clean all: main.hex clean: rm -f *.map *.o *.hex *.cof *~ *.pyc *.c.s %.hex: %.cof $(REBUILD) $(BIN2HEX) $< %.cof: %.o $(REBUILD) $(GCC) $(CPUFLAGS) $< -o$@ -Wl,-L$(XC16_HOME)/lib/dsPIC30F,--script=p30F3012.gld,--defsym=__MPLAB_BUILD=1,-Map=$*.map,--report-mem %.o: %.c $(H) $(REBUILD) $(GCC) $(CFLAGS) -c $< -o $@ %.c.s: %.c $(H) $(REBUILD) $(GCC) -S $(CFLAGS) -c $< -o $@ %.prog: %.hex $(REBUILD) pk2cmd.30F3012.write $< # http://ww1.microchip.com/downloads/en/DeviceDoc/xc16-v1.21-release-notes.html # see .map file generated by MPLAB for flags