From 64497e92d259fc178187c8fccf21116952b65fad Mon Sep 17 00:00:00 2001
From: patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>
Date: Wed, 10 Jun 2009 02:05:05 +0000
Subject: [PATCH] Fixes for build CodeSourcery toolchain

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1868 42af7a65-404d-4744-a932-0658087f49c3
---
 ChangeLog                          |  5 +++--
 Documentation/NuttX.html           |  5 ++++-
 Makefile                           | 14 +++++++++---
 TODO                               |  8 ++++++-
 arch/arm/src/Makefile              | 35 +++++++++++++++++++++---------
 configs/eagle100/README.txt        | 21 ++++++++++++++++++
 configs/eagle100/httpd/Make.defs   | 17 ++++++++++-----
 configs/eagle100/nettest/Make.defs | 17 ++++++++++-----
 configs/eagle100/nsh/Make.defs     | 17 ++++++++++-----
 configs/eagle100/ostest/Make.defs  | 17 ++++++++++-----
 configs/eagle100/src/Makefile      |  8 ++++++-
 11 files changed, 122 insertions(+), 42 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 8ee2f38b84..fe47dc2644 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -767,5 +767,6 @@
 	  specific directories.
 	* config/olimex-strp711/src/up_nsh.c:  Add an NSH board specific directory for
 	  for the Olimex STR7P11 board.
-
-
+	* Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain.  There
+	  were lots of issues with Cygwin paths and Cygwin symbolic links.  These changes
+	  may work with the devarmKIT as well, but that remains untested.
diff --git a/Documentation/NuttX.html b/Documentation/NuttX.html
index 03da645972..7cb216ee97 100644
--- a/Documentation/NuttX.html
+++ b/Documentation/NuttX.html
@@ -8,7 +8,7 @@
   <tr align="center" bgcolor="#e4e4e4">
     <td>
       <h1><big><font color="#3c34ec"><i>NuttX RTOS</i></font></big></h1>
-      <p>Last Updated: June 08, 2009</p>
+      <p>Last Updated: June 09, 2009</p>
     </td>
   </tr>
 </table>
@@ -1437,6 +1437,9 @@ nuttx-0.4.8 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
 	  specific directories.
 	* config/olimex-strp711/src/up_nsh.c:  Add an NSH board specific directory for
 	  for the Olimex STR7P11 board.
+	* Fixed build of LM3X6918 using the CodeSourcery Windows native toolchain.  There
+	  were lots of issues with Cygwin paths and Cygwin symbolic links.  These changes
+	  may work with the devarmKIT as well, but that remains untested.
 
 pascal-0.1.3 2009-xx-xx Gregory Nutt &lt;spudmonkey@racsa.co.cr&gt;
 
diff --git a/Makefile b/Makefile
index 432672ef32..ae200d576f 100644
--- a/Makefile
+++ b/Makefile
@@ -44,6 +44,14 @@ DIRLINK		= $(TOPDIR)/tools/link.sh
 DIRUNLINK	= $(TOPDIR)/tools/unlink.sh
 endif
 
+# This is the final executable
+
+ifeq ($(WINTOOL),y)
+  NUTTX		= "${shell cygpath -w $(TOPDIR)/nuttx}"
+else
+  NUTTX		= $(TOPDIR)/nuttx
+endif
+
 # Process architecture and board-specific directories
 
 ARCH_DIR	= arch/$(CONFIG_ARCH)
@@ -245,13 +253,13 @@ ifeq ($(CONFIG_RRLOAD_BINARY),y)
 	fi
 endif
 ifeq ($(CONFIG_INTELHEX_BINARY),y)
-	@$(OBJCOPY) $(OBJCOPYARGS) -O ihex $(TOPDIR)/$@ $(TOPDIR)/$@.ihx
+	@$(OBJCOPY) $(OBJCOPYARGS) -O ihex $(NUTTX)$(EXEEXT) $(NUTTX)$(EXEEXT).ihx
 endif
 ifeq ($(CONFIG_MOTOROLA_SREC),y)
-	@$(OBJCOPY) $(OBJCOPYARGS) -O srec $(TOPDIR)/$@ $(TOPDIR)/$@.srec
+	@$(OBJCOPY) $(OBJCOPYARGS) -O srec $(NUTTX)$(EXEEXT) $(NUTTX)$(EXEEXT).srec
 endif
 ifeq ($(CONFIG_RAW_BINARY),y)
-	@$(OBJCOPY) $(OBJCOPYARGS) -O binary $(TOPDIR)/$@ $(TOPDIR)/$@.bin
+	@$(OBJCOPY) $(OBJCOPYARGS) -O binary $(NUTTX)$(EXEEXT) $(NUTTX)$(EXEEXT).bin
 endif
 
 depend:
diff --git a/TODO b/TODO
index d4066ecce0..14a6653b52 100644
--- a/TODO
+++ b/TODO
@@ -24,7 +24,7 @@ NuttX TODO List (Last updated April 12, 2009)
   (2)  ARM/i.MX (arch/arm/src/imx/)
   (8)  ARM/LPC214x (arch/arm/src/lpc214x/)
   (3)  ARM/STR71x (arch/arm/src/str71x/)
-  (1)  ARM/LM3S6918 (arch/arm/src/lm3s/)
+  (3)  ARM/LM3S6918 (arch/arm/src/lm3s/)
   (4)  pjrc-8052 / MCS51 (arch/pjrc-8051/)
   (2)  Hitachi/Renesas SH-1 (arch/sh/src/sh1)
   (4)  Renesas M16C/26 (arch/sh/src/m16c)
@@ -548,6 +548,12 @@ o ARM/LM3S6918 (arch/arm/src/lm3s/)
   Priority:    Medium, If the transfer is properly tuned, then there should not
                be any Rx FIFO overruns.
 
+  Description: Dependency generation is currently disabled when a Windows native
+               toolchain is used.  I think that the only issue is that all of the
+               Windows dependencies needed to be quoted in the Make.dep files.
+  Status:      Open
+  Priority:    Low -- unless some dependency-related build issues is discovered.
+
 o pjrc-8052 / MCS51 (arch/pjrc-8051/)
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile
index 2c5526f9de..8bc63a18d1 100644
--- a/arch/arm/src/Makefile
+++ b/arch/arm/src/Makefile
@@ -43,8 +43,17 @@ else
 ARCH_SUBDIR	= arm
 endif
 
-CFLAGS		+= -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common \
+ifeq ($(WINTOOL),y)
+  NUTTX		= "${shell cygpath -w $(TOPDIR)/nuttx}"
+  CFLAGS	+= -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \
+  		   -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \
+		   -I "${shell cygpath -w $(ARCH_SRCDIR)/$(ARCH_SUBDIR)}" \
+		   -I "${shell cygpath -w $(TOPDIR)/sched}"
+else
+  NUTTX		= $(TOPDIR)/nuttx
+  CFLAGS	+= -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common \
 		   -I$(ARCH_SRCDIR)/$(ARCH_SUBDIR) -I$(TOPDIR)/sched
+endif
 
 HEAD_AOBJ	= $(HEAD_ASRC:.S=$(OBJEXT))
 
@@ -61,7 +70,13 @@ LDFLAGS		= $(ARCHSCRIPT)
 EXTRA_LIBS	=
 
 LINKLIBS	=
-LDPATHES	= $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
+ifeq ($(WINTOOL),y)
+  LIBPATHS	= ${shell for path in $(LINKLIBS); do dir=`dirname $(TOPDIR)/$$path`;echo "-L\"`cygpath -w $$dir`\"";done}
+  LIBPATHS	+= -L"${shell cygpath -w $(BOARDDIR)}"
+else
+  LIBPATHS	= $(addprefix -L$(TOPDIR)/,$(dir $(LINKLIBS)))
+  LIBPATHS	+= -L"$(BOARDDIR)"
+endif
 LDLIBS		= $(patsubst lib%,-l%,$(basename $(notdir $(LINKLIBS))))
 
 BOARDDIR	= $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
@@ -88,20 +103,20 @@ board/libboard$(LIBEXT):
 
 nuttx: $(HEAD_AOBJ) board/libboard$(LIBEXT)
 	@echo "LD: nuttx"
-	@$(LD) --entry=__start $(LDFLAGS) $(LDPATHES) -L$(BOARDDIR) -o $(TOPDIR)/$@ $(HEAD_AOBJ) \
+	@$(LD) --entry=__start $(LDFLAGS) $(LIBPATHS) -o $(NUTTX)$(EXEEXT) $(HEAD_AOBJ) \
 		--start-group $(LDLIBS) -lboard --end-group $(EXTRA_LIBS) $(LIBGCC)
 ifeq ($(CONFIG_BOOT_RUNFROMFLASH),y)
-	@export flashloc=`$(OBJDUMP) --all-headers $(TOPDIR)/$@ | grep _eronly | cut -d' ' -f1`;  \
-	$(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.data=0x$$flashloc $(TOPDIR)/$@ $(TOPDIR)/$@.flashimage
-	@mv $(TOPDIR)/$@.flashimage $(TOPDIR)/$@
+	@export flashloc=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _eronly | cut -d' ' -f1`;  \
+	$(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.data=0x$$flashloc $(NUTTX)$(EXEEXT) $(NUTTX).flashimage
+	@mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT)
 endif
-	@$(NM) $(TOPDIR)/$@ | \
+	@$(NM) $(NUTTX)$(EXEEXT) | \
 	grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \
 	sort > $(TOPDIR)/System.map
-	@export vflashstart=`$(OBJDUMP) --all-headers $(TOPDIR)/$@ | grep _vflashstart | cut -d' ' -f1`;  \
+	@export vflashstart=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _vflashstart | cut -d' ' -f1`;  \
 	if [ ! -z "$$vflashstart" ]; then \
-		$(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.vector=0x$$vflashstart $(TOPDIR)/$@ $(TOPDIR)/$@.flashimage; \
-		mv $(TOPDIR)/$@.flashimage $(TOPDIR)/$@; \
+		$(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.vector=0x$$vflashstart $(NUTTX)$(EXEEXT) $(NUTTX).flashimage; \
+		mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT); \
 	fi
 
 .depend: Makefile chip/Make.defs $(SRCS)
diff --git a/configs/eagle100/README.txt b/configs/eagle100/README.txt
index 36be863590..c0219a25a4 100644
--- a/configs/eagle100/README.txt
+++ b/configs/eagle100/README.txt
@@ -38,6 +38,27 @@ GNU Toolchain Options
   Of course, hard coding this CROSS_COMPILE value in Make.defs file will save
   some repetitive typing.
 
+  NOTE: the CodeSourcery and devkitARM toolchains are Windows native toolchains.
+  The NuttX buildroot toolchain is a Cygwin toolchain.  There are several limitations
+  to using a Windows based toolchain in a Cygwin environment.  The two biggestg are:
+
+  1. The Windows toolchain cannot follow Cygwin paths.  Path conversions are
+     performed automatically in the Cygwin makefiles using the 'cygpath' utility
+     but you might easily find some new path problems.  If so, check out 'cygpath -w'
+
+  2. Windows toolchains cannot follow Cygwin symbolic links.  Many symbolic links
+     are used in Nuttx (e.g., include/arch).  The make system works around these
+     problems for the Windows tools by copying directories instead of linking them.
+     But this can also cause some confusion for you:  For example, you may edit
+     a file in a "linked" directory and find that your changes had not effect.
+     That is because you are building the copy of the file in the "fake" symbolic
+     directory.  If you use a Windows toolchain, you should get in the habit of
+     making like this:
+       
+       make clean_context; make CROSSDEV=arm-none-eabi-
+
+     An alias in your .bashrc file might make that less painful.
+ 
 NuttX buildroot Toolchain
 ^^^^^^^^^^^^^^^^^^^^^^^^^
 
diff --git a/configs/eagle100/httpd/Make.defs b/configs/eagle100/httpd/Make.defs
index cf8e2e98df..cc0cba87a3 100644
--- a/configs/eagle100/httpd/Make.defs
+++ b/configs/eagle100/httpd/Make.defs
@@ -66,17 +66,24 @@ else
 endif
 
 ifeq ($(CROSSDEV),arm-elf-)
+  MKDEP			= $(TOPDIR)/tools/mkdeps.sh
   ARCHCPUFLAGS		= -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
+  ARCHINCLUDES		= -I. -isystem $(TOPDIR)/include
+  ARCHXXINCLUDES	= -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
+  ARCHSCRIPT		= -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/httpd/ld.script
 else
+  WINTOOL		= y
+  DIRLINK 		= $(TOPDIR)/tools/winlink.sh
+  DIRUNLINK		= $(TOPDIR)/tools/unlink.sh
+  MKDEP			= $(TOPDIR)/tools/mknulldeps.sh
   ARCHCPUFLAGS		= -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
+  ARCHINCLUDES		= -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
+  ARCHXXINCLUDES	= -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
+  ARCHSCRIPT		= -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/httpd/ld.script}"
 endif
 
 ARCHDEFINES		=
-ARCHINCLUDES		= -I. -isystem $(TOPDIR)/include
-ARCHXXINCLUDES		= -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
-
 ARCHPICFLAGS		= -fpic
-ARCHSCRIPT		= -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/httpd/ld.script
 
 CFLAGS			= $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
 			  $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
@@ -125,8 +132,6 @@ define CLEAN
 	@rm -f *.o *.a
 endef
 
-MKDEP			= $(TOPDIR)/tools/mkdeps.sh
-
 HOSTCC			= gcc
 HOSTINCLUDES		= -I.
 HOSTCFLAGS		= -Wall -Wstrict-prototypes -Wshadow -g -pipe
diff --git a/configs/eagle100/nettest/Make.defs b/configs/eagle100/nettest/Make.defs
index 420e639a1e..acca26e576 100644
--- a/configs/eagle100/nettest/Make.defs
+++ b/configs/eagle100/nettest/Make.defs
@@ -66,17 +66,24 @@ else
 endif
 
 ifeq ($(CROSSDEV),arm-elf-)
+  MKDEP			= $(TOPDIR)/tools/mkdeps.sh
   ARCHCPUFLAGS		= -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
+  ARCHINCLUDES		= -I. -isystem $(TOPDIR)/include
+  ARCHXXINCLUDES	= -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
+  ARCHSCRIPT		= -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nettest/ld.script
 else
+  WINTOOL		= y
+  DIRLINK 		= $(TOPDIR)/tools/winlink.sh
+  DIRUNLINK		= $(TOPDIR)/tools/unlink.sh
+  MKDEP			= $(TOPDIR)/tools/mknulldeps.sh
   ARCHCPUFLAGS		= -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
+  ARCHINCLUDES		= -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
+  ARCHXXINCLUDES	= -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
+  ARCHSCRIPT		= -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nettest/ld.script}"
 endif
 
 ARCHDEFINES		=
-ARCHINCLUDES		= -I. -isystem $(TOPDIR)/include
-ARCHXXINCLUDES		= -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
-
 ARCHPICFLAGS		= -fpic
-ARCHSCRIPT		= -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nettest/ld.script
 
 CFLAGS			= $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
 			  $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
@@ -125,8 +132,6 @@ define CLEAN
 	@rm -f *.o *.a
 endef
 
-MKDEP			= $(TOPDIR)/tools/mkdeps.sh
-
 HOSTCC			= gcc
 HOSTINCLUDES		= -I.
 HOSTCFLAGS		= -Wall -Wstrict-prototypes -Wshadow -g -pipe
diff --git a/configs/eagle100/nsh/Make.defs b/configs/eagle100/nsh/Make.defs
index 385694db85..9527be6e40 100644
--- a/configs/eagle100/nsh/Make.defs
+++ b/configs/eagle100/nsh/Make.defs
@@ -66,17 +66,24 @@ else
 endif
 
 ifeq ($(CROSSDEV),arm-elf-)
+  MKDEP			= $(TOPDIR)/tools/mkdeps.sh
   ARCHCPUFLAGS		= -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
+  ARCHINCLUDES		= -I. -isystem $(TOPDIR)/include
+  ARCHXXINCLUDES	= -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
+  ARCHSCRIPT		= -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nsh/ld.script
 else
+  WINTOOL		= y
+  DIRLINK 		= $(TOPDIR)/tools/winlink.sh
+  DIRUNLINK		= $(TOPDIR)/tools/unlink.sh
+  MKDEP			= $(TOPDIR)/tools/mknulldeps.sh
   ARCHCPUFLAGS		= -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
+  ARCHINCLUDES		= -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
+  ARCHXXINCLUDES	= -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
+  ARCHSCRIPT		= -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nsh/ld.script}"
 endif
 
 ARCHDEFINES		=
-ARCHINCLUDES		= -I. -isystem $(TOPDIR)/include
-ARCHXXINCLUDES		= -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
-
 ARCHPICFLAGS		= -fpic
-ARCHSCRIPT		= -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nsh/ld.script
 
 CFLAGS			= $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
 			  $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
@@ -125,8 +132,6 @@ define CLEAN
 	@rm -f *.o *.a
 endef
 
-MKDEP			= $(TOPDIR)/tools/mkdeps.sh
-
 HOSTCC			= gcc
 HOSTINCLUDES		= -I.
 HOSTCFLAGS		= -Wall -Wstrict-prototypes -Wshadow -g -pipe
diff --git a/configs/eagle100/ostest/Make.defs b/configs/eagle100/ostest/Make.defs
index ee7ba87358..10c344e25a 100644
--- a/configs/eagle100/ostest/Make.defs
+++ b/configs/eagle100/ostest/Make.defs
@@ -66,17 +66,24 @@ else
 endif
 
 ifeq ($(CROSSDEV),arm-elf-)
+  MKDEP			= $(TOPDIR)/tools/mkdeps.sh
   ARCHCPUFLAGS		= -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft
+  ARCHINCLUDES		= -I. -isystem $(TOPDIR)/include
+  ARCHXXINCLUDES	= -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
+  ARCHSCRIPT		= -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ostest/ld.script
 else
+  WINTOOL		= y
+  DIRLINK 		= $(TOPDIR)/tools/winlink.sh
+  DIRUNLINK		= $(TOPDIR)/tools/unlink.sh
+  MKDEP			= $(TOPDIR)/tools/mknulldeps.sh
   ARCHCPUFLAGS		= -mcpu=cortex-m3 -mthumb -mfloat-abi=soft
+  ARCHINCLUDES		= -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
+  ARCHXXINCLUDES	= -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
+  ARCHSCRIPT		= -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ostest/ld.script}"
 endif
 
 ARCHDEFINES		=
-ARCHINCLUDES		= -I. -isystem $(TOPDIR)/include
-ARCHXXINCLUDES		= -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
-
 ARCHPICFLAGS		= -fpic
-ARCHSCRIPT		= -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/ostest/ld.script
 
 CFLAGS			= $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) \
 			  $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) -pipe
@@ -125,8 +132,6 @@ define CLEAN
 	@rm -f *.o *.a
 endef
 
-MKDEP			= $(TOPDIR)/tools/mkdeps.sh
-
 HOSTCC			= gcc
 HOSTINCLUDES		= -I.
 HOSTCFLAGS		= -Wall -Wstrict-prototypes -Wshadow -g -pipe
diff --git a/configs/eagle100/src/Makefile b/configs/eagle100/src/Makefile
index f2ca3a0d6e..79fb8a558d 100644
--- a/configs/eagle100/src/Makefile
+++ b/configs/eagle100/src/Makefile
@@ -49,7 +49,13 @@ SRCS		= $(ASRCS) $(CSRCS)
 OBJS		= $(AOBJS) $(COBJS)
 
 ARCH_SRCDIR	= $(TOPDIR)/arch/$(CONFIG_ARCH)/src
-CFLAGS		+= -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/cortexm3
+ifeq ($(WINTOOL),y)
+  CFLAGS	+= -I "${shell cygpath -w $(ARCH_SRCDIR)/chip}" \
+  		   -I "${shell cygpath -w $(ARCH_SRCDIR)/common}" \
+  		   -I "${shell cygpath -w $(ARCH_SRCDIR)/cortexm3}"
+else
+  CFLAGS	+= -I$(ARCH_SRCDIR)/chip -I$(ARCH_SRCDIR)/common -I$(ARCH_SRCDIR)/cortexm3
+endif
 
 all: libboard$(LIBEXT)
 
-- 
GitLab