diff --git a/Kconfig b/Kconfig index cb4060ec250..188f9d007b0 100644 --- a/Kconfig +++ b/Kconfig @@ -45,6 +45,14 @@ config HOST_OTHER endchoice +config TOOLCHAIN_WINDOWS + bool + default n + depends on HOST_WINDOWS + ---help--- + Selected internally if the selected Windows environment is compatible + with the use of Windows native toolchains. + choice prompt "Windows Build Environment" default WINDOWS_CYGWIN @@ -52,12 +60,14 @@ choice config WINDOWS_NATIVE bool "Windows Native" + select TOOLCHAIN_WINDOWS ---help--- Build natively in a CMD.exe environment with Windows style paths (like C:\cgywin\home) config WINDOWS_CYGWIN bool "Cygwin" + select TOOLCHAIN_WINDOWS ---help--- Build natively in a Cygwin environment with POSIX style paths (like /cygdrive/c/Program Files) @@ -70,12 +80,14 @@ config WINDOWS_UBUNTU config WINDOWS_MSYS bool "MSYS" + select TOOLCHAIN_WINDOWS ---help--- Build natively in a Cygwin environment with POSIX style paths (like /cygdrive/c/cgywin/home) config WINDOWS_OTHER bool "Windows POSIX-like environment" + select TOOLCHAIN_WINDOWS ---help--- Build natively in another POSIX-like environment. Additional support may be necessary diff --git a/README.txt b/README.txt index ab22e33b77a..b730b4eae72 100644 --- a/README.txt +++ b/README.txt @@ -219,17 +219,16 @@ Ubuntu Bash under Windows 10 Integrating with Windows Tools ------------------------------ - If you want to integrate with Windows native tools, then you will need + If you want to integrate with Windows native tools, then you would need deal with the same kind of craziness as with integrating Cygwin with - native toolchains. But when you select a Windows native toolchain, the - NuttX build system should deal with most that craziness for you. But not - all, see the section "Cygwin Build Problems" below. + native toolchains, see the section "Cygwin Build Problems" below. - WARNING: Do not use Windows native tools with Ubuntu under Windows. This - tool combination is made to work with Cygwin through the use of the - 'cygpath -w' tool that converts paths from say '/cydrive/c/Program Files' - to 'C:\Program Files'. There is, however, no corresponding tool to convert - '/mnt/c/Program Files' in the Ubuntu environment. + However, there is currently no build support for using Windows native + tools with Ubuntu under Windows. This tool combination is made to work + with Cygwin through the use of the 'cygpath -w' tool that converts paths + from say '/cydrive/c/Program Files' to 'C:\Program Files'. There is, + however, no corresponding tool to convert '/mnt/c/Program Files' in the + Ubuntu environment. INSTALLATION ^^^^^^^^^^^^ diff --git a/arch/arm/src/arm/Kconfig b/arch/arm/src/arm/Kconfig index 53f0958b2e2..4b9ce185510 100644 --- a/arch/arm/src/arm/Kconfig +++ b/arch/arm/src/arm/Kconfig @@ -7,8 +7,8 @@ comment "ARM Configuration Options" choice prompt "Toolchain Selection" - default ARM_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARM_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARM_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARM_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARM_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -24,11 +24,11 @@ config ARM_TOOLCHAIN_CODESOURCERYL config ARM_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARM_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARM_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" @@ -38,7 +38,7 @@ config ARM_TOOLCHAIN_GNU_EABIL config ARM_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi-. diff --git a/arch/arm/src/armv6-m/Kconfig b/arch/arm/src/armv6-m/Kconfig index ed8b54a8e1a..ed56bc9a71e 100644 --- a/arch/arm/src/armv6-m/Kconfig +++ b/arch/arm/src/armv6-m/Kconfig @@ -7,12 +7,12 @@ comment "ARMV6M Configuration Options" choice prompt "Toolchain Selection" - default ARMV6M_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARMV6M_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARMV6M_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARMV6M_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_ATOLLIC bool "Atollic Lite/Pro for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -24,7 +24,7 @@ config ARMV6M_TOOLCHAIN_CODEREDL config ARMV6M_TOOLCHAIN_CODEREDW bool "CodeRed for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_CODESOURCERYL bool "CodeSourcery GNU toolchain under Linux" @@ -32,11 +32,11 @@ config ARMV6M_TOOLCHAIN_CODESOURCERYL config ARMV6M_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV6M_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" @@ -46,7 +46,7 @@ config ARMV6M_TOOLCHAIN_GNU_EABIL config ARMV6M_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi. diff --git a/arch/arm/src/armv7-a/Kconfig b/arch/arm/src/armv7-a/Kconfig index 85ad10bbee0..312ed8d4413 100644 --- a/arch/arm/src/armv7-a/Kconfig +++ b/arch/arm/src/armv7-a/Kconfig @@ -128,8 +128,8 @@ endif # ARMV7A_HAVE_L2CC choice prompt "Toolchain Selection" - default ARMV7A_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARMV7A_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARMV7A_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARMV7A_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARMV7A_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -145,11 +145,11 @@ config ARMV7A_TOOLCHAIN_CODESOURCERYL config ARMV7A_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV7A_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV7A_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" @@ -159,7 +159,7 @@ config ARMV7A_TOOLCHAIN_GNU_EABIL config ARMV7A_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi-. diff --git a/arch/arm/src/armv7-m/Kconfig b/arch/arm/src/armv7-m/Kconfig index 404dce07538..4c66b55d54d 100644 --- a/arch/arm/src/armv7-m/Kconfig +++ b/arch/arm/src/armv7-m/Kconfig @@ -48,12 +48,12 @@ config ARMV7M_DTCM choice prompt "Toolchain Selection" - default ARMV7M_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARMV7M_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARMV7M_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARMV7M_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARMV7M_TOOLCHAIN_IARW bool "IAR for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_IAR config ARMV7M_TOOLCHAIN_IARL @@ -63,7 +63,7 @@ config ARMV7M_TOOLCHAIN_IARL config ARMV7M_TOOLCHAIN_ATOLLIC bool "Atollic Lite/Pro for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU config ARMV7M_TOOLCHAIN_BUILDROOT @@ -78,7 +78,7 @@ config ARMV7M_TOOLCHAIN_CODEREDL config ARMV7M_TOOLCHAIN_CODEREDW bool "CodeRed for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU config ARMV7M_TOOLCHAIN_CODESOURCERYL @@ -88,12 +88,12 @@ config ARMV7M_TOOLCHAIN_CODESOURCERYL config ARMV7M_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU config ARMV7M_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU config ARMV7M_TOOLCHAIN_GNU_EABIL @@ -106,7 +106,7 @@ config ARMV7M_TOOLCHAIN_GNU_EABIL config ARMV7M_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) @@ -114,7 +114,7 @@ config ARMV7M_TOOLCHAIN_GNU_EABIW config ARMV7M_TOOLCHAIN_RAISONANCE bool "STMicro Raisonance for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS select ARM_TOOLCHAIN_GNU endchoice diff --git a/arch/arm/src/armv7-r/Kconfig b/arch/arm/src/armv7-r/Kconfig index 1f46770cb6a..03012b5da25 100644 --- a/arch/arm/src/armv7-r/Kconfig +++ b/arch/arm/src/armv7-r/Kconfig @@ -144,8 +144,8 @@ endif # ARMV7R_HAVE_L2CC choice prompt "Toolchain Selection" - default ARMV7R_TOOLCHAIN_GNU_EABIW if HOST_WINDOWS - default ARMV7R_TOOLCHAIN_GNU_EABIL if !HOST_WINDOWS + default ARMV7R_TOOLCHAIN_GNU_EABIW if TOOLCHAIN_WINDOWS + default ARMV7R_TOOLCHAIN_GNU_EABIL if !TOOLCHAIN_WINDOWS config ARMV7R_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -161,11 +161,11 @@ config ARMV7R_TOOLCHAIN_CODESOURCERYL config ARMV7R_TOOLCHAIN_CODESOURCERYW bool "CodeSourcery GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV7R_TOOLCHAIN_DEVKITARM bool "devkitARM GNU toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config ARMV7R_TOOLCHAIN_GNU_EABIL bool "Generic GNU EABI toolchain under Linux (or other POSIX environment)" @@ -175,7 +175,7 @@ config ARMV7R_TOOLCHAIN_GNU_EABIL config ARMV7R_TOOLCHAIN_GNU_EABIW bool "Generic GNU EABI toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for arm-none-eabi-. diff --git a/arch/avr/src/avr/Kconfig b/arch/avr/src/avr/Kconfig index 496529f32c8..2ddfa4e1949 100644 --- a/arch/avr/src/avr/Kconfig +++ b/arch/avr/src/avr/Kconfig @@ -8,13 +8,13 @@ comment "AVR Configuration Options" choice prompt "Toolchain" - default AVR_WINAVR_TOOLCHAIN if HOST_WINDOWS + default AVR_WINAVR_TOOLCHAIN if TOOLCHAIN_WINDOWS default AVR_BUILDROOT_TOOLCHAIN if HOST_LINUX default AVR_CROSSPACK_TOOLCHAIN if HOST_OSX config AVR_WINAVR_TOOLCHAIN bool "WinAVR" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- For Cygwin development environment on Windows machines, you can use WinAVR: http://sourceforge.net/projects/winavr/files/ @@ -29,7 +29,7 @@ config AVR_WINAVR_TOOLCHAIN config AVR_ATMEL_AVR_TOOLCHAIN bool "Atmel AVR Toolchain" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- Atmel provides GNU Toolchain for AVR development. It can be obtained by installing Atmel Studio 6 and later or @@ -55,7 +55,6 @@ config AVR_CROSSPACK_TOOLCHAIN config AVR_BUILDROOT_TOOLCHAIN 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 diff --git a/arch/avr/src/avr32/Kconfig b/arch/avr/src/avr32/Kconfig index 14d5c0f33b4..05a056b6984 100644 --- a/arch/avr/src/avr32/Kconfig +++ b/arch/avr/src/avr32/Kconfig @@ -8,12 +8,12 @@ comment "AVR32 Configuration Options" choice prompt "Toolchain" - default AVR32_AVRTOOLSW if HOST_WINDOWS + default AVR32_AVRTOOLSW if TOOLCHAIN_WINDOWS default AVR32_AVRTOOLSL if HOST_LINUX config AVR32_AVRTOOLSW bool "AVR tools for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config AVR32_AVRTOOLSL bool "AVR tools for Linux" diff --git a/arch/mips/src/mips32/Kconfig b/arch/mips/src/mips32/Kconfig index 228c28557f4..5363ecbd543 100644 --- a/arch/mips/src/mips32/Kconfig +++ b/arch/mips/src/mips32/Kconfig @@ -8,8 +8,8 @@ comment "MIPS32 Configuration Options" choice prompt "Toolchain Selection" - default MIPS32_TOOLCHAIN_MICROCHIPW_LITE if HOST_WINDOWS - default MIPS32_TOOLCHAIN_GNU_ELF if !HOST_WINDOWS + default MIPS32_TOOLCHAIN_MICROCHIPW_LITE if TOOLCHAIN_WINDOWS + default MIPS32_TOOLCHAIN_GNU_ELF if !TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_GNU_ELF bool "Generic GNU ELF toolchain" @@ -31,15 +31,15 @@ config MIPS32_TOOLCHAIN_MICROCHIPL_LITE config MIPS32_TOOLCHAIN_MICROCHIPW_XC32 bool "Microchip XC32 toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_MICROCHIPW bool "Microchip C32 toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_MICROCHIPW_LITE bool "Microchip C32 toolchain under Windows (Lite edition)" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_MICROCHIPOPENL bool "microchipOpen toolchain under Linux" @@ -47,7 +47,7 @@ config MIPS32_TOOLCHAIN_MICROCHIPOPENL config MIPS32_TOOLCHAIN_PINGUINOW bool "Pinguino mips-elf toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS config MIPS32_TOOLCHAIN_PINGUINOL bool "Pinguino mips-elf toolchain under OS X or Linux" diff --git a/arch/misoc/src/lm32/Kconfig b/arch/misoc/src/lm32/Kconfig index b9178978e75..c10407ef28b 100644 --- a/arch/misoc/src/lm32/Kconfig +++ b/arch/misoc/src/lm32/Kconfig @@ -7,8 +7,8 @@ if ARCH_CHIP_LM32 choice prompt "Toolchain Selection" - default LM32_TOOLCHAIN_GNUW if HOST_WINDOWS - default LM32_TOOLCHAIN_GNUL if !HOST_WINDOWS + default LM32_TOOLCHAIN_GNUW if TOOLCHAIN_WINDOWS + default LM32_TOOLCHAIN_GNUL if !TOOLCHAIN_WINDOWS config LM32_TOOLCHAIN_BUILDROOT bool "Buildroot (Cygwin or Linux)" @@ -22,7 +22,7 @@ config LM32_TOOLCHAIN_GNUL config LM32_TOOLCHAIN_GNUW bool "Generic GNU toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 4.5 or newer) configured for lm32-elf-. diff --git a/arch/risc-v/src/rv32im/Kconfig b/arch/risc-v/src/rv32im/Kconfig index 9bc4b560f52..e1607047b0f 100644 --- a/arch/risc-v/src/rv32im/Kconfig +++ b/arch/risc-v/src/rv32im/Kconfig @@ -7,8 +7,8 @@ comment "RV32IM Configuration Options" choice prompt "Toolchain Selection" - default RV32IM_TOOLCHAIN_GNU_RVGW if HOST_WINDOWS - default RV32IM_TOOLCHAIN_GNU_RVGL if !HOST_WINDOWS + default RV32IM_TOOLCHAIN_GNU_RVGW if TOOLCHAIN_WINDOWS + default RV32IM_TOOLCHAIN_GNU_RVGL if !TOOLCHAIN_WINDOWS config RV32IM_TOOLCHAIN_GNU_RVGL bool "Generic GNU RVG toolchain under Linux (or other POSIX environment)" @@ -18,7 +18,7 @@ config RV32IM_TOOLCHAIN_GNU_RVGL config RV32IM_TOOLCHAIN_GNU_RVGW bool "Generic GNU RVG toolchain under Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS ---help--- This option should work for any modern GNU toolchain (GCC 5.2 or newer) configured for riscv32-unknown-elf. diff --git a/arch/z80/src/z180/Kconfig b/arch/z80/src/z180/Kconfig index ce26721f761..f2359d4694e 100644 --- a/arch/z80/src/z180/Kconfig +++ b/arch/z80/src/z180/Kconfig @@ -7,8 +7,8 @@ if ARCH_CHIP_Z180 choice prompt "Toolchain Selection" - default Z180_TOOLCHAIN_SDCCW if HOST_WINDOWS - default Z180_TOOLCHAIN_SDCCL if !HOST_WINDOWS + default Z180_TOOLCHAIN_SDCCW if TOOLCHAIN_WINDOWS + default Z180_TOOLCHAIN_SDCCL if !TOOLCHAIN_WINDOWS config Z180_TOOLCHAIN_SDCCL bool "SDCC for Linux, MAC OSX, or Cygwin" @@ -16,7 +16,7 @@ config Z180_TOOLCHAIN_SDCCL config Z180_TOOLCHAIN_SDCCW bool "SDCC for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS endchoice diff --git a/arch/z80/src/z80/Kconfig b/arch/z80/src/z80/Kconfig index 7a05eb08ef7..46b9f8c08a1 100644 --- a/arch/z80/src/z80/Kconfig +++ b/arch/z80/src/z80/Kconfig @@ -7,8 +7,8 @@ if ARCH_CHIP_Z80 choice prompt "Toolchain Selection" - default Z80_TOOLCHAIN_SDCCW if HOST_WINDOWS - default Z80_TOOLCHAIN_SDCCL if !HOST_WINDOWS + default Z80_TOOLCHAIN_SDCCW if TOOLCHAIN_WINDOWS + default Z80_TOOLCHAIN_SDCCL if !TOOLCHAIN_WINDOWS config Z80_TOOLCHAIN_SDCCL bool "SDCC for Linux, MAC OSX, or Cygwin" @@ -16,7 +16,7 @@ config Z80_TOOLCHAIN_SDCCL config Z80_TOOLCHAIN_SDCCW bool "SDCC for Windows" - depends on HOST_WINDOWS + depends on TOOLCHAIN_WINDOWS endchoice