diff --git a/ChangeLog.txt b/ChangeLog.txt index 9f425750c..eb7ce483f 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -1390,3 +1390,7 @@ Kconfig file and it will automatically be included in the configuration. The native Windows build is temporarily broken until a new apps/tools/mkconfig.bat script is generated (2015-08-11). + * apps/tools/mkkconfig.bat: Add the Windows script corresponding to + apps/tools/mkkconfig.sh. Needed for a Windows native build. Untested + on initial commit (2015-08-12). + diff --git a/README.txt b/README.txt index 77640bd77..4f481cefb 100644 --- a/README.txt +++ b/README.txt @@ -208,9 +208,6 @@ A: Here are three: well. apps/Makefile uses a tool at apps/tools/mkkconfig.sh that dynamically builds the apps/Kconfig file at pre-configuration time. - NOTE: The native Windows build is temporarily broken until a new - apps/tools/mkconfig.bat script is generated (2015-08-11). - You could, for example, create a script called install.sh that installs a custom application, configuration, and board specific directory: diff --git a/tools/mkkconfig.bat b/tools/mkkconfig.bat new file mode 100755 index 000000000..c2a2a1986 --- /dev/null +++ b/tools/mkkconfig.bat @@ -0,0 +1,141 @@ +@Echo off + +REM apps/tools/mkkconfig.bat +REM +REM Copyright (C) 2015 Gregory Nutt. All rights reserved. +REM Author: Gregory Nutt +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 + +REM Parse command line arguments + +SET topdir= +SET kconfig=Kconfig + +:ArgLoop +IF "%1"=="" GOTO :EndOfLoop +IF "%1"=="-t" GOTO :SetTopDir +IF "%1"=="-o" GOTO :SetKconfig +IF "%1"=="-h" GOTO :ShowUsage + +Echo ERROR: Unrecogized option %1 +GOTO :ShowUsage + +:SetDebug +SET debug=-d +GOTO :NextArg + +:SetTopDir +SHIFT +SET topdir=%1 +GOTO :NextArg + +:SetKconfig +SHIFT +SET kconfig=%1 + +:NextArg +SHIFT +GOTO :ArgLoop + +REM Check input Parameters + +:EndOfLoop +IF "%topdir%"=="" ( + IF EXIST tools\mkkconfig.bat ( + SET topdir=%cd% + ) ELSE ( + cd .. + IF %ERRORLEVEL% GTR 0 ( + Echo ERROR: failed cd .. + GOTO :End + ) + IF EXIST tools\mkkconfig.bat ( + SET topdir=%cd% + ) ELSE ( + Echo ERROR: Cannot find top directory + GOTO :End + ) + ) +) ELSE ( + IF NOT EXIST "%topdir%" ( + Echo ERROR: %topdir% does not EXIST + GOTO :End + ) + Cd %topdir% + IF %ERRORLEVEL% GTR 0 ( + Echo ERROR: failed cd %topdir% + GOTO :End + ) +) + +IF EXIST %kconfig% ( + Del /f /q %kconfig% +REM IF %ERRORLEVEL% GTR 0 ( +REM Echo ERROR: failed to remove %kconfig% +REM GOTO :End +REM ) +) + +Echo # > %kconfig% +Echo # For a description of the syntax of this configuration file, >> %kconfig% +Echo # see the file kconfig-language.txt in the NuttX tools repository. >> %kconfig% +Echo # >> %kconfig% + +DIR /B /A:D >_tmp_.dat + +Echo source "$APPSDIR/builtin/Kconfig" >> %kconfig% +FOR /F "tokens=*" %%s IN (_tmp_.dat) do ( + if "%%s" NEQ "builtin" Echo source "$APPSDIR/%%s/Kconfig" >> %kconfig% +) +DEL _tmp_.dat + +GOTO :End + +REM Exit showing usage + +:ShowUsage +Echo USAGE: %0 [-d] [-t ^] [-o ^] +Echo %0 [-h] +Echo Where: +Echo ^<-d^>: +Echo Enables debug output +Echo -t ^: +Echo Identifies the top applicatino directory +Echo -o ^: +Echo Identifies the specific configuratin for the selected ^. +Echo This must correspond to a sub-directory under the board directory at +Echo under nuttx/configs/^/. +Echo ^<-h^>: +Echo Prints this message and exits. + +REM Exit + +:End +