Make listings more useful by adding instruction sizes too
[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 DPROG ?= -V -c stk500 -P /dev/ttyS0
15
16 OPTCFLAGS = -ffunction-sections -fdata-sections
17 #OPTCFLAGS = -funsafe-loop-optimizations
18
19 # For AVRStudio
20 #DEBUGCFLAGS = -gdwarf-2
21
22 # For GDB
23 DEBUGCFLAGS = -ggdb
24
25 #
26 # define some variables based on the AVR base path in $(AVR)
27 #
28 #CROSS   = avr-
29 CC      = gcc
30 CXX     = g++
31 AS      = $(CC) -x assembler-with-cpp
32 LD      = $(CC)
33 LDXX    = $(CXX)
34 OBJCOPY = objcopy
35 STRIP   = strip
36 INSTALL = cp -a
37 RM      = rm -f
38 RM_R    = rm -rf
39 RN      = mv
40 MKDIR_P = mkdir -p
41 SHELL   = /bin/sh
42 CHECKER = sparse
43 DOXYGEN = doxygen
44 AVRDUDE = avrdude
45 MOC     = moc-qt4
46 FLEXCAT = $(top_srcdir)/tools/flexcat/flexcat
47
48 # For conversion from ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB.
49 COFFCONVERT=$(OBJCOPY) \
50         --debugging \
51         --change-section-address .data-0x800000 \
52         --change-section-address .bss-0x800000 \
53         --change-section-address .noinit-0x800000 \
54         --change-section-address .eeprom-0x810000
55
56 INCDIR  = -I. -Ibertos 
57 LIBDIR  = lib
58 OBJDIR  = obj
59 OUTDIR  = images
60
61 # output format can be srec, ihex (avrobj is always created)
62 FORMAT = srec
63 #FORMAT = ihex
64
65 # Compiler flags for generating dependencies
66 DEP_FLAGS = -MMD -MP
67
68 # Compiler flags for generating source listings
69 LIST_FLAGS = -Wa,-anhlmsd=$(@:.o=.lst) -dp
70
71 # Linker flags for generating map files
72 # Only in embedded related projects generate map files
73 MAP_FLAGS_EMB = -Wl,-Map=$(@:%.elf=%.map),--cref
74 MAP_FLAGS_HOST =
75
76 # Compiler warning flags for both C and C++
77 WARNFLAGS = \
78         -W -Wformat -Wall -Wundef -Wpointer-arith -Wcast-qual \
79         -Wcast-align -Wwrite-strings -Wsign-compare \
80         -Wmissing-noreturn \
81         -Wextra -Wstrict-aliasing=2 \
82 #       -Wunsafe-loop-optimizations
83
84 # Compiler warning flags for C only
85 C_WARNFLAGS = \
86         -Wmissing-prototypes -Wstrict-prototypes
87
88 # Default C preprocessor flags (for C, C++ and cpp+as)
89 CPPFLAGS = $(INCDIR)
90
91 # Default C compiler flags
92 CFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) $(C_WARNFLAGS) \
93         $(DEP_FLAGS) $(LIST_FLAGS) -std=gnu99
94
95 # Default C++ compiler flags
96 CXXFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) \
97         $(DEP_FLAGS) $(LIST_FLAGS)
98
99 # Default compiler assembly flags
100 CPPAFLAGS = $(DEBUGCFLAGS) -MMD
101
102 # Default assembler flags
103 ASFLAGS = $(DEBUGCFLAGS)
104
105 # Default linker flags
106 #LDFLAGS = $(MAP_FLAGS)
107
108 #bernie: does not complain for missing symbols!
109 LDFLAGS = -Wl,--gc-sections
110
111 # Flags for avrdude
112 AVRDUDEFLAGS = $(DPROG)
113
114 # additional libs
115 LIB = -lm