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