#BAUD = 57600
#BAUD = 115200
#I2C_SUPPORT = 0
-ADC_SUPPORT = 0
#EM_Z80 = 0
#FAT16_SUPPORT = 0
#CPMDSK_SUPPORT = 0
#MMCBOOTLOADER = 0
-# Version defined in 'config.inc'.
-VMAJOR = $(call conf-val, VMAJOR, config.inc)
-VMINOR = $(call conf-val, VMINOR, config.inc)
-
-
TARGET = avrcpm
ASRC0 = avrcpm.asm
ASRC0 += dsk_cpm.asm dsk_fat16.asm dsk_fsys.asm dsk_mgr.asm dsk_ram.asm
ASRC0 += 8080int-orig.asm 8080int.asm 8080int-jmp.asm 8080int-t3.asm 8080int-t3-jmp.asm Z80int-jmp.asm
+EXTRA_DIST := autorevision.cache
+
+PREFIX = $(PROG)_$(VERSION)
+DIST_NAME = $(PREFIX).zip
+
+$(foreach X,$(subst =,:=,$(subst ",,$(filter VCS_%,\
+ $(shell autorevision -q -t sh -o ./autorevision.cache)))),$(eval $X))
+
+VERSION := $(shell echo "$(VCS_TAG)" | sed -e 's/^v//g')
+VMAJOR := $(shell echo "$(VCS_TAG)" | sed -E 's/([^0-9]*)([0-9]+)([.])([0-9]+)([^0-9]*)/\2/')
+VMINOR := $(shell echo "$(VCS_TAG)" | sed -E 's/([^0-9]*)([0-9]+)([.])([0-9]+)([^0-9]*)/\4/')
+
+
+ifneq ($(VCS_TICK),0)
+ VERSION := $(VERSION)-$(VCS_TICK)
+endif
+ifneq ($(VCS_BRANCH),master)
+ VERSION := $(VERSION)-$(VCS_BRANCH)
+endif
+ifeq ($(VCS_WC_MODIFIED),1)
+ VERSION := $(VERSION)-dirty
+endif
+
ifneq ($(DRAM_8BIT),0)
ASRC0 += dram-8bit.inc dram-8bit.asm sw-uart.asm i2c.asm
else
ASRC0 += dram-4bit.inc dram-4bit.asm hw-uart.asm
endif
-ASRC = $(ASRC0) svnrev.inc
-#ASRC := $(ASRC0) svnrev.inc
+ASRC = $(ASRC0)
# Place -D or -U options here
-CDEFS = -D$(MCU)
-
+CDEFS = -D$(MCU) -DVERSION=\"$(VERSION)\" -DVMAJOR=$(VMAJOR) -DVMINOR=$(VMINOR)
ifdef F_CPU
CDEFS += -DF_CPU=$(F_CPU)
endif
ifdef I2C_SUPPORT
CDEFS += -DI2C_SUPPORT=$(I2C_SUPPORT)
endif
-ifdef ADC_SUPPORT
- CDEFS += -DADC_SUPPORT=$(ADC_SUPPORT)
-endif
ifdef EM_Z80
CDEFS += -DEM_Z80=$(EM_Z80)
endif
CDEFS += -DTESTVERSION=$(TESTVERSION)
endif
-ASPATH = C:/Programme/Atmel/AVR\ Tools/AvrAssembler2
-DEFS = $(ASPATH)/Appnotes
+ASPATH := C:/Programme/Atmel/AVR\ Tools/AvrAssembler2
+DEFS := $(ASPATH)/Appnotes
ifeq "$(OS)" "Windows_NT"
PLATFORM=win32
AS = $(WINE) $(ASPATH)/avrasm2.exe
ASFLAGS = -I $(DEFS) $(CDEFS)
-AWK = gawk
OBJCOPY = avr-objcopy
CRCGEN = crcgen
HEXTOBIN = $(OBJCOPY) -I ihex -O binary --gap-fill 0xff
-#(call conf-val,config-id,config-file)
-#conf-val = $(shell awk -vID=$(strip $1) '$$0 ~ "^[ \t]*\#define[ \t]+" ID "[ \t]+" {print $$3}' $2 )
-conf-val = $(shell awk -vID=$(strip $1) '$$1$$2 ~ "\#define"ID {print $$3}' $2)
-
-
# Programming support using avrdude. Settings and variables.
AVRDUDE_PROGRAMMER = dragon_isp
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
-
# Uncomment the following if you want avrdude's erase cycle counter.
# Note that this counter needs to be initialized first using -Yn,
# see avrdude manual.
tags: $(SRC) $(ASRC)
ctags $(SRC) $(ASRC)
-svnrev.inc: $(ASRC0)
- svnrev -osvnrev.inc $^
- touch svnrev.inc
-
# Target: clean project.
clean:
$(REMOVE) $(TARGET).hex $(TARGET).eep $(TARGET).obj $(TARGET).map $(TARGET).lst \