3 # Copyright 2002,2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/)
7 # GCC-AVR standard Makefile part 1
10 # Author: Bernardo Innocenti <bernie@develer.com>
13 # Revision 1.11 2007/09/29 15:54:14 bernie
14 # Make demo Qt emulator compile again.
16 # Revision 1.10 2007/09/18 10:17:00 batt
19 # Revision 1.9 2006/09/20 14:28:42 marco
20 # Add MOC. Changed OPTCFLAGS.
22 # Revision 1.8 2006/09/19 17:50:56 bernie
23 # Make native build the default.
25 # Revision 1.7 2006/07/19 12:56:24 bernie
26 # Convert to new Doxygen style.
28 # Revision 1.6 2006/06/12 22:05:09 marco
29 # Bring back config wrongly commited
31 # Revision 1.4 2006/05/27 22:41:46 bernie
32 # Tweak optimization flags for loops.
34 # Revision 1.3 2006/05/18 00:40:10 bernie
35 # Setup for AVR development.
37 # Revision 1.2 2006/03/27 04:48:33 bernie
38 # Add CXXFLAGS; Add recursive targets.
40 # Revision 1.1 2006/03/22 09:51:53 bernie
41 # Add build infrastructure.
47 # see local pgm_config.mk for programmer customization.
48 -include pgm_config.mk
49 DPROG ?= -V -c stk500 -P /dev/ttyS0
51 # AVR ISP dongle that blows up easily
52 #DPROG = -V -c stk500 -P /dev/ttyS0
53 #DPROG = -V -c jtag2slow
56 # STK200 parallel cable
57 #DPROG = -c stk200 -E noreset
60 #DPROG = avarice --mkII -j usb -l
62 # PonyProg serial programmer
65 OPTCFLAGS = -ffunction-sections -fdata-sections
66 #OPTCFLAGS = -funsafe-loop-optimizations
69 #DEBUGCFLAGS = -gdwarf-2
75 # define some variables based on the AVR base path in $(AVR)
80 AS = $(CC) -x assembler-with-cpp
82 OBJCOPY = $(CROSS)objcopy
90 # For conversion from ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
91 COFFCONVERT=$(OBJCOPY) \
93 --change-section-address .data-0x800000 \
94 --change-section-address .bss-0x800000 \
95 --change-section-address .noinit-0x800000 \
96 --change-section-address .eeprom-0x810000
106 FLEXCAT = $(top_srcdir)/tools/flexcat/flexcat
108 # output format can be srec, ihex (avrobj is always created)
112 # Compiler flags for generating dependencies
115 # Compiler flags for generating source listings
116 LIST_FLAGS = -Wa,-anhlmsd=$(@:.o=.lst)
118 # Linker flags for generating map files
119 #bernie: bogus binutils from Fedora 6 can't cope with this
120 #MAP_FLAGS = -Wl,-Map=$(@:%.elf=%.map),--cref
122 # Compiler warning flags for both C and C++
124 -W -Wformat -Wall -Wundef -Wpointer-arith -Wcast-qual \
125 -Wcast-align -Wwrite-strings -Wsign-compare \
127 -Wextra -Wstrict-aliasing=2 \
128 # -Wunsafe-loop-optimizations
130 # Compiler warning flags for C only
132 -Wmissing-prototypes -Wstrict-prototypes
134 # Default C preprocessor flags (for C, C++ and cpp+as)
137 # Default C compiler flags
138 CFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) $(C_WARNFLAGS) \
139 $(DEP_FLAGS) $(LIST_FLAGS) -std=gnu99
141 # Default C++ compiler flags
142 CXXFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) \
143 $(DEP_FLAGS) $(LIST_FLAGS)
145 # Default compiler assembly flags
146 CPPAFLAGS = $(DEBUGCFLAGS) -MMD
148 # Default assembler flags
149 ASFLAGS = $(DEBUGCFLAGS)
151 # Default linker flags
152 #LDFLAGS = $(MAP_FLAGS)
154 #bernie: does not complain for missing symbols!
155 LDFLAGS = $(MAP_FLAGS) -Wl,--gc-sections
158 AVRDUDEFLAGS = $(DPROG)