blob: 5447ca7f765e5d59e6d011062e9b2e06d1e64289 (
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
# Game selection. Selections: {tetris}
GAME := tetris
# Board hardware selection. Selections: {plain, myavr}
BOARD := plain
# Project name
NAME := $(GAME)
# Project source files
SRCS := 4094.c \
bitmap.c \
buzzer.c \
font_10x14.c \
ks0108.c \
main.c \
music.c \
output_extender.c \
shr3.c \
util.c
GEN_SRCS :=
# Bootloader source files
BOOT_SRCS :=
BOOT_GEN_SRCS :=
BOOT_OFFSET :=
# Game specific stuff
ifeq ($(GAME),tetris)
GAMEID := GAMEID_TETRIS
SRCS += tetris.c
else
$(error Invalid GAME type selection)
endif
# Board specific stuff
ifeq ($(BOARD),plain)
BOARDID := BOARDID_PLAIN
else ifeq ($(BOARD),myavr)
BOARDID := BOARDID_MYAVR
else
$(error "Invalid BOARD type selection)
endif
# CPU speed, in Hz
F_CPU := 16000000ul
# Project fuse bits
LFUSE := 0xFF
HFUSE := 0xD9
EFUSE :=
# Architecture configuration
GCC_ARCH := atmega8
AVRDUDE_ARCH := m8
FUNC_STACK_LIMIT := 384
# Programmer selection.
ifeq ($(BOARD),plain)
PROGRAMMER := avrisp2
endif
ifeq ($(BOARD),myavr)
PROGRAMMER := mysmartusb
endif
#PROGRAMMER := avrisp2
#PROGRAMMER := usbasp
#PROGRAMMER := usbasp-clone
#PROGRAMMER := avr910
#PROGRAMMER := mysmartusb
PROGPORT :=
# Instrumentation
INSTRUMENT_FUNC :=
BOOT_INSTRUMENT_FUNC :=
# Generate random number generator seed.
RNG_SEED := $(shell python3 -c 'import random; print(random.randint(0, 0xFFFFFFFF))')
# Additional compiler flags
CFLAGS := -Iavrmakelib -Wno-conversion \
-DRNG_SEED=$(RNG_SEED)ul \
-DGAMEID=$(GAMEID) \
-DBOARDID=$(BOARDID)
LDFLAGS :=
SPARSEFLAGS :=
BOOT_CFLAGS :=
BOOT_LDFLAGS :=
BOOT_SPARSEFLAGS :=
# Additional "clean" and "distclean" target files
CLEAN_FILES :=
DISTCLEAN_FILES :=
include avrmakelib/avrmakelib.mk
|