Makefile.avr
author darius@Inchoate
Mon, 19 Jan 2009 22:54:19 +1030
changeset 71 553c061fda7c
parent 20 59c7fcf10ea0
permissions -rw-r--r--
Keep the newer GCC happy.
darius@14
     1
#
darius@14
     2
# $Id$
darius@14
     3
#
darius@14
     4
darius@2
     5
.SUFFIXES: .hex .out .c .o .elf .dmp .s
darius@2
     6
darius@34
     7
# Otherwise we get -march=foo
darius@34
     8
NO_CPU_CFLAGS=
darius@34
     9
_CPUCFLAGS=
darius@34
    10
darius@2
    11
# Programs
darius@2
    12
AS=avr-as
darius@2
    13
CC=avr-gcc
darius@2
    14
OBJCOPY=avr-objcopy
darius@2
    15
OBJDUMP=avr-objdump
darius@2
    16
darius@2
    17
CPPFLAGS+=-Wa,-adhlmsn=${<:S/.c/.lst/}
darius@2
    18
darius@18
    19
MCU?=at90s8515
darius@2
    20
CFLAGS+=-mmcu=${MCU}
darius@2
    21
darius@2
    22
LDFLAGS+=-Wl,-Map=${PROG}.map,--cref
darius@2
    23
LDFLAGS+=${LDADD}
darius@2
    24
darius@2
    25
RM=rm -f
darius@2
    26
darius@2
    27
PROGRAMMER=avrdude
darius@34
    28
PROGOPTS?=-p ${PART} -c alf -E vcc,noreset -q
darius@2
    29
darius@2
    30
.if !defined(SRCS)
darius@2
    31
SRCS=	${PROG}.c
darius@2
    32
.endif
darius@2
    33
darius@2
    34
OBJS+=  ${SRCS:N*.h:R:S/$/.o/g}
darius@2
    35
darius@2
    36
all: ${PROG}.hex ${PROG}.dmp
darius@2
    37
darius@2
    38
.c.o:
darius@2
    39
	${CC} ${CFLAGS} ${CPPFLAGS} -c ${.IMPSRC} -o ${.PREFIX}.o
darius@2
    40
darius@2
    41
${PROG}.elf: ${OBJS}
darius@2
    42
	${CC} ${CFLAGS} ${LDFLAGS} -g ${OBJS} -o ${PROG}.elf ${LDADD}
darius@2
    43
darius@2
    44
.elf.hex:
darius@20
    45
	${OBJCOPY} -j .text -j .data -j .bss -j .noinit -O ihex $> $@
darius@2
    46
darius@2
    47
.elf.dmp:
darius@2
    48
	${OBJDUMP} -S ${.IMPSRC} > ${.PREFIX}.dmp
darius@2
    49
darius@2
    50
clean:
darius@6
    51
	${RM} ${PROG}.hex ${PROG}.out ${PROG}.elf ${PROG}.map ${OBJS} ${OBJS:S/.o/.lst/} ${PROG}.dmp
darius@2
    52
darius@2
    53
prog: all
darius@2
    54
	${PROGRAMMER} -U flash:w:${PROG}.hex ${PROGOPTS}
darius@2
    55
darius@2
    56