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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
SHELL = /bin/sh
MCU = atmega16
F_CPU=16000000
CC = avr-gcc
CFLAGS = -g -Os -mmcu=$(MCU) -DF_CPU=$(F_CPU) -Wall
AS = avr-as
ASFLAGS = $(CFLAGS)
LD = avr-ld
LDFLAGS =
TARGETS := test img_mono blink fade pulse numtest
MAINS := $(addsuffix .o, $(TARGETS))
C_OBJS := base.o libleds.o chars/chars.o
S_OBJS := libleds_asm.o
OBJS := $(C_OBJS) $(S_OBJS)
DEPS := Makefile libleds.h
COLOR_TARGETS := c_black c_white c_red c_green c_blue
COLOR_MAINS := $(addsuffix .o, $(COLOR_TARGETS))
NUMBERS = $(shell seq 0 9)
UPPERCASE = A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
LOWERCASE = $(call lc, $(UPPERCASE))
SPECIAL_CHARS = space
CHARS = $(NUMBERS) $(UPPERCASE) $(LOWERCASE) $(SPECIAL_CHARS)
NUMBERS_DEP = chars/chars.o $(addprefix chars/, $(addsuffix .xbm, $(NUMBERS)))
UPPERCASE_DEP = chars/chars.o $(addprefix chars/, $(addsuffix .xbm, $(UPPERCASE)))
LOWERCASE_DEP = chars/chars.o $(addprefix chars/, $(addsuffix .xbm, $(LOWERCASE)))
SPECIAL_CHARS_DEP = chars/chars.o $(addprefix chars/, $(addsuffix .xbm, $(SPECIAL_CHARS)))
CHARS_DEP = chars/chars.o $(addprefix chars/, $(addsuffix .xbm, $(CHARS)))
.PHONY: all all-normal all-colors
all: all-core all-colors
all-core: $(TARGETS)
.PHONY: color
all-colors color: $(COLOR_TARGETS)
.PHONY: clean
clean:
rm -f $(TARGETS) $(MAINS) $(OBJS) $(COLOR_TARGETS) $(COLOR_MAINS)
rm -f chars/chars.o
.PHONY: list-targets _list-targets-core _list-targets-color
list-targets: _list-targets-core _list-targets-color
@printf "\n"
list-targets-core list-targets-color: % : _%
@printf "\n"
_list-targets-core:
@printf "%s " "$(TARGETS)"
_list-targets-color:
@printf "%s " "$(COLOR_TARGETS)"
# Build targets
chars/chars.c: %.c: %.h
@touch $@
$(MAINS) $(C_OBJS): %.o : %.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $<
$(TARGETS) $(COLOR_TARGETS): % : $(OBJS) %.o
$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $^
numtest.o: $(NUMBERS_DEP)
img_mono.o: %.o : %.xbm
# Color Targets
c_black.o: color.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $< \
-DCOLOR_RED=0x00 -DCOLOR_GREEN=0x00 -DCOLOR_BLUE=0x00
c_white.o: color.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $< \
-DCOLOR_RED=0x00 -DCOLOR_GREEN=0xFF -DCOLOR_BLUE=0xFF
c_red.o: color.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $< \
-DCOLOR_RED=0xFF -DCOLOR_GREEN=0x00 -DCOLOR_BLUE=0x00
c_green.o: color.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $< \
-DCOLOR_RED=0x00 -DCOLOR_GREEN=0xFF -DCOLOR_BLUE=0x00
c_blue.o: color.c $(DEPS)
$(CC) $(CFLAGS) -c -o $@ $< \
-DCOLOR_RED=0x00 -DCOLOR_GREEN=0x00 -DCOLOR_BLUE=0xFF
|