blob: bc3185231f7c8aab61c79f5e8764486e70dab705 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
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
|