2010-04-03 18:29:20 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# Hey Emacs, this is a -*- makefile -*-
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# AVR-GCC Makefile template, derived from the WinAVR template (which
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# is public domain), believed to be neutral to any flavor of "make"
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# (GNU make, BSD make, SysV make)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								MCU  =  atmega168
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								F_CPU  =  16000000 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FORMAT  =  ihex
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								TARGET  =  example
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								SRC  =  example.c
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ASRC  =  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								OPT  =  s
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Name of this Makefile (used for "make depend").
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								MAKEFILE  =  Makefile
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Debugging format.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Native formats for AVR-GCC's -g are stabs [default], or dwarf-2.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# AVR (extended) COFF requires stabs, plus an avr-objcopy run.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								DEBUG  =  stabs
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Compiler flag to set the C Standard level.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# c89   - "ANSI" C
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# gnu89 - c89 plus GCC extensions
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# c99   - ISO C99 standard (not yet fully implemented)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# gnu99 - c99 plus GCC extensions
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CSTANDARD  =  -std= gnu99
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Place -D or -U options here
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CDEFS  =  -DF_CPU= $( F_CPU) UL
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Place -I options here
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CINCS  =  -Ipt
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CDEBUG  =  -g$( DEBUG) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CWARN  =  -Wall -Wstrict-prototypes
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CTUNING  =  -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#CEXTRA = -Wa,-adhlns=$(<:.c=.lst)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CFLAGS  =  $( CDEBUG)  $( CDEFS)  $( CINCS)  -O$( OPT)  $( CWARN)  $( CSTANDARD)  $( CEXTRA) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#Additional libraries.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Minimalistic printf version
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								PRINTF_LIB_MIN  =  -Wl,-u,vfprintf -lprintf_min
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Floating point printf version (requires MATH_LIB = -lm below)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								PRINTF_LIB_FLOAT  =  -Wl,-u,vfprintf -lprintf_flt
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								PRINTF_LIB  =  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Minimalistic scanf version
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								SCANF_LIB_MIN  =  -Wl,-u,vfscanf -lscanf_min
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Floating point + %[ scanf version (requires MATH_LIB = -lm below)
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								SCANF_LIB_FLOAT  =  -Wl,-u,vfscanf -lscanf_flt
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								SCANF_LIB  =  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								MATH_LIB  =  -lm
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# External memory options
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# 64 KB of external RAM, starting after internal RAM (ATmega128!),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# used for variables (.data/.bss) and heap (malloc()).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#EXTMEMOPTS = -Wl,--section-start,.data=0x801100,--defsym=__heap_end=0x80ffff
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# 64 KB of external RAM, starting after internal RAM (ATmega128!),
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# only used for heap (malloc()).
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#EXTMEMOPTS = -Wl,--defsym=__heap_start=0x801100,--defsym=__heap_end=0x80ffff
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								EXTMEMOPTS  = 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#LDMAP = $(LDFLAGS) -Wl,-Map=$(TARGET).map,--cref
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								LDFLAGS  =  $( EXTMEMOPTS)  $( LDMAP)  $( PRINTF_LIB)  $( SCANF_LIB)  $( MATH_LIB) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Programming support using avrdude. Settings and variables.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								AVRDUDE_PROGRAMMER  =  stk500
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								AVRDUDE_PORT  =  usb
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								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.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#AVRDUDE_ERASE_COUNTER = -y
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Uncomment the following if you do /not/ wish a verification to be
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# performed after programming the device.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#AVRDUDE_NO_VERIFY = -V
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Increase verbosity level.  Please use this when submitting bug
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude> 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# to submit bug reports.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								#AVRDUDE_VERBOSE = -v -v
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								AVRDUDE_BASIC  =  -p $( MCU)  -P $( AVRDUDE_PORT)  -c $( AVRDUDE_PROGRAMMER) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								AVRDUDE_FLAGS  =  $( AVRDUDE_BASIC)  $( AVRDUDE_NO_VERIFY)  $( AVRDUDE_VERBOSE)  $( AVRDUDE_ERASE_COUNTER) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								CC  =  avr-gcc
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								OBJCOPY  =  avr-objcopy
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								OBJDUMP  =  avr-objdump
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								SIZE  =  avr-size
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								NM  =  avr-nm
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								AVRDUDE  =  avrdude
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								REMOVE  =  rm -f
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								MV  =  mv -f
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Define all object files.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								OBJ  =  $( SRC:.c= .o)  $( ASRC:.S= .o)  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Define all listing files.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								LST  =  $( ASRC:.S= .lst)  $( SRC:.c= .lst) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Combine all necessary flags and optional flags.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Add target processor to flags.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ALL_CFLAGS  =  -mmcu= $( MCU)  -I. $( CFLAGS) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								ALL_ASFLAGS  =  -mmcu= $( MCU)  -I. -x assembler-with-cpp $( ASFLAGS) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Default target.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								all :  build 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								build :  elf  hex  eep 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								elf :  $( TARGET ) .elf 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								hex :  $( TARGET ) .hex 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								eep :  $( TARGET ) .eep 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								lss :  $( TARGET ) .lss  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								sym :  $( TARGET ) .sym 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Program the device.  
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								program :  $( TARGET ) .hex  $( TARGET ) .eep 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( AVRDUDE)  $( AVRDUDE_FLAGS)  $( AVRDUDE_WRITE_FLASH)  $( AVRDUDE_WRITE_EEPROM) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Convert ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								COFFCONVERT = $( OBJCOPY)  --debugging \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								- - c h a n g e - s e c t i o n - a d d r e s s  . d a t a - 0 x 8 0 0 0 0 0  \ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								- - c h a n g e - s e c t i o n - a d d r e s s  . b s s - 0 x 8 0 0 0 0 0  \ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								- - c h a n g e - s e c t i o n - a d d r e s s  . n o i n i t - 0 x 8 0 0 0 0 0  \ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								- - c h a n g e - s e c t i o n - a d d r e s s  . e e p r o m - 0 x 8 1 0 0 0 0  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								coff :  $( TARGET ) .elf 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( COFFCONVERT)  -O coff-avr $( TARGET) .elf $( TARGET) .cof
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								extcoff :  $( TARGET ) .elf 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( COFFCONVERT)  -O coff-ext-avr $( TARGET) .elf $( TARGET) .cof
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.SUFFIXES :  .elf  .hex  .eep  .lss  .sym 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.elf.hex : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( OBJCOPY)  -O $( FORMAT)  -R .eeprom $< $@ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.elf.eep : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									-$( OBJCOPY)  -j .eeprom --set-section-flags= .eeprom= "alloc,load"  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									--change-section-lma .eeprom= 0  -O $( FORMAT)  $< $@ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Create extended listing file from ELF output file.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.elf.lss : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( OBJDUMP)  -h -S $< > $@ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Create a symbol table from ELF output file.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.elf.sym : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( NM)  -n $< > $@ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Link: create ELF output file from object files.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								$(TARGET).elf :  $( OBJ ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( CC)  $( ALL_CFLAGS)  $( OBJ)  --output $@  $( LDFLAGS) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Compile: create object files from C source files.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.c.o : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( CC)  -c $( ALL_CFLAGS)  $< -o $@  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Compile: create assembler files from C source files.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.c.s : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( CC)  -S $( ALL_CFLAGS)  $< -o $@ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Assemble: create object files from assembler source files.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.S.o : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( CC)  -c $( ALL_ASFLAGS)  $< -o $@ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# Target: clean project.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								clean : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( REMOVE)  $( TARGET) .hex $( TARGET) .eep $( TARGET) .cof $( TARGET) .elf \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( TARGET) .map $( TARGET) .sym $( TARGET) .lss \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( OBJ)  $( LST)  $( SRC:.c= .s)  $( SRC:.c= .d) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								depend : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									if  grep '^# DO NOT DELETE'  $( MAKEFILE)  >/dev/null;  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									then  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										sed -e '/^# DO NOT DELETE/,$$d'  $( MAKEFILE)  > \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
											$( MAKEFILE) .$$ $$  &&  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										$( MV)  $( MAKEFILE) .$$ $$  $( MAKEFILE) ;  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									fi 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									echo  '# DO NOT DELETE THIS LINE -- make depend depends on it.'  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
										>> $( MAKEFILE) ;  \
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									$( CC)  -M -mmcu= $( MCU)  $( CDEFS)  $( CINCS)  $( SRC)  $( ASRC)  >> $( MAKEFILE) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								.PHONY : 	all  build  elf  hex  eep  lss  sym  program  coff  extcoff  clean  depend