all: sologse.hex mtr3gse.hex CPU_sologse= CPU_mtr3gse=atmega644 MCU = atmega644 pMCU-atmega16m1 = m16 pMCU-atmega16 = m16 pMCU-atmega644 = m644 CC=avr-gcc -Wall -MMD -std=c99 -O3 -mmcu=$(MCU) \ -funsigned-char \ -funsigned-bitfields \ -fpack-struct \ -fshort-enums SN=1 CFLAGS = $($*_CFLAGS) $(DEBUG) -I. -DSN="$(SN)" C_FILES = adc.c hex.c io_base.c io_spi.c io_usart.c sologse.c timer.c OBJS = $(patsubst %.c, %.o, $(C_FILES)) %.s: %.c $(CC) $(CFLAGS) -S $< %.o: %.c $(CC) -gstabs $(CFLAGS) -c $< -include *.d LDFLAGS = sologse.elf: solo.o mtr3gse.elf: mtr3.o %.elf: $(OBJS) $(CC) $(CFLAGS) -Wl,-Map=$*.map,--cref $^ --output $@ $(LDFLAGS) OBJCOPY = avr-objcopy %.hex: %.elf $(OBJCOPY) -O ihex -R .eeprom $< $@ AVRDUDE = avrdude AVRDUDE_PROGRAMMER = avrispmkii AVRDUDE_PORT = usb AVRDUDE_WRITE_FLASH = -U flash:w:$< %.burn: %.hex $(AVRDUDE) -p $(pMCU-$(MCU)) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) \ -U flash:w:$< lfuse_LCD=0xff # CKDIV8 : no # CKOUT: yes, on PB1, pin 41 # SUT: max # CLKSEL: external clock lfuse_sologse=0xA0 lfuse_mtr3gse=0xA0 %.lfuse: $(AVRDUDE) -p $(pMCU-$(MCU)) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER) \ -B 5 -U lfuse:w:$(lfuse_$*):m clean: rm -f *.hex *.o *.s *.map *.elf *.d