summaryrefslogtreecommitdiffstats
path: root/Makefile
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
bues.ch cgit interface