X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=config.mk;h=5ace0dbdf4c0f90ac29b5b1553ecadb5ca9090d4;hb=07382ad480794063a2d5be63547eb288034d9832;hp=762a0c3f7cf81e3e6a880ff7a9bed5d72d3442c0;hpb=e8a32158409d43d5151f4b3cbfa95173f7b91c70;p=bertos.git diff --git a/config.mk b/config.mk old mode 100755 new mode 100644 index 762a0c3f..5ace0dbd --- a/config.mk +++ b/config.mk @@ -3,55 +3,52 @@ # Copyright 2002,2003, 2004, 2006 Develer S.r.l. (http://www.develer.com/) # All rights reserved. # -# Based on: -# GCC-AVR standard Makefile part 1 -# Volker Oth 1/2000 -# # Author: Bernardo Innocenti -# -# $Log$ -# 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. -# +# Based on: GCC-AVR standard Makefile part 1, Volker Oth 1/2000 # # # Programmer type -# -# AVR ISP dongle that blows up easily -DPROG = -V -c stk500 -P /dev/ttyS0 - -# STK200 parallel cable -#DPROG = -c stk200 -E noreset +# see local pgm_config.mk for programmer customization. +-include pgm_config.mk +DPROG ?= -V -c stk500 -P /dev/ttyS0 -# PonyProg serial programmer -#DPROG = -c dasa2 +# 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 = -O3 # DANGER - DO NOT USE - DOESN'T WORK WITH 3.4.1 & 3.5 (HEAD) -OPTCFLAGS = -ffunction-sections -fdata-sections +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 = -CC = $(CROSS)gcc -AS = $(CROSS)$(CC) -x assembler-with-cpp -LD = $(CROSS)$(CC) -OBJCOPY = $(CROSS)objcopy +#CROSS = avr- +CC = gcc +CXX = g++ +AS = $(CC) -x assembler-with-cpp +LD = $(CC) +LDXX = $(CXX) +OBJCOPY = objcopy +STRIP = 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 +MOC = moc-qt4 +FLEXCAT = $(top_srcdir)/tools/flexcat/flexcat # For conversion from ELF to COFF for use in debugging / simulating in AVR Studio or VMLAB. COFFCONVERT=$(OBJCOPY) \ @@ -65,11 +62,6 @@ INCDIR = -I. -Ihw LIBDIR = lib OBJDIR = obj OUTDIR = images -SHELL = /bin/sh -DOXYGEN = doxygen -UISP = uisp -AVRDUDE = avrdude -FLEXCAT = $(top_srcdir)/tools/flexcat/flexcat # output format can be srec, ihex (avrobj is always created) FORMAT = srec @@ -82,25 +74,33 @@ DEP_FLAGS = -MMD -MP 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 \ - -Wmissing-prototypes -Wmissing-noreturn \ - -Wextra -Wstrict-aliasing=2 + -Wmissing-noreturn \ + -Wextra -Wstrict-aliasing=2 \ +# -Wunsafe-loop-optimizations # Compiler warning flags for C only C_WARNFLAGS = \ -Wmissing-prototypes -Wstrict-prototypes +# Default C preprocessor flags (for C, C++ and cpp+as) +CPPFLAGS = $(INCDIR) + # Default C compiler flags -CFLAGS = $(INCDIR) $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) $(C_WARNFLAGS) \ +CFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) $(C_WARNFLAGS) \ $(DEP_FLAGS) $(LIST_FLAGS) -std=gnu99 # Default C++ compiler flags -CXXFLAGS = $(INCDIR) $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) \ +CXXFLAGS = $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) \ $(DEP_FLAGS) $(LIST_FLAGS) # Default compiler assembly flags @@ -110,8 +110,10 @@ CPPAFLAGS = $(DEBUGCFLAGS) -MMD ASFLAGS = $(DEBUGCFLAGS) # Default linker flags -#LDFLAGS = $(MAP_FLAGS) -Wl,--reduce-memory-overheads -LDFLAGS = $(MAP_FLAGS) -Wl,--gc-sections +#LDFLAGS = $(MAP_FLAGS) + +#bernie: does not complain for missing symbols! +LDFLAGS = $(MAP_FLAGS) -Wl,--gc-sections # Flags for avrdude AVRDUDEFLAGS = $(DPROG)