summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-13 00:38:59 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-13 00:38:59 +0000
commit5e9f367866ccbca32109ea4356c74539557993f5 (patch)
tree52e5f1dca94711649e55aa614e2be4ecbbda9f86
parent333b9449c02c242229449e8a35023d740f2e93f7 (diff)
downloadnuttx-5e9f367866ccbca32109ea4356c74539557993f5.tar.gz
nuttx-5e9f367866ccbca32109ea4356c74539557993f5.tar.bz2
nuttx-5e9f367866ccbca32109ea4356c74539557993f5.zip
Add tools/mkdeps.bat and tools/mkdeps.c
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5342 42af7a65-404d-4744-a932-0658087f49c3
-rw-r--r--nuttx/ChangeLog5
-rw-r--r--nuttx/Documentation/NuttX.html2
-rw-r--r--nuttx/README.txt16
-rw-r--r--nuttx/configs/amber/README.txt10
-rw-r--r--nuttx/configs/ea3131/README.txt6
-rw-r--r--nuttx/configs/ea3152/README.txt9
-rw-r--r--nuttx/configs/eagle100/README.txt6
-rw-r--r--nuttx/configs/ekk-lm3s9b96/README.txt6
-rw-r--r--nuttx/configs/fire-stm32v2/README.txt6
-rw-r--r--nuttx/configs/hymini-stm32v/README.txt6
-rw-r--r--nuttx/configs/kwikstik-k40/README.txt6
-rw-r--r--nuttx/configs/lincoln60/README.txt6
-rw-r--r--nuttx/configs/lm3s6432-s2e/README.txt6
-rw-r--r--nuttx/configs/lm3s6965-ek/README.txt6
-rw-r--r--nuttx/configs/lm3s8962-ek/README.txt6
-rw-r--r--nuttx/configs/lpc4330-xplorer/README.txt6
-rw-r--r--nuttx/configs/lpcxpresso-lpc1768/README.txt6
-rw-r--r--nuttx/configs/mbed/README.txt6
-rw-r--r--nuttx/configs/mcu123-lpc214x/README.txt6
-rw-r--r--nuttx/configs/micropendous3/README.txt6
-rw-r--r--nuttx/configs/mirtoo/README.txt6
-rw-r--r--nuttx/configs/ntosd-dm320/README.txt6
-rw-r--r--nuttx/configs/nucleus2g/README.txt6
-rw-r--r--nuttx/configs/olimex-lpc1766stk/README.txt6
-rw-r--r--nuttx/configs/olimex-strp711/README.txt6
-rw-r--r--nuttx/configs/pcblogic-pic32mx/README.txt6
-rw-r--r--nuttx/configs/pic32-starterkit/README.txt6
-rw-r--r--nuttx/configs/pic32mx7mmb/README.txt6
-rw-r--r--nuttx/configs/sam3u-ek/README.txt6
-rw-r--r--nuttx/configs/shenzhou/README.txt6
-rw-r--r--nuttx/configs/stm3210e-eval/README.txt6
-rw-r--r--nuttx/configs/stm3220g-eval/README.txt6
-rw-r--r--nuttx/configs/stm3240g-eval/README.txt8
-rw-r--r--nuttx/configs/stm32f100rc_generic/README.txt6
-rw-r--r--nuttx/configs/stm32f4discovery/README.txt6
-rw-r--r--nuttx/configs/stm32f4discovery/winbuild/Make.defs2
-rwxr-xr-xnuttx/configs/stm32f4discovery/winbuild/setenv.bat2
-rw-r--r--nuttx/configs/sure-pic32mx/README.txt6
-rw-r--r--nuttx/configs/teensy/README.txt6
-rw-r--r--nuttx/configs/twr-k60n512/README.txt6
-rw-r--r--nuttx/configs/ubw32/README.txt6
-rw-r--r--nuttx/configs/vsn/README.txt6
-rw-r--r--nuttx/tools/Makefile.host73
-rw-r--r--nuttx/tools/README.txt20
-rw-r--r--nuttx/tools/mkdeps.bat173
-rw-r--r--nuttx/tools/mkdeps.c599
-rwxr-xr-xnuttx/tools/mkdeps.sh2
47 files changed, 903 insertions, 222 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index eb4f4b4ed..0f92fdf7a 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -3608,3 +3608,8 @@
* configs/stm32f4discovery/winbuild: This is a version of the standard
NuttX OS test, but configured to build natively on Windows. Its only
real purpose is to very the native Windows build logic.
+ * tools/mkdeps.bat and tools/mkdeps.c: mkdeps.bat is a failed attempt
+ to leverage mkdeps.sh to CMD.exe. It fails because the are certain
+ critical CFLAG values that cannot be passed on the CMD.exe command line
+ (line '='). mkdeps.c is a work in progress that will, hopefully,
+ replace both mkdeps.sh and mkdeps.bat.
diff --git a/nuttx/Documentation/NuttX.html b/nuttx/Documentation/NuttX.html
index dd7b83cfc..154e5aa2b 100644
--- a/nuttx/Documentation/NuttX.html
+++ b/nuttx/Documentation/NuttX.html
@@ -2971,8 +2971,6 @@ avr, m68k, m68hc11, m68hc12, m9s12, blackfin, m32c, h8, and SuperH ports.</block
<p><small>
NOTE: dependencies are suppress by setting the make variable <code>MKDEPS</code> to point
to the do-nothing dependency script, <code>tools/mknulldeps.sh</code>.
- Dependencies can be enabled for the Windows native GCC compilers by setting
- <code>MKDEPS</code> to point to <code>$(TOPDIR)/tools/mkdeps.sh --winpaths $(TOPDIR)</code>.
</small></p>
</ul>
<p>
diff --git a/nuttx/README.txt b/nuttx/README.txt
index 737d4d4e2..ae0a4a023 100644
--- a/nuttx/README.txt
+++ b/nuttx/README.txt
@@ -578,18 +578,16 @@ Window Native Toolchain Issues
is not a long as you might think because there is no dependency checking
if you are using a native Windows toolchain. That bring us to #3:
- 3. Dependencies are not made when using Windows versions of the GCC. This is
- because the dependencies are generated using Windows pathes which do not
- work with the Cygwin make.
+ 3. Dependencies are not made when using Windows versions of the GCC on a POSIX
+ platform (i.e., Cygwin). This is because the dependencies are generated
+ using Windows paths which do not work with the Cygwin make.
- Support has been added for making dependencies with the windows-native toolchains.
- That support can be enabled by modifying your Make.defs file as follows:
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
+ If you are building natively on Windows, then no such conflict exists
+ and the best selection is:
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mkdeps.exe
General Pre-built Toolchain Issues
diff --git a/nuttx/configs/amber/README.txt b/nuttx/configs/amber/README.txt
index 9ef22917e..63fa5d41f 100644
--- a/nuttx/configs/amber/README.txt
+++ b/nuttx/configs/amber/README.txt
@@ -252,15 +252,7 @@ Windows Native Toolchains
is because the dependencies are generated using Windows pathes which do
not work with the Cygwin make.
- Support has been added for making dependencies with the windows-native
- toolchains. That support can be enabled by modifying your Make.defs
- file as follows:
-
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are
- not building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
An additional issue with the WinAVR toolchain, in particular, is that it
contains an incompatible version of the Cygwin DLL in its bin/ directory.
diff --git a/nuttx/configs/ea3131/README.txt b/nuttx/configs/ea3131/README.txt
index 4d01a4162..29b68ce8d 100644
--- a/nuttx/configs/ea3131/README.txt
+++ b/nuttx/configs/ea3131/README.txt
@@ -80,11 +80,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/ea3152/README.txt b/nuttx/configs/ea3152/README.txt
index 5b513a620..7aa57e3ae 100644
--- a/nuttx/configs/ea3152/README.txt
+++ b/nuttx/configs/ea3152/README.txt
@@ -76,14 +76,7 @@ GNU Toolchain Options
because the dependencies are generated using Windows pathes which do not
work with the Cygwin make.
- Support has been added for making dependencies with the windows-native toolchains.
- That support can be enabled by modifying your Make.defs file as follows:
-
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/eagle100/README.txt b/nuttx/configs/eagle100/README.txt
index ce607c764..79a4b96fd 100644
--- a/nuttx/configs/eagle100/README.txt
+++ b/nuttx/configs/eagle100/README.txt
@@ -69,11 +69,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the CodeSourcery toolchain.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/ekk-lm3s9b96/README.txt b/nuttx/configs/ekk-lm3s9b96/README.txt
index 78fe96ef5..fc9448aaf 100644
--- a/nuttx/configs/ekk-lm3s9b96/README.txt
+++ b/nuttx/configs/ekk-lm3s9b96/README.txt
@@ -139,11 +139,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/fire-stm32v2/README.txt b/nuttx/configs/fire-stm32v2/README.txt
index 0cf782a94..aa3225524 100644
--- a/nuttx/configs/fire-stm32v2/README.txt
+++ b/nuttx/configs/fire-stm32v2/README.txt
@@ -229,11 +229,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
The CodeSourcery Toolchain (2009q1)
-----------------------------------
diff --git a/nuttx/configs/hymini-stm32v/README.txt b/nuttx/configs/hymini-stm32v/README.txt
index 2c8f3a16a..4c5545806 100644
--- a/nuttx/configs/hymini-stm32v/README.txt
+++ b/nuttx/configs/hymini-stm32v/README.txt
@@ -83,11 +83,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/kwikstik-k40/README.txt b/nuttx/configs/kwikstik-k40/README.txt
index 7a68fcffa..1f3873cc9 100644
--- a/nuttx/configs/kwikstik-k40/README.txt
+++ b/nuttx/configs/kwikstik-k40/README.txt
@@ -207,11 +207,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/lincoln60/README.txt b/nuttx/configs/lincoln60/README.txt
index 068ca50dc..87847cd8b 100644
--- a/nuttx/configs/lincoln60/README.txt
+++ b/nuttx/configs/lincoln60/README.txt
@@ -107,11 +107,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/lm3s6432-s2e/README.txt b/nuttx/configs/lm3s6432-s2e/README.txt
index 3630ccc5e..df7e7029d 100644
--- a/nuttx/configs/lm3s6432-s2e/README.txt
+++ b/nuttx/configs/lm3s6432-s2e/README.txt
@@ -134,11 +134,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/lm3s6965-ek/README.txt b/nuttx/configs/lm3s6965-ek/README.txt
index f6c32ee82..96e87bb27 100644
--- a/nuttx/configs/lm3s6965-ek/README.txt
+++ b/nuttx/configs/lm3s6965-ek/README.txt
@@ -163,11 +163,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/lm3s8962-ek/README.txt b/nuttx/configs/lm3s8962-ek/README.txt
index 310edabc5..6de30047b 100644
--- a/nuttx/configs/lm3s8962-ek/README.txt
+++ b/nuttx/configs/lm3s8962-ek/README.txt
@@ -163,11 +163,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/lpc4330-xplorer/README.txt b/nuttx/configs/lpc4330-xplorer/README.txt
index 8c88b5758..f7ec778ee 100644
--- a/nuttx/configs/lpc4330-xplorer/README.txt
+++ b/nuttx/configs/lpc4330-xplorer/README.txt
@@ -188,11 +188,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
The CodeSourcery Toolchain (2009q1)
-----------------------------------
diff --git a/nuttx/configs/lpcxpresso-lpc1768/README.txt b/nuttx/configs/lpcxpresso-lpc1768/README.txt
index 9660e12fe..2fedefc58 100644
--- a/nuttx/configs/lpcxpresso-lpc1768/README.txt
+++ b/nuttx/configs/lpcxpresso-lpc1768/README.txt
@@ -291,11 +291,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/mbed/README.txt b/nuttx/configs/mbed/README.txt
index 958ae9818..09763086b 100644
--- a/nuttx/configs/mbed/README.txt
+++ b/nuttx/configs/mbed/README.txt
@@ -77,11 +77,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/mcu123-lpc214x/README.txt b/nuttx/configs/mcu123-lpc214x/README.txt
index 65d177cc1..49a6d5c0f 100644
--- a/nuttx/configs/mcu123-lpc214x/README.txt
+++ b/nuttx/configs/mcu123-lpc214x/README.txt
@@ -75,11 +75,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the CodeSourcery toolchain.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) may not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/micropendous3/README.txt b/nuttx/configs/micropendous3/README.txt
index c05f1ddd5..cc4a47ee3 100644
--- a/nuttx/configs/micropendous3/README.txt
+++ b/nuttx/configs/micropendous3/README.txt
@@ -269,11 +269,7 @@ Windows Native Toolchains
toolchains. That support can be enabled by modifying your Make.defs
file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are
- not building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
An additional issue with the WinAVR toolchain, in particular, is that it
contains an incompatible version of the Cygwin DLL in its bin/ directory.
diff --git a/nuttx/configs/mirtoo/README.txt b/nuttx/configs/mirtoo/README.txt
index b2d0c5790..7a58572bf 100644
--- a/nuttx/configs/mirtoo/README.txt
+++ b/nuttx/configs/mirtoo/README.txt
@@ -451,11 +451,7 @@ Toolchains
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
Loading NuttX with ICD3
========================
diff --git a/nuttx/configs/ntosd-dm320/README.txt b/nuttx/configs/ntosd-dm320/README.txt
index 46f049e34..ba6cc87ec 100644
--- a/nuttx/configs/ntosd-dm320/README.txt
+++ b/nuttx/configs/ntosd-dm320/README.txt
@@ -99,11 +99,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/nucleus2g/README.txt b/nuttx/configs/nucleus2g/README.txt
index 86a8944ab..0d1d2896b 100644
--- a/nuttx/configs/nucleus2g/README.txt
+++ b/nuttx/configs/nucleus2g/README.txt
@@ -137,11 +137,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/olimex-lpc1766stk/README.txt b/nuttx/configs/olimex-lpc1766stk/README.txt
index 0983ab1f5..6bb36f40c 100644
--- a/nuttx/configs/olimex-lpc1766stk/README.txt
+++ b/nuttx/configs/olimex-lpc1766stk/README.txt
@@ -225,11 +225,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/olimex-strp711/README.txt b/nuttx/configs/olimex-strp711/README.txt
index 74168dbfa..7c3d3fe5b 100644
--- a/nuttx/configs/olimex-strp711/README.txt
+++ b/nuttx/configs/olimex-strp711/README.txt
@@ -160,11 +160,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the CodeSourcery toolchain.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) may not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/pcblogic-pic32mx/README.txt b/nuttx/configs/pcblogic-pic32mx/README.txt
index c15bd45a0..9eea61fd8 100644
--- a/nuttx/configs/pcblogic-pic32mx/README.txt
+++ b/nuttx/configs/pcblogic-pic32mx/README.txt
@@ -279,11 +279,7 @@ Toolchains
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
Loading NuttX with PICkit2
==========================
diff --git a/nuttx/configs/pic32-starterkit/README.txt b/nuttx/configs/pic32-starterkit/README.txt
index 31d84798c..b21066b53 100644
--- a/nuttx/configs/pic32-starterkit/README.txt
+++ b/nuttx/configs/pic32-starterkit/README.txt
@@ -496,11 +496,7 @@ Toolchains
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
Powering the Board
==================
diff --git a/nuttx/configs/pic32mx7mmb/README.txt b/nuttx/configs/pic32mx7mmb/README.txt
index adf83e2f4..cc8ea5573 100644
--- a/nuttx/configs/pic32mx7mmb/README.txt
+++ b/nuttx/configs/pic32mx7mmb/README.txt
@@ -264,11 +264,7 @@ Toolchains
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
Powering the Board
==================
diff --git a/nuttx/configs/sam3u-ek/README.txt b/nuttx/configs/sam3u-ek/README.txt
index fa5d52b69..bcb8b9ef6 100644
--- a/nuttx/configs/sam3u-ek/README.txt
+++ b/nuttx/configs/sam3u-ek/README.txt
@@ -78,11 +78,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/shenzhou/README.txt b/nuttx/configs/shenzhou/README.txt
index 48f183aee..2f2833bbe 100644
--- a/nuttx/configs/shenzhou/README.txt
+++ b/nuttx/configs/shenzhou/README.txt
@@ -252,11 +252,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
The CodeSourcery Toolchain (2009q1)
-----------------------------------
diff --git a/nuttx/configs/stm3210e-eval/README.txt b/nuttx/configs/stm3210e-eval/README.txt
index 50e413b42..9e6311201 100644
--- a/nuttx/configs/stm3210e-eval/README.txt
+++ b/nuttx/configs/stm3210e-eval/README.txt
@@ -86,11 +86,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/stm3220g-eval/README.txt b/nuttx/configs/stm3220g-eval/README.txt
index 58a6f156c..0e6a9a7da 100644
--- a/nuttx/configs/stm3220g-eval/README.txt
+++ b/nuttx/configs/stm3220g-eval/README.txt
@@ -92,11 +92,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
The CodeSourcery Toolchain (2009q1)
-----------------------------------
diff --git a/nuttx/configs/stm3240g-eval/README.txt b/nuttx/configs/stm3240g-eval/README.txt
index 8604f344a..140cc7414 100644
--- a/nuttx/configs/stm3240g-eval/README.txt
+++ b/nuttx/configs/stm3240g-eval/README.txt
@@ -94,11 +94,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
The CodeSourcery Toolchain (2009q1)
-----------------------------------
@@ -1397,4 +1393,4 @@ Where <subdir> is one of the following:
An example configuration for the Embeddable Lightweight XML-RPC
Server at apps/examples/xmlrpc. See http://www.drdobbs.com/web-development/\
an-embeddable-lightweight-xml-rpc-server/184405364 for more info.
- Contributed by Max Holtzberg. \ No newline at end of file
+ Contributed by Max Holtzberg.
diff --git a/nuttx/configs/stm32f100rc_generic/README.txt b/nuttx/configs/stm32f100rc_generic/README.txt
index e9959431c..0c96d4fbc 100644
--- a/nuttx/configs/stm32f100rc_generic/README.txt
+++ b/nuttx/configs/stm32f100rc_generic/README.txt
@@ -88,11 +88,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
The CodeSourcery Toolchain (2009q1)
-----------------------------------
diff --git a/nuttx/configs/stm32f4discovery/README.txt b/nuttx/configs/stm32f4discovery/README.txt
index a69f53b0f..68be0a8a6 100644
--- a/nuttx/configs/stm32f4discovery/README.txt
+++ b/nuttx/configs/stm32f4discovery/README.txt
@@ -92,11 +92,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
The CodeSourcery Toolchain (2009q1)
-----------------------------------
diff --git a/nuttx/configs/stm32f4discovery/winbuild/Make.defs b/nuttx/configs/stm32f4discovery/winbuild/Make.defs
index 083704454..426611f8e 100644
--- a/nuttx/configs/stm32f4discovery/winbuild/Make.defs
+++ b/nuttx/configs/stm32f4discovery/winbuild/Make.defs
@@ -81,7 +81,7 @@ LDSCRIPT = ld.script
# Windows-native toolchains
-MKDEP = $(TOPDIR)/tools/mknulldeps.sh
+MKDEP = $(TOPDIR)/tools/mkdeps.bat
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/scripts/$(LDSCRIPT)
diff --git a/nuttx/configs/stm32f4discovery/winbuild/setenv.bat b/nuttx/configs/stm32f4discovery/winbuild/setenv.bat
index e2196a90a..1d4a95f3a 100755
--- a/nuttx/configs/stm32f4discovery/winbuild/setenv.bat
+++ b/nuttx/configs/stm32f4discovery/winbuild/setenv.bat
@@ -1,3 +1,5 @@
+@echo off
+
rem configs/stm32f4discovery/winbuild/setenv.sh
rem
rem Copyright (C) 2012 Gregory Nutt. All rights reserved.
diff --git a/nuttx/configs/sure-pic32mx/README.txt b/nuttx/configs/sure-pic32mx/README.txt
index ad9835698..68f0bd336 100644
--- a/nuttx/configs/sure-pic32mx/README.txt
+++ b/nuttx/configs/sure-pic32mx/README.txt
@@ -345,11 +345,7 @@ Toolchains
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
Loading NuttX with PICkit2
==========================
diff --git a/nuttx/configs/teensy/README.txt b/nuttx/configs/teensy/README.txt
index 979d8e0e7..454a42d05 100644
--- a/nuttx/configs/teensy/README.txt
+++ b/nuttx/configs/teensy/README.txt
@@ -272,11 +272,7 @@ Windows Native Toolchains
toolchains. That support can be enabled by modifying your Make.defs
file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are
- not building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
An additional issue with the WinAVR toolchain, in particular, is that it
contains an incompatible version of the Cygwin DLL in its bin/ directory.
diff --git a/nuttx/configs/twr-k60n512/README.txt b/nuttx/configs/twr-k60n512/README.txt
index 3b7b402d7..cd567fd37 100644
--- a/nuttx/configs/twr-k60n512/README.txt
+++ b/nuttx/configs/twr-k60n512/README.txt
@@ -344,11 +344,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/configs/ubw32/README.txt b/nuttx/configs/ubw32/README.txt
index f8afb88e4..83ade7dae 100644
--- a/nuttx/configs/ubw32/README.txt
+++ b/nuttx/configs/ubw32/README.txt
@@ -290,11 +290,7 @@ Toolchains
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
Loading NuttX with PICkit2
==========================
diff --git a/nuttx/configs/vsn/README.txt b/nuttx/configs/vsn/README.txt
index 657cfdd89..a0b8e2419 100644
--- a/nuttx/configs/vsn/README.txt
+++ b/nuttx/configs/vsn/README.txt
@@ -83,11 +83,7 @@ GNU Toolchain Options
Support has been added for making dependencies with the windows-native toolchains.
That support can be enabled by modifying your Make.defs file as follows:
- - MKDEP = $(TOPDIR)/tools/mknulldeps.sh
- + MKDEP = $(TOPDIR)/tools/mkdeps.sh --winpaths "$(TOPDIR)"
-
- If you have problems with the dependency build (for example, if you are not
- building on C:), then you may need to modify tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mknulldeps.sh
NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
diff --git a/nuttx/tools/Makefile.host b/nuttx/tools/Makefile.host
index 66bea9937..d6a521272 100644
--- a/nuttx/tools/Makefile.host
+++ b/nuttx/tools/Makefile.host
@@ -33,43 +33,86 @@
#
############################################################################
-all: mkconfig mkversion mksyscall bdf-converter
-default: mkconfig mksyscall
+TOPDIR ?= ${shell pwd}/..
+-include $(TOPDIR)/Make.defs
+include ${TOPDIR}/tools/Config.mk
+
+all: mkconfig$(EXEEXT) mkversion$(EXEEXT) mksyscall$(EXEEXT) bdf-converter$(EXEEXT) mksymtab$(EXEEXT) mkdeps$(EXEEXT)
+default: mkconfig$(EXEEXT) mksyscall$(EXEEXT) mkdeps$(EXEEXT)
+
+ifdef EXEEXT
+.PHONY: clean mkconfig mkversion mksyscall bdf-converter mksymtab mkdeps
+else
.PHONY: clean
+endif
-# Add CFLAGS=-g on the make command line build debug versions
+# Add HOSTCFLAGS=-g on the make command line build debug versions
-CFLAGS = -O2 -Wall -I.
+HOSTCFLAGS ?= -O2 -Wall -I.
+HOSTCC ?= gcc
# mkconfig - Convert a .config file into a C config.h file
-mkconfig: mkconfig.c cfgparser.c
- $(Q) gcc $(CFLAGS) -o mkconfig mkconfig.c cfgparser.c
+mkconfig$(EXEEXT): mkconfig.c cfgparser.c
+ $(Q) $(HOSTCC) $(HOSTCFLAGS) -o mkconfig$(EXEEXT) mkconfig.c cfgparser.c
+
+ifdef EXEEXT
+mkconfig: mkconfig$(EXEEXT)
+endif
# cmpconfig - Compare the contents of two configuration files
cmpconfig: cmpconfig.c
- $(Q) gcc $(CFLAGS) -o cmpconfig cmpconfig.c
+ $(Q) $(HOSTCC) $(HOSTCFLAGS) -o cmpconfig cmpconfig.c
+
+ifdef EXEEXT
+cmpconfig: cmpconfig$(EXEEXT)
+endif
# mkversion - Convert a .version file into a C version.h file
-mkversion: mkconfig.c cfgparser.c
- $(Q) gcc $(CFLAGS) -o mkversion mkversion.c cfgparser.c
+mkversion$(EXEEXT): mkconfig.c cfgparser.c
+ $(Q) $(HOSTCC) $(HOSTCFLAGS) -o mkversion$(EXEEXT) mkversion.c cfgparser.c
+
+ifdef EXEEXT
+mkversion: mkversion$(EXEEXT)
+endif
# mksyscall - Convert a CSV file into syscall stubs and proxies
-mksyscall: mksyscall.c csvparser.c
- $(Q) gcc $(CFLAGS) -o mksyscall mksyscall.c csvparser.c
+mksyscall$(EXEEXT): mksyscall.c csvparser.c
+ $(Q) $(HOSTCC) $(HOSTCFLAGS) -o mksyscall$(EXEEXT) mksyscall.c csvparser.c
+
+ifdef EXEEXT
+mksyscall: mksyscall$(EXEEXT)
+endif
# mksymtab - Convert a CSV file into a symbol table
-mksymtab: mksymtab.c csvparser.c
- $(Q) gcc $(CFLAGS) -o mksymtab mksymtab.c csvparser.c
+mksymtab$(EXEEXT): mksymtab.c csvparser.c
+ $(Q) $(HOSTCC) $(HOSTCFLAGS) -o mksymtab$(EXEEXT) mksymtab.c csvparser.c
+
+ifdef EXEEXT
+mksymtab: mksymtab$(EXEEXT)
+endif
# bdf-converter - Converts a BDF font to the NuttX font format
-bdf-converter: bdf-converter.c
- $(Q) gcc $(CFLAGS) -o bdf-converter bdf-converter.c
+bdf-converter$(EXEEXT): bdf-converter.c
+ $(Q) $(HOSTCC) $(HOSTCFLAGS) -o bdf-converter$(EXEEXT) bdf-converter.c
+
+ifdef EXEEXT
+bdf-converter: bdf-converter$(EXEEXT)
+endif
+
+# Create dependencies for a list of files
+
+mkdeps$(EXEEXT): mkdeps.c csvparser.c
+ $(Q) $(HOSTCC) $(HOSTCFLAGS) -o mkdeps$(EXEEXT) mkdeps.c
+
+ifdef EXEEXT
+mkdeps: mkdeps$(EXEEXT)
+endif
clean:
$(Q) rm -f *.o *.a *~ .*.swp
diff --git a/nuttx/tools/README.txt b/nuttx/tools/README.txt
index 5d52eaeff..28fa664bd 100644
--- a/nuttx/tools/README.txt
+++ b/nuttx/tools/README.txt
@@ -271,6 +271,8 @@ mkromfsimg.sh
may be mounted under /etc in the NuttX pseudo file system.
mkdeps.sh
+mkdeps.bat
+mkdeps.c
mknulldeps.sh
NuttX uses the GCC compilers capabilities to create Makefile dependencies.
@@ -278,7 +280,8 @@ mknulldeps.sh
dependencies. If a NuttX configuration uses the GCC toolchain, its Make.defs
file (see configs/README.txt) will include a line like:
- MKDEP = $(TOPDIR)/tools/mkdeps.sh
+ MKDEP = $(TOPDIR)/tools/mkdeps.sh, or
+ MKDEP = $(TOPDIR)/tools/mkdeps[.exe] (See NOTE below)
If the NuttX configuration does not use a GCC compatible toolchain, then
it cannot use the dependencies and instead it uses mknulldeps.sh:
@@ -287,6 +290,21 @@ mknulldeps.sh
The mknulldeps.sh is a stub script that does essentially nothing.
+ NOTE: The mkdep.* files are undergoing change. mkdeps.sh is a bash
+ script that produces dependencies well for POSIX style hosts (e..g.,
+ Linux and Cygwin). It does not work well for mixed environments with
+ a Windows toolchain running in a POSIX style environemnt (hence, the
+ mknulldeps.sh script).
+
+ mkdeps.bat is a simple port of the bash script to run in a Windows
+ command shell. However, it does not work well either because some
+ of the common CFLAGS use characters like '=' which are transformed
+ by the CMD.exe shell.
+
+ mkdeps.c generates mkdeps (on Linux) or mkdeps.exe (on Windows).
+ This C version should solve all of the issues. However, this verison
+ is still under-development.
+
define.sh
Different compilers have different conventions for specifying pre-
diff --git a/nuttx/tools/mkdeps.bat b/nuttx/tools/mkdeps.bat
new file mode 100644
index 000000000..23aab0b71
--- /dev/null
+++ b/nuttx/tools/mkdeps.bat
@@ -0,0 +1,173 @@
+@echo off
+
+rem tools/mkdeps.sh
+rem
+rem Copyright (C) 2012 Gregory Nutt. All rights reserved.
+rem Author: Gregory Nutt <gnutt@nuttx.org>
+rem
+rem Redistribution and use in source and binary forms, with or without
+rem modification, are permitted provided that the following conditions
+rem are met:
+rem
+rem 1. Redistributions of source code must retain the above copyright
+rem notice, this list of conditions and the following disclaimer.
+rem 2. Redistributions in binary form must reproduce the above copyright
+rem notice, this list of conditions and the following disclaimer in
+rem the documentation and/or other materials provided with the
+rem distribution.
+rem 3. Neither the name NuttX nor the names of its contributors may be
+rem used to endorse or promote products derived from this software
+rem without specific prior written permission.
+rem
+rem THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+rem "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+rem LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+rem FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+rem COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+rem INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+rem BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+rem OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+rem AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+rem LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+rem ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+rem POSSIBILITY OF SUCH DAMAGE.
+
+rem Accumulate CFLAGS up to "--"
+
+set cc=
+set cflags=
+set altpath=
+set files=
+set args=
+set debug=n
+
+:Loop
+if "%1"=="" goto Continue
+
+if "%1"=="--" (
+ set cc=%cflags%
+ set cflags=%args%
+ set args=
+ goto NextParm
+)
+
+if "%1"=="--dep-path" (
+ if "%args%"=="" (
+ set altpath=%altpath% %2
+ ) else (
+ set args=%args% %2
+ )
+ shift
+ goto NextParm
+)
+
+if "%1"=="--dep-debug" (
+rem @echo on
+ set debug=y
+ goto NextParm
+)
+
+if "%1"=="--help" goto Usage
+
+if "%args%"=="" (
+ set args=%1
+) else (
+ set args=%args% %1
+)
+
+:NextParm
+shift
+goto Loop
+:Continue
+
+set files=%args%
+
+if "%debug%"=="y" (
+ echo cc=%cc%
+ echo cflags=%cflags%
+ echo files=%files%
+ echo altpath=%altpath%
+)
+
+rem Now check if we have everything
+
+if "%cc%"=="" (
+ echo ERROR: No compiler specified
+ goto Usage
+)
+
+if "%files%"=="" (
+ rem Don't report an error -- this happens normally in some configurations
+ echo # No files specified for dependency generataion
+ goto End
+)
+
+rem Then get the dependencies for each file
+
+if "%altpath%"=="" goto NoPaths
+for %%G in (%files%) do (
+ set fullpath=
+ set file=%%G
+ call :Checkpaths
+ if "%debug%"=="y" echo %file%: fullpath=%fullpath%
+ if "%fullpath%"=="" goto :NoFile
+ if "%debug%"=="y" echo CMD: %cc% -M %cflags% %fullpath%
+ %cc% -M %cflags% %fullpath% || goto DepFail
+)
+goto :End
+
+:NoPaths
+for %%G in (%files%) do (
+ set fullpath=
+ set file=%%G
+ call :CheckFile %%G
+)
+goto :End
+
+:CheckFile
+if "%debug%"=="y" echo Checkfile: Checking %file%
+if not exist %file% goto :NoFile
+set fullpath=%file%
+ if "%debug%"=="y" echo CMD: %cc% -M %cflags% %fullpath%
+%cc% -M %cflags% %fullpath% || goto DepFail
+goto :EOF
+
+:CheckPaths
+for %%H in (%altpath%) do (
+ set tmppath=%%H\%file%
+ if "%debug%"=="y" echo Checkfile: Checking %tmppath%
+ if exist %tmppath% (
+ set fullpath=%tmppath%
+ goto :EOF
+ )
+)
+goto :EOF
+
+:NoFile
+echo ERROR: No readable file at %file%
+goto Usage
+
+:DepFail
+echo ERROR: Failed to created dependencies for %file%
+
+:Usage
+echo Usage: mkdeps [OPTIONS] CC -- CFLAGS -- file [file [file...]]
+echo Where:
+echo CC
+echo A variable number of arguments that define how to execute the compiler
+echo CFLAGS
+echo The compiler compilation flags
+echo file
+echo One or more C files whose dependencies will be checked. Each file is expected
+echo to reside in the current directory unless --dep-path is provided on the command line
+echo And [OPTIONS] include:
+echo --dep-debug
+echo Enable script debug
+echo --dep-path ^<path^>
+echo Do not look in the current directory for the file. Instead, look in <path> to see
+echo if the file resides there. --dep-path may be used multiple times to specify
+echo multiple alternative location
+echo --help
+echo Shows this message and exits
+
+:End
diff --git a/nuttx/tools/mkdeps.c b/nuttx/tools/mkdeps.c
new file mode 100644
index 000000000..1822dc957
--- /dev/null
+++ b/nuttx/tools/mkdeps.c
@@ -0,0 +1,599 @@
+/****************************************************************************
+ * tools/mkdeps.c
+ *
+ * Copyright (C) 2012 Gregory Nutt. All rights reserved.
+ * Author: Gregory Nutt <gnutt@nuttx.org>
+ *
+ * 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.
+ *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Included Files
+ ****************************************************************************/
+
+#include <sys/stat.h>
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+#include <ctype.h>
+#include <errno.h>
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#define MAX_COMMAND 256
+#ifndef MAX_PATH
+# define MAX_PATH 4096
+#endif
+#define MAX_BUFFER (MAX_COMMAND + MAX_PATH + 2)
+
+/****************************************************************************
+ * Private Types
+ ****************************************************************************/
+
+enum slashmode_e
+{
+ MODE_FSLASH = 0,
+ MODE_BSLASH = 1,
+ MODE_DBLBACK = 2
+};
+
+/****************************************************************************
+ * Private Data
+ ****************************************************************************/
+
+static char *g_cc = NULL;
+static char *g_cflags = NULL;
+static char *g_files = NULL;
+static char *g_altpath = NULL;
+static int g_debug = 0;
+static bool g_winnative = false;
+#ifdef HAVE_WINPATH
+static bool g_winpath = false;
+static char *g_topdir = NULL;
+#endif
+
+/****************************************************************************
+ * Private Functions
+ ****************************************************************************/
+
+static void append(char **base, char *str)
+{
+ char *oldbase;
+ char *newbase;
+ int alloclen;
+
+ oldbase = *base;
+ if (!oldbase)
+ {
+ newbase = strdup(str);
+ if (!newbase)
+ {
+ fprintf(stderr, "ERROR: Failed to strdup %s\n", str);
+ exit(EXIT_FAILURE);
+ }
+ }
+ else
+ {
+ alloclen = strlen(newbase) + strlen(str) + 2;
+ newbase = (char *)malloc(alloclen);
+ if (!newbase)
+ {
+ fprintf(stderr, "ERROR: Failed to allocate %d bytes\n", alloclen);
+ exit(EXIT_FAILURE);
+ }
+
+ snprintf(newbase, alloclen, "%s %s\n", oldbase, str);
+ free(oldbase);
+ }
+
+ *base = newbase;
+}
+
+static void show_usage(const char *progname, const char *msg, int exitcode)
+{
+ if (msg)
+ {
+ fprintf(stderr, "\n");
+ fprintf(stderr, "%s:\n", msg);
+ }
+
+ fprintf(stderr, "\n");
+ fprintf(stderr, "%s [OPTIONS] CC -- CFLAGS -- file [file [file...]]\n", progname);
+ fprintf(stderr, "\n");
+ fprintf(stderr, "Where:\n");
+ fprintf(stderr, " CC\n");
+ fprintf(stderr, " A variable number of arguments that define how to execute the compiler\n");
+ fprintf(stderr, " CFLAGS\n");
+ fprintf(stderr, " The compiler compilation flags\n");
+ fprintf(stderr, " file\n");
+ fprintf(stderr, " One or more C files whose dependencies will be checked. Each file is expected\n");
+ fprintf(stderr, " to reside in the current directory unless --dep-path is provided on the command line\n");
+ fprintf(stderr, "\n");
+ fprintf(stderr, "And [OPTIONS] include:\n");
+ fprintf(stderr, " --dep-debug\n");
+ fprintf(stderr, " Enable script debug\n");
+ fprintf(stderr, " --dep-path <path>\n");
+ fprintf(stderr, " Do not look in the current directory for the file. Instead, look in <path> to see\n");
+ fprintf(stderr, " if the file resides there. --dep-path may be used multiple times to specify\n");
+ fprintf(stderr, " multiple alternative location\n");
+ fprintf(stderr, " --winnative\n");
+ fprintf(stderr, " By default, a POSIX-style environment is assumed (e.g., Linux, Cygwin, etc.) This option is\n");
+ fprintf(stderr, " inform the tool that is working in a pure Windows native environment.\n");
+#ifdef HAVE_WINPATH
+ fprintf(stderr, " --winpaths <TOPDIR>\n");
+ fprintf(stderr, " This option is useful when using a Windows native toolchain in a POSIX environment (such\n");
+ fprintf(stderr, " such as Cygwin). In this case, will CC generates dependency lists using Windows paths\n");
+ fprintf(stderr, " (e.g., C:\\blablah\\blabla). This switch instructs the script to use 'cygpath' to convert\n");
+ fprintf(stderr, " the Windows paths to Cygwin POSIXE paths.\n");
+#endif
+ fprintf(stderr, " --help\n");
+ fprintf(stderr, " Shows this message and exits\n");
+ exit(exitcode);
+}
+
+static void parse_args(int argc, char **argv)
+{
+ char *args = NULL;
+ int argidx;
+
+ /* Accumulate CFLAGS up to "--" */
+
+ for (argidx = 1; argidx < argc; argidx++)
+ {
+ if (strcmp(argv[argidx], "--") == 0)
+ {
+ g_cc = g_cflags;
+ g_cflags = args;
+ args = NULL;
+ }
+ else if (strcmp(argv[argidx], "--dep-debug") == 0)
+ {
+ g_debug++;
+ }
+ else if (strcmp(argv[argidx], "--dep-path") == 0)
+ {
+ argidx++;
+ if (argidx >= argc)
+ {
+ show_usage(argv[0], "ERROR: Missing argument to --dep-path", EXIT_FAILURE);
+ }
+
+ if (args)
+ {
+ append(&args, argv[argidx]);
+ }
+ else
+ {
+ append(&g_altpath, argv[argidx]);
+ }
+ }
+ else if (strcmp(argv[argidx], "--winnative") == 0)
+ {
+ g_winnative = true;
+ }
+#ifdef HAVE_WINPATH
+ else if (strcmp(argv[argidx], "--winpath") == 0)
+ {
+ g_winpath = true;
+ if (g_topdir)
+ {
+ free(g_topdir);
+ }
+
+ argidx++;
+ if (argidx >= argc)
+ {
+ show_usage(argv[0], "ERROR: Missing argument to --winpath", EXIT_FAILURE);
+ }
+
+ g_topdir = strdup(argv[argidx]);
+ }
+#endif
+ else if (strcmp(argv[argidx], "--help") == 0)
+ {
+ show_usage(argv[0], NULL, EXIT_SUCCESS);
+ }
+ else
+ {
+ append(&args, argv[argidx]);
+ }
+ }
+
+ /* The final thing accumulated is the list of files */
+
+ g_files = args;
+
+ /* If no paths were specified, then look in the current directory only */
+
+ if (!g_altpath)
+ {
+ g_altpath = strdup(".");
+ }
+
+ if (g_debug)
+ {
+ fprintf(stderr, "SELECTIONS\n");
+ fprintf(stderr, " CC : \"%s\"\n", g_cc ? g_cc : "(None)");
+ fprintf(stderr, " CFLAGS : \"%s\"\n", g_cflags ? g_cflags : "(None)");
+ fprintf(stderr, " FILES : \"%s\"\n", g_files ? g_files : "(None)");
+ fprintf(stderr, " PATHS : \"%s\"\n", g_altpath ? g_altpath : "(None)");
+#ifdef HAVE_WINPATH
+ fprintf(stderr, " Windows Paths : \"%s\"\n", g_winpath ? "TRUE" : "FALSE");
+ if (g_winpath)
+ {
+ fprintf(stderr, " TOPDIR : \"%s\"\n", g_topdir);
+ }
+#endif
+ fprintf(stderr, " Windows Native : \"%s\"\n", g_winnative ? "TRUE" : "FALSE");
+ }
+
+ /* Check for required paramters */
+
+ if (!g_cc)
+ {
+ show_usage(argv[0], "ERROR: No compiler specified", EXIT_FAILURE);
+ }
+
+ if (!g_files)
+ {
+ /* Don't report an error -- this happens normally in some configurations */
+
+ printf("# No files specified for dependency generataion\n");
+ exit(EXIT_SUCCESS);
+ }
+
+#ifdef HAVE_WINPATH
+ if (g_winnative && g_winpath)
+ {
+ show_usage(argv[0], "ERROR: Both --winnative and --winpapth makes no sense", EXIT_FAILURE);
+ }
+#endif
+}
+
+static void do_dependency(const char *file, char separator)
+{
+ static const char moption[] = " -M ";
+ char command[MAX_BUFFER];
+ struct stat buf;
+ char *altpath;
+ char *path;
+ char *bufptr;
+ int cmdlen;
+ int pathlen;
+ int filelen;
+ int totallen;
+ int ret;
+
+ /* Copy the compiler into the command buffer */
+
+ cmdlen = strlen(g_cc);
+ if (cmdlen >= MAX_BUFFER)
+ {
+ fprintf(stderr, "ERROR: Compiler string is too long: %s\n", path);
+ exit(EXIT_FAILURE);
+ }
+
+ strcpy(command, g_cc);
+
+ /* Copy " -M " */
+
+ cmdlen += strlen(moption);
+ if (cmdlen >= MAX_BUFFER)
+ {
+ fprintf(stderr, "ERROR: Option string is too long: %s\n", moption);
+ exit(EXIT_FAILURE);
+ }
+
+ strcat(command, moption);
+
+ /* Copy the CFLAGS into the command buffer */
+
+ cmdlen += strlen(g_cflags);
+ if (cmdlen >= MAX_BUFFER)
+ {
+ fprintf(stderr, "ERROR: CFLAG string is too long: %s\n", g_cflags);
+ exit(EXIT_FAILURE);
+ }
+
+ strcat(command, g_cflags);
+
+ /* Add a space */
+
+ command[cmdlen] = ' ';
+ command[cmdlen+1] = '\0';
+ cmdlen++;
+
+ /* Try each path. This loop will continue until each path has been tried
+ * (failure) or until stat() finds the file
+ */
+
+ altpath = g_altpath;
+ while ((path = strtok(altpath, " ")) != NULL)
+ {
+ /* Create a full path to the file */
+
+ pathlen = strlen(path);
+ totallen = cmdlen + pathlen;
+ if (totallen >= MAX_BUFFER)
+ {
+ fprintf(stderr, "ERROR: Path is too long: %s\n", path);
+ exit(EXIT_FAILURE);
+ }
+
+ strcpy(&command[cmdlen], path);
+
+ if (command[totallen] != '\0')
+ {
+ fprintf(stderr, "ERROR: Missing NUL terminator\n", path);
+ exit(EXIT_FAILURE);
+ }
+
+ if (command[totallen-1] != separator)
+ {
+ command[totallen] = separator;
+ command[totallen+1] = '\0';
+ pathlen++;
+ totallen++;
+ }
+
+ filelen = strlen(file);
+ totallen += filelen;
+ if (totallen >= MAX_BUFFER)
+ {
+ fprintf(stderr, "ERROR: Path+file is too long\n");
+ exit(EXIT_FAILURE);
+ }
+
+ strcat(command, file);
+
+ /* Check that a file actually exists at this path */
+
+ ret = stat(command, &buf);
+ if (ret < 0)
+ {
+ altpath = NULL;
+ continue;
+ }
+
+ if (!S_ISREG(buf.st_mode))
+ {
+ fprintf(stderr, "ERROR: File %s exists but is not a regular file\n");
+ exit(EXIT_FAILURE);
+ }
+
+ /* Okay.. we have. Create the dependency */
+
+ ret = system(command);
+ if (ret != 0)
+ {
+ fprintf(stderr, "ERROR: ssystem(%s) failed\n");
+ exit(EXIT_FAILURE);
+ }
+
+ /* We don't really know that the command succeeded... Let's assume that it did */
+
+ return;
+ }
+
+ printf("# ERROR: No readable file for \"%s\" found at any location\n", file);
+ exit(EXIT_FAILURE);
+}
+
+/* Convert a Cygwin path to a Windows path */
+
+#ifdef HAVE_WINPATH
+static char *cywin2windows(const char *str, const char *append, enum slashmode_e mode)
+{
+ static const char cygdrive[] = "/cydrive";
+ const char *src = src;
+ char *dest;
+ char *newpath;
+ char *allocpath = NULL;
+ int srclen = strlen(str);
+ int alloclen = 0;
+ int drive = 0;
+ int lastchar;
+
+ /* Skip any leading whitespace */
+
+ while (isspace(*str)) str++;
+
+ /* Were we asked to append something? */
+
+ if (append)
+ {
+ char *tmp;
+
+ alloclen = sizeof(str) + sizeof(append) + 1;
+ allocpath = (char *)malloc(alloclen);
+ if (!allocpath)
+ {
+ fprintf(stderr, "ERROR: Failed to allocate %d bytes\n", alloclen);
+ exit(EXIT_FAILURE);
+ }
+
+ snprintf(allocpath, alloclen, "%s/%s", str, append);
+ }
+
+ /* Looking for path of the form /cygdrive/c/bla/bla/bla */
+
+ if (strcasecmp(src, cygdrive) == 0)
+ {
+ int cygsize = sizeof(cygdrive);
+ if (src[cygsize] == '/')
+ {
+ cygsize++;
+ srclen -= cygsize;
+ src += cygsize;
+
+ if (srclen <= 0)
+ {
+ fprintf(stderr, "ERROR: Unhandled path: \"%s\"\n", str);
+ exit(EXIT_FAILURE);
+ }
+
+ drive = toupper(*src);
+ if (drive < 'A' || drive > 'Z')
+ {
+ fprintf(stderr, "ERROR: Drive charager: \"%s\"\n", str);
+ exit(EXIT_FAILURE);
+ }
+
+ srclen--;
+ src++;
+ alloclen = 2;
+ }
+ }
+
+ /* Determine the size of the new path */
+
+ alloclen += sizeof(src) + 1;
+ if (mode == MODE_DBLBACK)
+ {
+ const char *tmpptr;
+ for (tmpptr = src; *tmpptr; tmpptr++)
+ {
+ if (*tmpptr == '/') alloclen++;
+ }
+ }
+
+ /* Allocate memory for the new path */
+
+ newpath = (char *)malloc(alloclen);
+ if (!newpath)
+ {
+ fprintf(stderr, "ERROR: Failed to allocate %d bytes\n", alloclen);
+ exit(EXIT_FAILURE);
+ }
+
+ dest = newpath;
+
+ /* Copy the drive character */
+
+ if (drive)
+ {
+ *dest++ = drive;
+ *dest++ = ':';
+ }
+
+ /* Copy each character from the source, making modifications for foward slashes as required */
+
+ lastchar = '\0';
+ for (; *src; src++)
+ {
+ if (mode != MODE_FSLASH && *src == '/')
+ {
+ if (lastchar != '/')
+ {
+ *dest++ = '\\';
+ if (mode == MODE_DBLBACK)
+ {
+ *dest++ = '\\';
+ }
+ }
+ }
+ else
+ {
+ *dest++ = *src;
+ }
+
+ lastchar = *src;
+ }
+
+ *dest++ = '\0';
+ if (allocpath)
+ {
+ free(allocpath);
+ }
+ return dest;
+}
+#endif
+
+#ifdef HAVE_WINPATH
+static void do_winpath(char *file)
+{
+ /* The file is in POSIX format. CC expects Windows format to generate the
+ * dependencies, but GNU make expect the resulting dependencies to be back
+ * in POSIX format. What a mess!
+ */
+
+ char *path = cywin2windows(g_topdir, file, MODE_FSLASH);
+
+ /* Then get the dependency and perform conversions on it to make it
+ * palatable to the Cygwin make.
+ */
+#warning "Missing logic"
+
+ free(path);
+}
+#endif
+
+/****************************************************************************
+ * Public Functions
+ ****************************************************************************/
+
+int main(int argc, char **argv, char **envp)
+{
+ char *files;
+ char *file;
+
+ /* Parse command line parameters */
+
+ parse_args(argc, argv);
+
+ /* Then generate dependencies for each path on the command line */
+
+ files = g_files;
+ while ((file = strtok(files, " ")) != NULL)
+ {
+ /* Check if we need to do path conversions for a Windows-natvie tool
+ * being using in a POSIX/Cygwin environment.
+ */
+
+#ifdef HAVE_WINPATH
+ if (g_winpath)
+ {
+ do_winpath(file);
+ }
+ else
+#endif
+ {
+ do_dependency(file, g_winnative ? '\\' : '/');
+ }
+
+ files = NULL;
+ }
+
+ return EXIT_SUCCESS;
+}
diff --git a/nuttx/tools/mkdeps.sh b/nuttx/tools/mkdeps.sh
index acb600150..028fd1d9f 100755
--- a/nuttx/tools/mkdeps.sh
+++ b/nuttx/tools/mkdeps.sh
@@ -2,7 +2,7 @@
############################################################################
# tools/mkdeps.sh
#
-# Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved.
+# Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without