# Makefile for building Smart Response XE Snek firmware MCU = atmega128rfa1 F_CPU = 8000000UL BAUD = 19200 PROGRAMMER = Arduino PORT = /dev/ttyUSB0 # Linux # PORT = COM3 # Windows (adjust as needed) CC = avr-gcc OBJCOPY = avr-objcopy AVRDUDE = avrdude CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -Os -Wall -std=gnu99 LDFLAGS = -mmcu=$(MCU) SRC = \ main.c \ board.c \ spi.c \ notes.c \ notes_fs.c \ snek/snek.c \ snek/snek_gc.c \ snek/snek_eval.c \ snek/snek_lib.c \ snek/snek_vm.c OBJ = $(SRC:.c=.o) TARGET = srxesnek HEX = $(TARGET).hex all: $(HEX) $(HEX): $(TARGET).elf $(OBJCOPY) -O ihex -R .eeprom $< $@ $(TARGET).elf: $(OBJ) $(CC) $(LDFLAGS) -o $@ $^ %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ flash: $(HEX) $(AVRDUDE) -p $(MCU) -c $(PROGRAMMER) -P $(PORT) -b 19200 -U flash:w:$(HEX):i clean: rm -f $(OBJ) $(TARGET).elf $(HEX)