diff --git a/Makefile.include b/Makefile.include index 4c063a324fa27553306fec1b7bc5e322cc987159..341c2e2ec6641d78dd5795ab8997db059e915469 100644 --- a/Makefile.include +++ b/Makefile.include @@ -47,6 +47,19 @@ include $(RIOTBOARD)/$(BOARD)/Makefile.include include $(RIOTCPU)/$(CPU)/Makefile.include include $(RIOTBASE)/Makefile.dep +# Test if the input language was specified externally. +# Otherwise test if the compiler unterstands the "-std=gnu99" flag, and use it if so. +# Otherwise test if the compiler unterstands the "-std=c99" flag, and use it if so. +ifeq ($(filter -std=%,$(CFLAGS)),) +ifeq ($(shell $(CC) -std=gnu99 -E - 2>/dev/null >/dev/null </dev/null ; echo $$?),0) +CFLAGS += -std=gnu99 +else +ifeq ($(shell $(CC) -std=c99 -E - 2>/dev/null >/dev/null </dev/null ; echo $$?),0) +CFLAGS += -std=c99 +endif +endif +endif + # your binaries to link BASELIBS += $(BINDIR)$(BOARD)_base.a BASELIBS += $(BINDIR)${PROJECT}.a diff --git a/boards/chronos/Makefile.include b/boards/chronos/Makefile.include index f3c9891a3f88f04d7037782f639734dae74ac2a0..5dfe7e460780ffe12162a0ab8da9da20c6d54804 100644 --- a/boards/chronos/Makefile.include +++ b/boards/chronos/Makefile.include @@ -8,7 +8,7 @@ export MCU = cc430f6137 export PREFIX = msp430- export CC = $(PREFIX)gcc export AR = $(PREFIX)ar -export CFLAGS += -std=gnu99 -Wstrict-prototypes -gdwarf-2 -Os -Wall -mmcu=$(MCU) -D CC430 +export CFLAGS += -Wstrict-prototypes -gdwarf-2 -Os -Wall -mmcu=$(MCU) -D CC430 export ASFLAGS += -mmcu=$(MCU) --defsym $(MCU)=1 --gdwarf-2 export AS = $(PREFIX)as export LINK = $(PREFIX)gcc diff --git a/boards/mbed_lpc1768/Makefile.include b/boards/mbed_lpc1768/Makefile.include index b28c3c63f5e1b8fac6ca8d7ace2a23dd218a47c9..a58a5ab2daa1e215653dabd345e88b0fff370c69 100644 --- a/boards/mbed_lpc1768/Makefile.include +++ b/boards/mbed_lpc1768/Makefile.include @@ -5,7 +5,7 @@ export CPU = lpc1768 export PREFIX = arm-none-eabi- export CC = $(PREFIX)gcc export AR = $(PREFIX)ar -export CFLAGS += -DUSE_STDPERIPH_DRIVER -ggdb -g3 -std=gnu99 -O0 -Wall -Wstrict-prototypes -mcpu=cortex-m3 $(FPU_USAGE) -mlittle-endian -mthumb -mthumb-interwork -nostartfiles +export CFLAGS += -DUSE_STDPERIPH_DRIVER -ggdb -g3 -O0 -Wall -Wstrict-prototypes -mcpu=cortex-m3 $(FPU_USAGE) -mlittle-endian -mthumb -mthumb-interwork -nostartfiles export ASFLAGS = -ggdb -g3 -mcpu=cortex-m3 $(FPU_USAGE) -mlittle-endian export AS = $(PREFIX)as export LINK = $(PREFIX)gcc diff --git a/boards/msb-430-common/Makefile.include b/boards/msb-430-common/Makefile.include index 3f7bcc2bbec1ea4707a7555f250193d594ec7131..fc1e5860c35c0f1b0b29703e174f19d1b8b1de71 100644 --- a/boards/msb-430-common/Makefile.include +++ b/boards/msb-430-common/Makefile.include @@ -6,7 +6,7 @@ export MCU = msp430f1612 export PREFIX = msp430- export CC = $(PREFIX)gcc export AR = $(PREFIX)ar -export CFLAGS += -std=gnu99 -Wstrict-prototypes -gdwarf-2 -Os -Wall -mmcu=$(MCU) +export CFLAGS += -Wstrict-prototypes -gdwarf-2 -Os -Wall -mmcu=$(MCU) export ASFLAGS += -mmcu=$(MCU) --defsym $(MCU)=1 --gdwarf-2 export AS = $(PREFIX)as export LINK = $(PREFIX)gcc diff --git a/boards/msba2-common/Makefile.include b/boards/msba2-common/Makefile.include index 85589d8162d5b3f05293165863a03bc7d4d179ba..a04e399348aa10fe329b3ff2ad6a6158190c6d90 100644 --- a/boards/msba2-common/Makefile.include +++ b/boards/msba2-common/Makefile.include @@ -6,7 +6,7 @@ export PREFIX = arm-none-eabi- #export PREFIX = arm-elf- export CC = $(PREFIX)gcc export AR = $(PREFIX)ar -export CFLAGS += -std=gnu99 -O2 -Wall -Wstrict-prototypes -mcpu=arm7tdmi-s -gdwarf-2 +export CFLAGS += -O2 -Wall -Wstrict-prototypes -mcpu=arm7tdmi-s -gdwarf-2 export ASFLAGS = -gdwarf-2 -mcpu=arm7tdmi-s export AS = $(PREFIX)as export LINK = $(PREFIX)gcc diff --git a/boards/native/Makefile.include b/boards/native/Makefile.include index f8ddcdfa8e3a908ddfa48ed8bc07a6b1e63fd6a5..ae4055e1970f26d6730d4996f953a7d100988dc3 100644 --- a/boards/native/Makefile.include +++ b/boards/native/Makefile.include @@ -17,7 +17,7 @@ export FLASHER = true export VALGRIND ?= valgrind # flags: -export CFLAGS += -std=gnu99 -Wall -Wextra -pedantic -m32 +export CFLAGS += -Wall -Wextra -pedantic -m32 export LINKFLAGS += -m32 -gc -ldl export ASFLAGS = export DEBUGGER_FLAGS = $(ELF) diff --git a/boards/redbee-econotag/Makefile.include b/boards/redbee-econotag/Makefile.include index 72ba39a77f7afb7d5099b45a1155a228326d9ff8..0d92a859d0591d79980ab11623191bc317620104 100644 --- a/boards/redbee-econotag/Makefile.include +++ b/boards/redbee-econotag/Makefile.include @@ -5,7 +5,7 @@ export CPU = mc1322x export PREFIX = arm-none-eabi- export CC = $(PREFIX)gcc export AR = $(PREFIX)ar -export CFLAGS += -std=gnu99 -march=armv4t -mtune=arm7tdmi-s -mlong-calls \ +export CFLAGS += -march=armv4t -mtune=arm7tdmi-s -mlong-calls \ -msoft-float -mthumb-interwork -fno-strict-aliasing -fno-common \ -ffixed-r8 -ffunction-sections -ffreestanding -fno-builtin \ -nodefaultlibs -Wcast-align -Wall -Wstrict-prototypes -Wextra \ diff --git a/boards/telosb/Makefile.include b/boards/telosb/Makefile.include index 8d72d2ffc4c9a2ccaebe3d5d62f38a087308ad06..61cec25f25b419c21efdac828f20f0560ba675dd 100644 --- a/boards/telosb/Makefile.include +++ b/boards/telosb/Makefile.include @@ -7,7 +7,7 @@ export MCU = msp430f1611 export PREFIX = msp430- export CC = $(PREFIX)gcc export AR = $(PREFIX)ar -export CFLAGS += -std=gnu99 -Wstrict-prototypes -gdwarf-2 -Os -Wall -mmcu=$(MCU) +export CFLAGS += -Wstrict-prototypes -gdwarf-2 -Os -Wall -mmcu=$(MCU) export ASFLAGS += -mmcu=$(MCU) --defsym $(MCU)=1 --gdwarf-2 export AS = $(PREFIX)as export LINK = $(PREFIX)gcc diff --git a/boards/wsn430-common/Makefile.include b/boards/wsn430-common/Makefile.include index 38d5244a6e72e0608d17d9e7e6fe2b1cfd4b9a23..b0aa7e60365913da88fce15f8de2cc15650e6fd4 100644 --- a/boards/wsn430-common/Makefile.include +++ b/boards/wsn430-common/Makefile.include @@ -6,7 +6,7 @@ export MCU = msp430f1611 export PREFIX = msp430- export CC = $(PREFIX)gcc export AR = $(PREFIX)ar -export CFLAGS += -std=gnu99 -Wstrict-prototypes -gdwarf-2 -Os -Wall -mmcu=$(MCU) +export CFLAGS += -Wstrict-prototypes -gdwarf-2 -Os -Wall -mmcu=$(MCU) export ASFLAGS += -mmcu=$(MCU) --defsym $(MCU)=1 --gdwarf-2 export AS = $(PREFIX)as export LINK = $(PREFIX)gcc