Add flashing support for AVR.
[bertos.git] / bertos / config.mk
1 #
2 # $Id$
3 # Copyright 2002,2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/)
4 # All rights reserved.
5 #
6 # Author: Bernie Innocenti <bernie@codewiz.org>
7 # Based on: GCC-AVR standard Makefile part 1, Volker Oth 1/2000
8 #
9
10 #
11 # Programmer type
12 # see local pgm_config.mk for programmer customization.
13 -include pgm_config.mk
14
15 OPTCFLAGS = -ffunction-sections -fdata-sections
16 #OPTCFLAGS = -funsafe-loop-optimizations
17
18 # For AVRStudio
19 #DEBUGCFLAGS = -gdwarf-2
20
21 # For GDB
22 DEBUGCFLAGS = -ggdb
23
24 #
25 # define some variables based on the AVR base path in $(AVR)
26 #
27 CC      = gcc
28 CXX     = g++
29 AR      = ar
30 AS      = $(CC) -x assembler-with-cpp
31 LD      = $(CC)
32 LDXX    = $(CXX)
33 OBJCOPY = objcopy
34 STRIP   = strip
35 INSTALL = cp -a
36 RM      = rm -f
37 RM_R    = rm -rf
38 RN      = mv
39 MKDIR_P = mkdir -p
40 SHELL   = /bin/sh
41 CHECKER = sparse
42 DOXYGEN = doxygen
43 AVRDUDE = avrdude
44 FLEXCAT = $(top_srcdir)/tools/flexcat/flexcat
45
46 # For conversion from ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
47 COFFCONVERT=$(OBJCOPY) \
48         --debugging \
49         --change-section-address .data-0x800000 \
50         --change-section-address .bss-0x800000 \
51         --change-section-address .noinit-0x800000 \
52         --change-section-address .eeprom-0x810000
53
54 INCDIR  = -I. -Ibertos 
55 LIBDIR  = lib
56 OBJDIR  = obj
57 OUTDIR  = images
58
59 # output format can be srec, ihex (avrobj is always created)
60 FORMAT = srec
61 #FORMAT = ihex
62
63 # Compiler flags for generating dependencies
64 DEP_FLAGS = -MMD -MP
65
66 # Compiler flags for generating source listings
67 LIST_FLAGS = -Wa,-anhlmsd=$(@:.o=.lst) -dp
68
69 # Linker flags for generating map files
70 # Only in embedded related projects generate map files
71 MAP_FLAGS_EMB = -Wl,-Map=$(@:%.elf=%.map),--cref
72 MAP_FLAGS_HOST =
73
74 # Compiler warning flags for both C and C++
75 WARNFLAGS = \
76         -W -Wformat -Wall -Wundef -Wpointer-arith -Wcast-qual \
77         -Wcast-align -Wwrite-strings -Wsign-compare \
78         -Wmissing-noreturn \
79         -Wextra -Wstrict-aliasing=2 \
80 #       -Wunsafe-loop-optimizations
81
82 # Compiler warning flags for C only
83 C_WARNFLAGS = \
84         -Wmissing-prototypes -Wstrict-prototypes
85
86 # Default C preprocessor flags (for C, C++ and cpp+as)
87 CPPFLAGS = $(INCDIR)
88
89 # Default C compiler flags
90 CFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) $(C_WARNFLAGS) \
91         $(DEP_FLAGS) $(LIST_FLAGS) -std=gnu99
92
93 # Default C++ compiler flags
94 CXXFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) \
95         $(DEP_FLAGS) $(LIST_FLAGS)
96
97 # Default compiler assembly flags
98 CPPAFLAGS = $(DEBUGCFLAGS) -MMD
99
100 # Default assembler flags
101 ASFLAGS = $(DEBUGCFLAGS)
102
103 # Default linker flags
104 #LDFLAGS = $(MAP_FLAGS)
105
106 #bernie: does not complain for missing symbols!
107 LDFLAGS = -Wl,--gc-sections
108
109 # Flags for avrdude
110 AVRDUDEFLAGS = $(DPROG)
111
112 # additional libs
113 LIB = -lm
114
115 # Archiver flags
116 ARFLAGS = rcs