# 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