From 302877eafc373d8ae61d7ecc66f17968d4e1e643 Mon Sep 17 00:00:00 2001 From: patacongo Date: Fri, 23 Nov 2012 14:13:57 +0000 Subject: Add common Toolchain.defs for AVR/AVR32; Add Toolchain.defs for ARM; Add more toolchain options (from Mike); incdir.sh and .bat now take -s option git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5384 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/arch/arm/Kconfig | 3 + nuttx/arch/arm/src/arm/Kconfig | 35 +++++++ nuttx/arch/arm/src/arm/Toolchain.defs | 146 ++++++++++++++++++++++++++++++ nuttx/arch/arm/src/armv7-m/Toolchain.defs | 30 +++--- nuttx/arch/avr/Kconfig | 42 +-------- nuttx/arch/avr/src/avr/Kconfig | 53 +++++++++++ nuttx/arch/avr/src/avr/Toolchain.defs | 117 ++++++++++++++++++++++++ nuttx/arch/avr/src/avr32/Kconfig | 3 + nuttx/arch/avr/src/avr32/Toolchain.defs | 63 +++++++++++++ nuttx/arch/mips/src/mips32/Toolchain.defs | 38 +++----- 10 files changed, 452 insertions(+), 78 deletions(-) create mode 100644 nuttx/arch/arm/src/arm/Kconfig create mode 100644 nuttx/arch/arm/src/arm/Toolchain.defs create mode 100644 nuttx/arch/avr/src/avr/Toolchain.defs create mode 100644 nuttx/arch/avr/src/avr32/Toolchain.defs (limited to 'nuttx/arch') diff --git a/nuttx/arch/arm/Kconfig b/nuttx/arch/arm/Kconfig index eb3bfe85b..3233918ca 100644 --- a/nuttx/arch/arm/Kconfig +++ b/nuttx/arch/arm/Kconfig @@ -256,6 +256,9 @@ config DEBUG_HARDFAULT if ARCH_CORTEXM3 || ARCH_CORTEXM4 source arch/arm/src/armv7-m/Kconfig endif +if ARCH_ARM7TDMI || ARCH_ARM926EJS +source arch/arm/src/arm/Kconfig +endif if ARCH_CHIP_C5471 source arch/arm/src/c5471/Kconfig endif diff --git a/nuttx/arch/arm/src/arm/Kconfig b/nuttx/arch/arm/src/arm/Kconfig new file mode 100644 index 000000000..0d08d89a8 --- /dev/null +++ b/nuttx/arch/arm/src/arm/Kconfig @@ -0,0 +1,35 @@ +# +# For a description of the syntax of this configuration file, +# see misc/tools/kconfig-language.txt. +# + +comment "ARM Configuration Options" + +choice + prompt "Toolchain Selection" + default ARM_TOOLCHAIN_CODESOURCERYW if HOST_WINDOWS + default ARM_TOOLCHAIN_GNU_EABI if !HOST_WINDOWS + +config ARM_TOOLCHAIN_BUILDROOT + bool "Buildroot (Cygwin or Linux)" + depends on !WINDOWS_NATIVE + +config ARM_TOOLCHAIN_CODESOURCERYL + bool "CodeSourcery GNU toolchain under Linux" + depends on HOST_LINUX + +config ARM_TOOLCHAIN_CODESOURCERYW + bool "CodeSourcery GNU toolchain under Windows" + depends on HOST_WINDOWS + +config ARM_TOOLCHAIN_DEVKITARM + bool "devkitARM GNU toolchain" + depends on HOST_WINDOWS + +config ARM_TOOLCHAIN_GNU_EABI + bool "Generic GNU EABI toolchain" + ---help--- + This option should work for any modern GNU toolchain (GCC 4.5 or newer) + configured for arm-none-eabi. + +endchoice diff --git a/nuttx/arch/arm/src/arm/Toolchain.defs b/nuttx/arch/arm/src/arm/Toolchain.defs new file mode 100644 index 000000000..defe30b51 --- /dev/null +++ b/nuttx/arch/arm/src/arm/Toolchain.defs @@ -0,0 +1,146 @@ +############################################################################ +# arch/arm/src/armv/Toolchain.defs +# +# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +# Setup for the selected toolchain + +# +# Handle old-style chip-specific toolchain names in the absence of +# a new-style toolchain specification, force the selection of a single +# toolchain and allow the selected toolchain to be overridden by a +# command-line selection. +# + +ifeq ($(filter y, \ + $(CONFIG_DM320_BUILDROOT) \ + $(CONFIG_LPC313X_BUILDROOT) \ + $(CONFIG_LPC31_BUILDROOT) \ + $(CONFIG_OLIMEX_LPC2378_BUILDROOT) \ + $(CONFIG_ARM_TOOLCHAIN_BUILDROOT) \ + ),y) + CONFIG_ARM_TOOLCHAIN ?= BUILDROOT +endif +ifeq ($(filter y, \ + $(CONFIG_DM320_CODESOURCERYL) \ + $(CONFIG_LPC31_CODESOURCERYL) \ + $(CONFIG_OLIMEX_LPC2378_CODESOURCERYL) \ + $(CONFIG_ARM_TOOLCHAIN_CODESOURCERYL) \ + ),y) + CONFIG_ARM_TOOLCHAIN ?= CODESOURCERYL +endif +ifeq ($(filter y, \ + $(CONFIG_DM320_CODESOURCERYW) \ + $(CONFIG_LPC31_CODESOURCERYW) \ + $(CONFIG_OLIMEX_LPC2378_CODESOURCERYW) \ + $(CONFIG_ARM_TOOLCHAIN_CODESOURCERYW) \ + ),y) + CONFIG_ARM_TOOLCHAIN ?= CODESOURCERYW +endif +ifeq ($(filter y, \ + $(CONFIG_DM320_DEVKITARM) \ + $(CONFIG_LPC31_DEVKITARM) \ + $(CONFIG_OLIMEX_LPC2378_DEVKITARM) \ + $(CONFIG_ARM_TOOLCHAIN_DEVKITARM) \ + ),y) + CONFIG_ARM_TOOLCHAIN ?= DEVKITARM +endif +ifeq ($(filter y, \ + $(CONFIG_ARM_TOOLCHAIN_GNU_EABI) \ + ),y) + CONFIG_ARM_TOOLCHAIN ?= GNU_EABI +endif + +# +# Supported toolchains +# +# TODO - It's likely that all of these toolchains now support the +# CortexM4. Since they are all GCC-based, we could almost +# certainly simplify this further. +# +# Each toolchain definition should set: +# +# CROSSDEV The GNU toolchain triple (command prefix) +# ARCROSSDEV If required, an alternative prefix used when +# invoking ar and nm. +# ARCHCPUFLAGS CPU-specific flags selecting the instruction set +# FPU options, etc. +# MAXOPTIMIZATION The maximum optimization level that results in +# reliable code generation. +# + +# NuttX buildroot under Linux or Cygwin + +ifeq ($(CONFIG_ARM_TOOLCHAIN),BUILDROOT) + CROSSDEV = arm-nuttx-elf- + ARCROSSDEV = arm-nuttx-elf- + MAXOPTIMIZATION = -Os +endif + +# CodeSourcery under Linux + +ifeq ($(CONFIG_ARM_TOOLCHAIN),CODESOURCERYL) + CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- + MAXOPTIMIZATION = -O2 +endif + +# CodeSourcery under Windows + +ifeq ($(CONFIG_ARM_TOOLCHAIN),CODESOURCERYW) + CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- + MAXOPTIMIZATION = -O2 + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif +endif + +# devkitARM under Windows + +ifeq ($(CONFIG_ARM_TOOLCHAIN),DEVKITARM) + CROSSDEV = arm-eabi- + ARCROSSDEV = arm-eabi- + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif +endif + +# Generic GNU EABI toolchain on OS X, Linux or any typical Posix system + +ifeq ($(CONFIG_ARM_TOOLCHAIN),GNU_EABI) + CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- + MAXOPTIMIZATION = -O3 +endif + diff --git a/nuttx/arch/arm/src/armv7-m/Toolchain.defs b/nuttx/arch/arm/src/armv7-m/Toolchain.defs index e39d7f414..e214ce8bd 100644 --- a/nuttx/arch/arm/src/armv7-m/Toolchain.defs +++ b/nuttx/arch/arm/src/armv7-m/Toolchain.defs @@ -143,9 +143,9 @@ endif ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),ATOLLIC) CROSSDEV = arm-atollic-eabi- ARCROSSDEV = arm-atollic-eabi- -ifneq ($(CONFIG_WINDOWS_NATIVE),y) - WINTOOL = y -endif + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif ifeq ($(CONFIG_ARCH_CORTEXM4),y) ifeq ($(CONFIG_ARCH_FPU),y) ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard @@ -192,9 +192,9 @@ endif ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CODEREDW) CROSSDEV = arm-none-eabi- ARCROSSDEV = arm-none-eabi- -ifneq ($(CONFIG_WINDOWS_NATIVE),y) - WINTOOL = y -endif + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif ifeq ($(CONFIG_ARCH_CORTEXM4),y) ifeq ($(CONFIG_ARCH_FPU),y) ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard @@ -220,9 +220,9 @@ endif ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),CODESOURCERYW) CROSSDEV = arm-none-eabi- ARCROSSDEV = arm-none-eabi- -ifneq ($(CONFIG_WINDOWS_NATIVE),y) - WINTOOL = y -endif + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif @@ -231,9 +231,9 @@ endif ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),DEVKITARM) CROSSDEV = arm-eabi- ARCROSSDEV = arm-eabi- -ifneq ($(CONFIG_WINDOWS_NATIVE),y) - WINTOOL = y -endif + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif @@ -259,8 +259,8 @@ endif ifeq ($(CONFIG_ARMV7M_TOOLCHAIN),RAISONANCE) CROSSDEV = arm-none-eabi- ARCROSSDEV = arm-none-eabi- -ifneq ($(CONFIG_WINDOWS_NATIVE),y) - WINTOOL = y -endif + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif diff --git a/nuttx/arch/avr/Kconfig b/nuttx/arch/avr/Kconfig index 4ebd26d5f..41b6c72d3 100644 --- a/nuttx/arch/avr/Kconfig +++ b/nuttx/arch/avr/Kconfig @@ -5,43 +5,6 @@ if ARCH_AVR -choice - prompt "Toolchain" - default AVR_BUILDROOT - -config AVR_WINAVR - bool "WinAVR" - ---help--- - For Cygwin development environment on Windows machines, you - can use WinAVR: http://sourceforge.net/projects/winavr/files/ - - It is assumed in some places that WinAVR is installed at - C:/WinAVR. Edit the setenv.sh file if this is not the case. - - WARNING: There is an incompatible version of cygwin.dll in - the WinAVR/bin directory! Make sure that the path to the - correct cygwin.dll file precedes the path to the WinAVR - binaries! - -config AVR_LINUXGCC - bool "Linux GCC" - ---help--- - For Linux, there are widely available avr-gcc packages. On - Ubuntu, use: sudo apt-get install gcc-avr gdb-avr avr-libc - -config AVR_BUILDROOT - bool "Buildroot" - ---help--- - There is a DIY buildroot version for the AVR boards here: - http://sourceforge.net/projects/nuttx/files/buildroot/. See - the following section for details on building this toolchain. - - It is assumed in some places that buildroot toolchain is - available at ../misc/buildroot/build_avr. Edit the setenv.sh - file if this is not the case. - -endchoice - choice prompt "Atmel AVR chip selection" default ARCH_CHIP_AT32UC3B0256 @@ -110,11 +73,16 @@ config ARCH_CHIP default "at32uc3" if ARCH_AT32UC3 source arch/avr/src/common/Kconfig + +if ARCH_FAMILY_AVR source arch/avr/src/avr/Kconfig source arch/avr/src/at90usb/Kconfig source arch/avr/src/atmega/Kconfig +endif +if ARCH_FAMILY_AVR32 source arch/avr/src/avr32/Kconfig source arch/avr/src/at32uc3/Kconfig +endif config AVR_USART0 bool "USART0 specific serial device driver settings" diff --git a/nuttx/arch/avr/src/avr/Kconfig b/nuttx/arch/avr/src/avr/Kconfig index 99228aa2c..3c18452df 100644 --- a/nuttx/arch/avr/src/avr/Kconfig +++ b/nuttx/arch/avr/src/avr/Kconfig @@ -6,4 +6,57 @@ if ARCH_FAMILY_AVR comment "AVR Configuration Options" +choice + prompt "Toolchain" + default AVR_WINAVR if HOST_WINDOWS + default AVR_BUILDROOT if HOST_LINUX + default AVR_CROSSPACK if HOST_OSX + +config AVR_WINAVR + bool "WinAVR" + depends on HOST_WINDOWS + ---help--- + For Cygwin development environment on Windows machines, you + can use WinAVR: http://sourceforge.net/projects/winavr/files/ + + It is assumed in some places that WinAVR is installed at + C:/WinAVR. Edit the setenv.sh file if this is not the case. + + WARNING: There is an incompatible version of cygwin.dll in + the WinAVR/bin directory! Make sure that the path to the + correct cygwin.dll file precedes the path to the WinAVR + binaries! + +config AVR_LINUXGCC + bool "Linux GCC" + depends on HOST_LINUX + ---help--- + For Linux, there are widely available avr-gcc packages. On + Ubuntu, use: sudo apt-get install gcc-avr gdb-avr avr-libc + +config AVR_CROSSPACK + bool "CrossPack-AVR" + depends on HOST_OSX + ---help--- + For OS X, the AVR CrossPack toolchain is supported: + http://www.obdev.at/products/crosspack/index.html + + It is assumed that /usr/local/CrossPack-AVR/bin is on the + user's path. Edit the setenv.sh file if this is not the + case. + +config AVR_BUILDROOT + bool "Buildroot" + depends on HOST_LINUX || HOST_WINDOWS + ---help--- + There is a DIY buildroot version for the AVR boards here: + http://sourceforge.net/projects/nuttx/files/buildroot/. See + the following section for details on building this toolchain. + + It is assumed in some places that buildroot toolchain is + available at ../misc/buildroot/build_avr. Edit the setenv.sh + file if this is not the case. + +endchoice + endif diff --git a/nuttx/arch/avr/src/avr/Toolchain.defs b/nuttx/arch/avr/src/avr/Toolchain.defs new file mode 100644 index 000000000..96eb273f6 --- /dev/null +++ b/nuttx/arch/avr/src/avr/Toolchain.defs @@ -0,0 +1,117 @@ +############################################################################ +# arch/avr/src/avr/Toolchain.defs +# +# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +# Setup for the selected toolchain + +# +# Handle old-style chip-specific toolchain names in the absence of +# a new-style toolchain specification, force the selection of a single +# toolchain and allow the selected toolchain to be overridden by a +# command-line selection. +# + +ifeq ($(filter y, \ + $(CONFIG_AVR_BUILDROOT) \ + ),y) + CONFIG_AVR_TOOLCHAIN ?= BUILDROOT +endif +ifeq ($(filter y, \ + $(CONFIG_AVR_CROSSPACK) \ + ),y) + CONFIG_AVR_TOOLCHAIN ?= CROSSPACK +endif +ifeq ($(filter y, \ + $(CONFIG_AVR_LINUXGCC) \ + ),y) + CONFIG_AVR_TOOLCHAIN ?= LINUXGCC +endif +ifeq ($(filter y, \ + $(CONFIG_AVR_WINAVR) \ + ),y) + CONFIG_AVR_TOOLCHAIN ?= WINAVR +endif + +# Chip-specific CPU flags + +ifeq ($(CONFIG_ARCH_CHIP_ATMEGA128),y) + ARCHCPUFLAGS += -mmcu=atmega128 +else ifeq ($(CONFIG_ARCH_CHIP_AT90USB646),y) + ARCHCPUFLAGS += -mmcu=at90usb646 +else ifeq ($(CONFIG_ARCH_CHIP_AT90USB647),y) + ARCHCPUFLAGS += -mmcu=at90usb647 +else ifeq ($(CONFIG_ARCH_CHIP_AT90USB1286),y) + ARCHCPUFLAGS += -mmcu=at90usb1286 +else ifeq ($(CONFIG_ARCH_CHIP_AT90USB1287),y) + ARCHCPUFLAGS += -mmcu=at90usb1287 +else + $(error "No valid CONFIG_ARCH_CHIP_ set in the configuration") +endif + +# NuttX buildroot GCC toolchain under Linux or Cygwin + +ifeq ($(CONFIG_AVR_TOOLCHAIN),BUILDROOT) + CROSSDEV = avr-nuttx-elf- + MAXOPTIMIZATION = -O2 + LDFLAGS += -nostartfiles -nodefaultlibs +endif + +# AVR CrossPack under OS X + +ifeq ($(CONFIG_AVR_TOOLCHAIN),CROSSPACK) + CROSSDEV = avr- + MAXOPTIMIZATION = -O2 + LDFLAGS += -nostartfiles -nodefaultlibs +endif + +# GCC toolchain under Linux + +ifeq ($(CONFIG_AVR_TOOLCHAIN),LINUXGCC) + CROSSDEV = avr- + MAXOPTIMIZATION = -O2 + LDFLAGS += -nostartfiles -nodefaultlibs +endif + +# WinAVR toolchain under Windows/Cygwin + +ifeq ($(CONFIG_AVR_TOOLCHAIN),WINAVR) + CROSSDEV = avr- + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif + MAXOPTIMIZATION = -O2 + LDFLAGS += -nostartfiles -nodefaultlibs +endif + + diff --git a/nuttx/arch/avr/src/avr32/Kconfig b/nuttx/arch/avr/src/avr32/Kconfig index 12cc033cb..2e604cade 100644 --- a/nuttx/arch/avr/src/avr32/Kconfig +++ b/nuttx/arch/avr/src/avr32/Kconfig @@ -6,4 +6,7 @@ if ARCH_FAMILY_AVR32 comment "AVR32 Configuration Options" +# Note - no toolchain selection here as there is only one +# supported toolchain. + endif diff --git a/nuttx/arch/avr/src/avr32/Toolchain.defs b/nuttx/arch/avr/src/avr32/Toolchain.defs new file mode 100644 index 000000000..6a4b1234e --- /dev/null +++ b/nuttx/arch/avr/src/avr32/Toolchain.defs @@ -0,0 +1,63 @@ +############################################################################ +# arch/avr/src/avr32/Toolchain.defs +# +# Copyright (C) 2012 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +# Setup for the selected toolchain + +# +# Since all of the supported toolchains are variants of the Atmel-patched +# GCC, the only interesting question to answer here is whether or not +# the build is hosted on Windows, and how to override the configuration. +# + +CROSSDEV = avr32- +ARCHCPUFLAGS = -mpart=uc3b0256 + +ifeq ($(filter y, \ + $(CONFIG_AVR32_AVRTOOLSW) \ + $(CONFIG_HOST_WINDOWS) \ + ),y) + # AVR Tools under Windows + CONFIG_AVR32_TOOLCHAIN ?= AVRTOOLSW +else + CONFIG_AVR32_TOOLCHAIN ?= GNU +endif + +ifeq ($(CONFIG_AVR32_TOOLCHAIN),AVRTOOLSW) + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif +else + # AVR Tools or avr32-toolchain from https://github.com/jsnyder/avr32-toolchain +endif diff --git a/nuttx/arch/mips/src/mips32/Toolchain.defs b/nuttx/arch/mips/src/mips32/Toolchain.defs index 554e5f044..bd509b86c 100644 --- a/nuttx/arch/mips/src/mips32/Toolchain.defs +++ b/nuttx/arch/mips/src/mips32/Toolchain.defs @@ -42,6 +42,8 @@ # command-line selection. # ifeq ($(filter y, \ + $(CONFIG_PIC32MX_PINGUINOL) \ + $(CONFIG_MIPS32_TOOLCHAIN_PINGUINOL) \ $(CONFIG_MIPS32_TOOLCHAIN_GNU_ELF) \ ),y) CONFIG_MIPS32_TOOLCHAIN ?= GNU_ELF @@ -82,12 +84,6 @@ ifeq ($(filter y, \ ),y) CONFIG_MIPS32_TOOLCHAIN ?= PINGUINOW endif -ifeq ($(filter y, \ - $(CONFIG_PIC32MX_PINGUINOL) \ - $(CONFIG_MIPS32_TOOLCHAIN_PINGUINOL) \ - ),y) - CONFIG_MIPS32_TOOLCHAIN ?= PINGUINOL -endif # # Supported toolchains @@ -104,6 +100,7 @@ endif # # Generic GNU mip32 toolchain on OS X or Linux +# including Pinguino mips-elf toolchain ifeq ($(CONFIG_MIPS32_TOOLCHAIN),GNU_ELF) CROSSDEV = mips-elf- @@ -131,9 +128,9 @@ endif ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW) CROSSDEV = pic32- # CROSSDEV = xc32- -ifneq ($(CONFIG_WINDOWS_NATIVE),y) - WINTOOL = y -endif + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif MAXOPTIMIZATION = -O2 ARCHCPUFLAGS = -mprocessor=elf32pic32mx -mno-float -mlong32 -membedded-data ARCHPICFLAGS = -fpic -membedded-pic @@ -158,9 +155,9 @@ endif ifeq ($(CONFIG_MIPS32_TOOLCHAIN),MICROCHIPW_LITE) CROSSDEV = pic32- # CROSSDEV = xc32- -ifneq ($(CONFIG_WINDOWS_NATIVE),y) - WINTOOL = y -endif + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif # MAXOPTIMIZATION = -O2 ARCHCPUFLAGS = -mprocessor=elf32pic32mx -mno-float -mlong32 -membedded-data ARCHPICFLAGS = -fpic -membedded-pic @@ -183,20 +180,9 @@ endif ifeq ($(CONFIG_MIPS32_TOOLCHAIN),PINGUINOW) CROSSDEV = mips- -ifneq ($(CONFIG_WINDOWS_NATIVE),y) - WINTOOL = y -endif - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mlong32 -membedded-data -msoft-float -march=24kc -EL - ARCHPICFLAGS = -fpic -membedded-pic - LDFLAGS += -nostartfiles -nodefaultlibs - LDSCRIPT = mips-elf-debug.ld -endif - -# Pinguino mips-elf toolchain under OS X or Linux - -ifeq ($(CONFIG_MIPS32_TOOLCHAIN),PINGUINOL) - CROSSDEV = mips-elf- + ifneq ($(CONFIG_WINDOWS_NATIVE),y) + WINTOOL = y + endif MAXOPTIMIZATION = -O2 ARCHCPUFLAGS = -mlong32 -membedded-data -msoft-float -march=24kc -EL ARCHPICFLAGS = -fpic -membedded-pic -- cgit v1.2.3