aboutsummaryrefslogtreecommitdiff
path: root/firmware/Makefile
blob: 46b8d28b39a2fd2f039a699b407f9fa09cac749b (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
# $Id$

PROG=		firmware
NOMAN=

MCU_TARGET=	atmega8
F_CPU=		16000000
PRESCALE=	8
BAUD=		9600
ORG=		0x1e00

# You should not have to change anything below here.

CC=		avr-gcc
OBJCOPY=	avr-objcopy
OBJDUMP=	avr-objdump
SIZE=		avr-size

CFLAGS=		-Wall -Os -mmcu=${MCU_TARGET} \
		-DF_CPU=${F_CPU} -DPRESCALE=${PRESCALE} -DBAUD=${BAUD}
LDFLAGS=	-mmcu=${MCU_TARGET} \
		-Wl,-Map,${PROG}.map,--section-start=.text=${ORG}

.SUFFIXES:	.lst .hex .bin .srec .ehex .ebin .esrec

all: ${PROG} ${PROG}.lst ${PROG}.hex ${PROG}.ehex size

size: ${PROG}
	${SIZE} -C --mcu=${MCU_TARGET} ${.ALLSRC}

clean:
	rm -f *.o ${PROG} *.bak *.lst *.map *.hex *.bin *srec *.ehex *.ebin *.esrec

${PROG}.lst: ${PROG}
	${OBJDUMP} -h -S ${.ALLSRC} > ${.TARGET}

# Rules for building the .text rom images

${PROG}.hex: ${PROG}
	${OBJCOPY} -j .text -j .data -O ihex ${.ALLSRC} ${.TARGET}

${PROG}.bin: ${PROG}
	${OBJCOPY} -j .text -j .data -O binary ${.ALLSRC} ${.TARGET}

${PROG}.srec: ${PROG}
	${OBJCOPY} -j .text -j .data -O srec ${.ALLSRC} ${.TARGET}

# Rules for building the .eeprom rom images

${PROG}.ehex: ${PROG}
	${OBJCOPY} -j .eeprom --change-section-lma .eeprom=0 -O ihex ${.ALLSRC} ${.TARGET}

${PROG}.ebin: ${PROG}
	${OBJCOPY} -j .eeprom --change-section-lma .eeprom=0 -O binary ${.ALLSRC} ${.TARGET}

${PROG}.esrec: ${PROG}
	${OBJCOPY} -j .eeprom --change-section-lma .eeprom=0 -O srec ${.ALLSRC} ${.TARGET}

.include <bsd.prog.mk>