IDIR=include # ------------------------------------------------------------------- # Computer stuff TPDIR=3rd-party DEFINES=-DDETERMINISTIC CFLAGS=-O3 -Wall -Wextra -std=c99 -D_DEFAULT_SOURCE $(DEFINES) -I$(IDIR) -I$(TPDIR) LIBS= SRCS=$(wildcard include/*.c) $(wildcard 3rd-party/*.c) OBJS=$(SRCS:.c=.o) PROG=ctaklm STAT=pptdb SIZE=size # ------------------------------------------------------------------- # MCU stuff MCU=atmega32 F_CPU=20000000UL ACC=avr-gcc ACFLAGS=-Os -Wall -fpack-struct -fshort-enums -funsigned-bitfields -funsigned-char -I$(IDIR) AOBJCOPY=avr-objcopy AOBJSIZE=avr-size AVRDUDE=avrdude ADFLAGS=-c usbasp -p t24 TARGET=mcu AHEX=$(TARGET).hex ASRC=src/$(TARGET).c $(wildcard include/*.c) AOBJ=$(patsubst %.c, %.o, $(ASRC)) AASM=$(patsubst %.c, %.s, $(ASRC)) # ------------------------------------------------------------------- # Targets %.o: %.c cc -c $< -o $@ $(CFLAGS) $(PROG): src/$(PROG).o $(OBJS) $(CC) $(CFLAGS) src/$(PROG).o $(OBJS) -o $(PROG) $(SIZE) $(PROG) $(STAT): src/$(STAT).o $(OBJS) $(CC) $(CFLAGS) src/$(STAT).o $(OBJS) -o $(STAT) avr: $(AHEX) $(AASM) ASUMMARY upload $(AHEX): $(AOBJ) $(AOBJCOPY) -S -j .text -j .data -O ihex $< $@ $(AOBJ): $(ASRC) $(ACC) $(ACFLAGS) -DF_CPU=$(F_CPU) -mmcu=$(MCU) $(ASRC) -o $@ %.s: %.c $(ACC) -S $(ACFLAGS) -DF_CPU=$(F_CPU) -mmcu=$(MCU) $< -o $@ ASUMMARY: $(AOBJ) @echo ---------------------------------------------------------------------- @$(AOBJSIZE) $(AOBJ) $(AHEX) upload: $(TARGET).hex $(AVRDUDE) $(ADFLAGS) -U flash:w:$< clean: rm -f $(PROG) $(STAT) $(OBJS) rm -f $(AOBJ) $(AHEX) $(AASM) rm -f src/*.o