# ======================================================================# Common Makefile for USBtiny applications## Macros to be defined before including this file:## USBTINY - the location of this directory# TARGET_ARCH - gcc -mmcu= option with AVR device type# OBJECTS - the objects in addition to the USBtiny objects# FLASH_CMD - command to upload main.hex to flash# FUSES_CMD - command to program the fuse bytes# STACK - maximum stack size (optional)# FLASH - flash size (optional)# SRAM - SRAM size (optional)# SCHEM - Postscript version of the schematic to be generated## Copyright 2006-2010 Dick Streefland## This is free software, licensed under the terms of the GNU General# Public License as published by the Free Software Foundation.# ======================================================================check = $(shell $(CC) $1 -c -xc /dev/null -o/dev/null 2>/dev/null && echo $1)CC = avr-gccOPTIM = -Os -ffunction-sections $(call check,-fno-split-wide-types)CFLAGS = -g -Wall -Wattributes -I. -I$(USBTINY) $(OPTIM)LDFLAGS = -g -Wl,--relax,--gc-sectionsMODULES = crc.o int.o usb.o $(OBJECTS)UTIL = $(USBTINY)/../utilmain.hex:all: main.hex $(SCHEM)clean:rm -f main.elf *.o tags *.sch~ gschem.logclobber: cleanrm -f main.hex $(SCHEM)main.elf: $(MODULES)$(LINK.o) -o $@ $(MODULES)main.hex: main.elf $(UTIL)/check.py@python $(UTIL)/check.py main.elf $(STACK) $(FLASH) $(SRAM)avr-objcopy -j .text -j .data -O ihex main.elf main.hexcheck: main.elf $(UTIL)/check.py@python $(UTIL)/check.py main.elf $(STACK) $(FLASH) $(SRAM)disasm: main.elfavr-objdump -S main.elfflash: main.hex$(FLASH_CMD)fuses:$(FUSES_CMD)crc.o: $(USBTINY)/crc.S $(USBTINY)/def.h usbtiny.h$(COMPILE.c) $(USBTINY)/crc.Sint.o: $(USBTINY)/int.S $(USBTINY)/def.h usbtiny.h$(COMPILE.c) $(USBTINY)/int.Susb.o: $(USBTINY)/usb.c $(USBTINY)/def.h $(USBTINY)/usb.h usbtiny.h$(COMPILE.c) $(USBTINY)/usb.cmain.o: $(USBTINY)/usb.h%.ps: %.sch $(UTIL)/sch2ps$(UTIL)/sch2ps $<