# muchly stolen from m68hc1x's example.tar.gz's Makefile OBJS = \ motors.o keypad.o display_basic.o coinmech.o chime.o \ helpers.o main_basic.o sci.o \ vectors.o start.o INCLUDES = vend.h keypad.h chime.h asm.h display_basic.h ports.h types.h # debugging doesn't get compiled into the ROM image CFLAGS = -m68hc11 -mshort -Wall -O1 \ -msoft-reg-count=0 -ffixed-z -g -fomit-frame-pointer LDFLAGS = -m68hc11 -mshort -Wl,-m,m68hc11elfb \ -nostartfiles \ -Wl,-defsym,_io_ports=0x1000 \ -Wl,-defsym,_switch_input=0x1800 \ -Wl,-defsym,_misc_input=0x2000 \ -Wl,-defsym,_home_sensors=0x2800 \ -Wl,-defsym,_changer_output=0x3000 \ -Wl,-defsym,_misc_output=0x3800 \ -Wl,-defsym,_uart_regs=0x4000 OBJCOPY_FLAGS=--only-section=.text \ --only-section=.rodata \ --only-section=.vectors \ --only-section=.data DEVC_PREFIX = m68hc11- CC = $(DEVC_PREFIX)gcc AS = $(DEVC_PREFIX)as AR = $(DEVC_PREFIX)ar SIZE = $(DEVC_PREFIX)size OBJCOPY = $(DEVC_PREFIX)objcopy OBJDUMP = $(DEVC_PREFIX)objdump LD = $(DEVC_PREFIX)ld all: rom2.b rom2.elf rom2.s19 rom2.elf: $(OBJS) memory.x $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBADD) clean: rm -f *.o *.elf *.s19 *.b *.a # # Some useful rules # dump: rom2.elf $(OBJDUMP) -d $< size: rom2.s19 $(SIZE) $< # # Implicit rules # # .elf is for the simulator and gdb # .s19 is for some downloader and the simulator # .b is a binary dump # .SUFFIXES: .elf .s19 .b .elf.s19: $(OBJCOPY) --output-target=srec $(OBJCOPY_FLAGS) $< $*.s19 .elf.b: $(OBJCOPY) --output-target=binary --gap-fill=255 \ --only-section=.data $(OBJCOPY_FLAGS) $< $*.b