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>
17 # see local pgm_config.mk for programmer customization.
18 -include pgm_config.mk
19 DPROG ?= -V -c stk500 -P /dev/ttyS0
21 # AVR ISP dongle that blows up easily
22 #DPROG = -V -c stk500 -P /dev/ttyS0
23 #DPROG = -V -c jtag2slow
26 # STK200 parallel cable
27 #DPROG = -c stk200 -E noreset
30 #DPROG = avarice --mkII -j usb -l
32 # PonyProg serial programmer
35 # Set to 1 to build for embedded devices.
36 # e.g. produce target.elf instead of target and target_nostrip
40 OPTCFLAGS = -ffunction-sections -fdata-sections
41 #OPTCFLAGS = -funsafe-loop-optimizations
44 #DEBUGCFLAGS = -gdwarf-2
50 # define some variables based on the AVR base path in $(AVR)
55 AS = $(CC) -x assembler-with-cpp
69 FLEXCAT = $(top_srcdir)/tools/flexcat/flexcat
71 # For conversion from ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
72 COFFCONVERT=$(OBJCOPY) \
74 --change-section-address .data-0x800000 \
75 --change-section-address .bss-0x800000 \
76 --change-section-address .noinit-0x800000 \
77 --change-section-address .eeprom-0x810000
84 # output format can be srec, ihex (avrobj is always created)
88 # Compiler flags for generating dependencies
91 # Compiler flags for generating source listings
92 LIST_FLAGS = -Wa,-anhlmsd=$(@:.o=.lst)
94 # Linker flags for generating map files
95 ifeq ($(EMBEDDED_TARGET), 1)
96 MAP_FLAGS = -Wl,-Map=$(@:%.elf=%.map),--cref
101 # Compiler warning flags for both C and C++
103 -W -Wformat -Wall -Wundef -Wpointer-arith -Wcast-qual \
104 -Wcast-align -Wwrite-strings -Wsign-compare \
106 -Wextra -Wstrict-aliasing=2 \
107 # -Wunsafe-loop-optimizations
109 # Compiler warning flags for C only
111 -Wmissing-prototypes -Wstrict-prototypes
113 # Default C preprocessor flags (for C, C++ and cpp+as)
116 # Default C compiler flags
117 CFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) $(C_WARNFLAGS) \
118 $(DEP_FLAGS) $(LIST_FLAGS) -std=gnu99
120 # Default C++ compiler flags
121 CXXFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) \
122 $(DEP_FLAGS) $(LIST_FLAGS)
124 # Default compiler assembly flags
125 CPPAFLAGS = $(DEBUGCFLAGS) -MMD
127 # Default assembler flags
128 ASFLAGS = $(DEBUGCFLAGS)
130 # Default linker flags
131 #LDFLAGS = $(MAP_FLAGS)
133 #bernie: does not complain for missing symbols!
134 LDFLAGS = $(MAP_FLAGS) -Wl,--gc-sections
137 AVRDUDEFLAGS = $(DPROG)