CPU_StepperControl = atmega16m1 CPU_ECRIS_REMOTE=atxmega128a1 CPU_lcd=atmega16 CPU_sologse=atmega644 CPU_chaos=atmega32m1 CPU_leia=atmega32m1 pMCU-atmega16m1 = m16 pMCU-atmega32m1 = m32m1 pMCU-atmega16 = m16 pMCU-atmega644 = m644 MCU = $(CPU_$*) CC=avr-gcc -Wall -Wno-parentheses -MMD -std=c99 -O2 -mmcu=$(MCU) \ -funsigned-char \ -funsigned-bitfields \ -fpack-struct \ -fshort-enums CFLAGS = $($*_CFLAGS) $(DEBUG) %.s: %.c revision.h $(CC) -S $(CFLAGS) -fverbose-asm $< %.o: %.c revision.h $(CC) -g -c $(CFLAGS) $< revision.h: .git git log --pretty='#define Revision 0x%h' --abbrev=8 HEAD^! > revision.h+ git log --pretty='#define Id "0x%h %as %an"' --abbrev=8 HEAD^! >> revision.h+ diff -q revision.h+ revision.h || \mv -v revision.h+ revision.h -include *.d LDFLAGS = %.elf: %.o $(CC) $(CFLAGS) -Wl,-Map=$*.map,--cref $^ --output $@ $(LDFLAGS) OBJCOPY = avr-objcopy %.hex: %.elf $(OBJCOPY) -O ihex -R .eeprom $< $@ %.eeprom: %.elf $(OBJCOPY) -O ihex -j .eeprom --change-section-lma .eeprom=0 $< $@ AVRDUDE = avrdude AVRDUDE_PROGRAMMER = avrispmkii AVRDUDE_PORT = usb AVRDUDE_WRITE_FLASH = -U flash:w:$< AD = $(AVRDUDE) -p $(pMCU-$(MCU)) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) %.burn: %.hex $(AD) -U flash:v:$< || $(AD) -U flash:w:$< lfuse_lcd=0xff # CKDIV8 : no # CKOUT: yes, on PB1, pin 41 # SUT: max # CLKSEL: external clock lfuse_sologse=0xA0 lfuse_chaos=0xef chaos_CFLAGS = -I. chaos.o: ads8688.h ltc1655.h spi_slave.h tick.h hvosc.h hvled.h chaos.s: ads8688.h ltc1655.h spi_slave.h tick.h hvosc.h hvled.h chaos.hex: chaos.eeprom lfuse_leia=0xef leia_CFLAGS = -I. leia.o: spi_slave.h leia.s: spi_slave.h leia.hex: leia.eeprom %.lfuse: $(AD) -B 5 -U lfuse:w:$(lfuse_$*):m %.id: $(AD) -B 5 -U lfuse:v:$(lfuse_$*):m clean: rm -f *.hex *.o *.s *.map *.elf *.d VPATH = .:LCD/lcd_slave_sync:sologse:chaos:leia lcd_CFLAGS = -I. -DDEBUG lcd.o: lcd.c spi_slave.h lcd_routines.h lcd_routines.c uart_atmega16.c .PHONY: eeprom.eeprom %.eeprom.eeprom: %.hex $(AD) -U eeprom:r:$@ %.eeprom.burn: %.eeprom $(AD) -U eeprom:v:$< || $(AD) -U eeprom:w:$< %.ad: $(AD) -v -t