Setup for AVR development.
[bertos.git] / config.mk
index 001601d633f4ee3ea0bf2f2455b544539f81a905..f1a8747d9dce36d06114ec982c367ca07fd19a84 100755 (executable)
--- a/config.mk
+++ b/config.mk
 # Author: Bernardo Innocenti <bernie@develer.com>
 #
 # $Log$
+# 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.
 #
@@ -34,15 +40,15 @@ OPTCFLAGS = -ffunction-sections -fdata-sections
 #DEBUGCFLAGS = -gdwarf-2
 
 # For GDB
-DEBUGCFLAGS = -g
+#DEBUGCFLAGS = -g
 
 #
 # define some variables based on the AVR base path in $(AVR)
 #
-CROSS   = 
+CROSS   = avr-
 CC      = $(CROSS)gcc
-AS      = $(CROSS)$(CC) -x assembler-with-cpp
-LD      = $(CROSS)$(CC)
+AS      = $(CC) -x assembler-with-cpp
+LD      = $(CC)
 OBJCOPY = $(CROSS)objcopy
 INSTALL = cp -a
 RM      = rm -f
@@ -66,31 +72,53 @@ 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
 #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
+MAP_FLAGS = -Wl,-Map=$(@:%.elf=%.map),--cref
+
+# 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-prototypes -Wmissing-noreturn \
+       -Wextra -Wstrict-aliasing=2
+
+# 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 compiler flags
+CFLAGS = $(INCDIR) $(OPTCFLAGS) $(DEBUGCFLAGS) $(WARNFLAGS) $(C_WARNFLAGS) \
+       $(DEP_FLAGS) $(LIST_FLAGS) -std=gnu99
 
-# default compiler assembly flags
+# Default C++ compiler flags
+CXXFLAGS = $(INCDIR) $(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