X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=config.mk;h=c0473a157967ec98b33fce8a110ccac7b1277eba;hb=390b6f25afb04fee925be597381e06ce5a9e8110;hp=001601d633f4ee3ea0bf2f2455b544539f81a905;hpb=cc15bc8568ee6dc6032687a6f8d892b702e9c8a2;p=bertos.git diff --git a/config.mk b/config.mk old mode 100755 new mode 100644 index 001601d6..c0473a15 --- a/config.mk +++ b/config.mk @@ -10,6 +10,36 @@ # Author: Bernardo Innocenti # # $Log$ +# Revision 1.12 2007/09/29 16:57:39 bernie +# Better sparse support. +# +# Revision 1.11 2007/09/29 15:54:14 bernie +# Make demo Qt emulator compile again. +# +# Revision 1.10 2007/09/18 10:17:00 batt +# Merge from triface. +# +# Revision 1.9 2006/09/20 14:28:42 marco +# Add MOC. Changed OPTCFLAGS. +# +# Revision 1.8 2006/09/19 17:50:56 bernie +# Make native build the default. +# +# Revision 1.7 2006/07/19 12:56:24 bernie +# Convert to new Doxygen style. +# +# Revision 1.6 2006/06/12 22:05:09 marco +# Bring back config wrongly commited +# +# Revision 1.4 2006/05/27 22:41:46 bernie +# Tweak optimization flags for loops. +# +# Revision 1.3 2006/05/18 00:40:10 bernie +# Setup for AVR development. +# +# Revision 1.2 2006/03/27 04:48:33 bernie +# Add CXXFLAGS; Add recursive targets. +# # Revision 1.1 2006/03/22 09:51:53 bernie # Add build infrastructure. # @@ -17,38 +47,58 @@ # # Programmer type -# +# see local pgm_config.mk for programmer customization. +-include pgm_config.mk +DPROG ?= -V -c stk500 -P /dev/ttyS0 + # AVR ISP dongle that blows up easily -DPROG = -V -c stk500 -P /dev/ttyS0 +#DPROG = -V -c stk500 -P /dev/ttyS0 +#DPROG = -V -c jtag2slow +#-P /dev/ttyUSB0 # STK200 parallel cable #DPROG = -c stk200 -E noreset +# JTAG ICE mkII +#DPROG = avarice --mkII -j usb -l + # PonyProg serial programmer #DPROG = -c dasa2 -#OPTCFLAGS = -O3 # DANGER - DO NOT USE - DOESN'T WORK WITH 3.4.1 & 3.5 (HEAD) -OPTCFLAGS = -ffunction-sections -fdata-sections +# Set to 1 to build for embedded devices. +# e.g. produce target.elf instead of target and target_nostrip +EMBEDDED_TARGET = 1 +#EMBEDDED_TARGET = 0 + +OPTCFLAGS = -ffunction-sections -fdata-sections +#OPTCFLAGS = -funsafe-loop-optimizations # For AVRStudio #DEBUGCFLAGS = -gdwarf-2 # For GDB -DEBUGCFLAGS = -g +DEBUGCFLAGS = -ggdb # # define some variables based on the AVR base path in $(AVR) # -CROSS = +CROSS = arm-elf- CC = $(CROSS)gcc -AS = $(CROSS)$(CC) -x assembler-with-cpp -LD = $(CROSS)$(CC) +CXX = $(CROSS)g++ +AS = $(CC) -x assembler-with-cpp +LD = $(CC) OBJCOPY = $(CROSS)objcopy +STRIP = $(CROSS)strip INSTALL = cp -a RM = rm -f RM_R = rm -rf RN = mv MKDIR_P = mkdir -p +SHELL = /bin/sh +CHECKER = sparse +DOXYGEN = doxygen +AVRDUDE = avrdude +FLEXCAT = $(top_srcdir)/tools/flexcat/flexcat # For conversion from ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. COFFCONVERT=$(OBJCOPY) \ @@ -62,35 +112,60 @@ INCDIR = -I. -Ihw LIBDIR = lib OBJDIR = obj OUTDIR = images -SHELL = /bin/sh -DOXYGEN = doxygen -UISP = uisp -AVRDUDE = avrdude # output format can be srec, ihex (avrobj is always created) FORMAT = srec #FORMAT = ihex +# Compiler flags for generating dependencies +DEP_FLAGS = -MMD -MP + +# Compiler flags for generating source listings +LIST_FLAGS = -Wa,-anhlmsd=$(@:.o=.lst) + +# Linker flags for generating map files +ifeq ($(EMBEDDED_TARGET), 1) +MAP_FLAGS = -Wl,-Map=$(@:%.elf=%.map),--cref +else +MAP_FLAGS = +endif + +# Compiler warning flags for both C and C++ WARNFLAGS = \ -W -Wformat -Wall -Wundef -Wpointer-arith -Wcast-qual \ - -Wcast-align -Wwrite-strings -Wsign-compare -Wstrict-prototypes \ - -Wmissing-prototypes -Wmissing-noreturn + -Wcast-align -Wwrite-strings -Wsign-compare \ + -Wmissing-noreturn \ + -Wextra -Wstrict-aliasing=2 \ +# -Wunsafe-loop-optimizations + +# Compiler warning flags for C only +C_WARNFLAGS = \ + -Wmissing-prototypes -Wstrict-prototypes -# default compiler flags -CFLAGS = $(INCDIR) $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) \ - -MMD -MP -Wa,-anhlmsd=$(@:.o=.lst) -std=gnu99 +# Default C preprocessor flags (for C, C++ and cpp+as) +CPPFLAGS = $(INCDIR) -# default compiler assembly flags +# Default C compiler flags +CFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) $(C_WARNFLAGS) \ + $(DEP_FLAGS) $(LIST_FLAGS) -std=gnu99 + +# Default C++ compiler flags +CXXFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) \ + $(DEP_FLAGS) $(LIST_FLAGS) + +# Default compiler assembly flags CPPAFLAGS = $(DEBUGCFLAGS) -MMD -# default assembler flags +# Default assembler flags ASFLAGS = $(DEBUGCFLAGS) -# default linker flags -#LDFLAGS = -Wl,-Map=$(@:%.elf=%.map),--cref -Wl,--reduce-memory-overheads -LDFLAGS = -Wl,-Map=$(@:%.elf=%.map),--cref -Wl,--gc-sections +# Default linker flags +#LDFLAGS = $(MAP_FLAGS) + +#bernie: does not complain for missing symbols! +LDFLAGS = $(MAP_FLAGS) -Wl,--gc-sections -# flags for avrdude +# Flags for avrdude AVRDUDEFLAGS = $(DPROG) # additional libs