1@echo off 2rem *************************************************************************** 3rem * _ _ ____ _ 4rem * Project ___| | | | _ \| | 5rem * / __| | | | |_) | | 6rem * | (__| |_| | _ <| |___ 7rem * \___|\___/|_| \_\_____| 8rem * 9rem * Copyright (C) 2014 - 2016, Steve Holme, <steve_holme@hotmail.com>. 10rem * 11rem * This software is licensed as described in the file COPYING, which 12rem * you should have received as part of this distribution. The terms 13rem * are also available at https://curl.haxx.se/docs/copyright.html. 14rem * 15rem * You may opt to use, copy, modify, merge, publish, distribute and/or sell 16rem * copies of the Software, and permit persons to whom the Software is 17rem * furnished to do so, under the terms of the COPYING file. 18rem * 19rem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 20rem * KIND, either express or implied. 21rem * 22rem *************************************************************************** 23 24:begin 25 rem Check we are running on a Windows NT derived OS 26 if not "%OS%" == "Windows_NT" goto nodos 27 28 rem Set our variables 29 setlocal 30 set CHECK_LIB=TRUE 31 set CHECK_SRC=TRUE 32 set CHECK_TESTS=TRUE 33 set CHECK_EXAMPLES=TRUE 34 35:parseArgs 36 if "%~1" == "" goto prerequisites 37 38 if /i "%~1" == "-?" ( 39 goto syntax 40 ) else if /i "%~1" == "-h" ( 41 goto syntax 42 ) else if /i "%~1" == "-help" ( 43 goto syntax 44 ) else if /i "%~1" == "lib" ( 45 set CHECK_LIB=TRUE 46 set CHECK_SRC=FALSE 47 set CHECK_TESTS=FALSE 48 set CHECK_EXAMPLES=FALSE 49 ) else if /i "%~1" == "src" ( 50 set CHECK_LIB=FALSE 51 set CHECK_SRC=TRUE 52 set CHECK_TESTS=FALSE 53 set CHECK_EXAMPLES=FALSE 54 ) else if /i "%~1" == "tests" ( 55 set CHECK_LIB=FALSE 56 set CHECK_SRC=FALSE 57 set CHECK_TESTS=TRUE 58 set CHECK_EXAMPLES=FALSE 59 ) else if /i "%~1" == "examples" ( 60 set CHECK_LIB=FALSE 61 set CHECK_SRC=FALSE 62 set CHECK_TESTS=FALSE 63 set CHECK_EXAMPLES=TRUE 64 ) else ( 65 if not defined SRC_DIR ( 66 set SRC_DIR=%~1% 67 ) else ( 68 goto unknown 69 ) 70 ) 71 72 shift & goto parseArgs 73 74:prerequisites 75 rem Check we have Perl in our path 76 echo %PATH% | findstr /I /C:"\Perl" 1>nul 77 if errorlevel 1 ( 78 rem It isn't so check we have it installed and set the path if it is 79 if exist "%SystemDrive%\Perl" ( 80 set "PATH=%SystemDrive%\Perl\bin;%PATH%" 81 ) else ( 82 if exist "%SystemDrive%\Perl64" ( 83 set "PATH=%SystemDrive%\Perl64\bin;%PATH%" 84 ) else ( 85 goto noperl 86 ) 87 ) 88 ) 89 90:configure 91 if "%SRC_DIR%" == "" set SRC_DIR=.. 92 if not exist "%SRC_DIR%" goto nosrc 93 94:start 95 if "%CHECK_SRC%" == "TRUE" ( 96 rem Check the src directory 97 if exist %SRC_DIR%\src ( 98 for /f "delims=" %%i in ('dir "%SRC_DIR%\src\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\src" -Wtool_hugehelp.c "%%i" 99 for /f "delims=" %%i in ('dir "%SRC_DIR%\src\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\src" "%%i" 100 ) 101 ) 102 103 if "%CHECK_LIB%" == "TRUE" ( 104 rem Check the lib directory 105 if exist %SRC_DIR%\lib ( 106 for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib" "%%i" 107 for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib" -Wcurl_config.h.cmake "%%i" 108 ) 109 110 rem Check the lib\vauth directory 111 if exist %SRC_DIR%\lib\vauth ( 112 for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vauth\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vauth" "%%i" 113 for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vauth\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vauth" "%%i" 114 ) 115 116 rem Check the lib\vtls directory 117 if exist %SRC_DIR%\lib\vtls ( 118 for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vtls\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vtls" "%%i" 119 for /f "delims=" %%i in ('dir "%SRC_DIR%\lib\vtls\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\lib\vtls" "%%i" 120 ) 121 ) 122 123 if "%CHECK_TESTS%" == "TRUE" ( 124 rem Check the tests\libtest directory 125 if exist %SRC_DIR%\tests\libtest ( 126 for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\libtest\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\libtest" "%%i" 127 for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\libtest\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\libtest" "%%i" 128 ) 129 130 rem Check the tests\unit directory 131 if exist %SRC_DIR%\tests\unit ( 132 for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\unit\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\unit" "%%i" 133 for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\unit\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\unit" "%%i" 134 ) 135 136 rem Check the tests\server directory 137 if exist %SRC_DIR%\tests\server ( 138 for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\server\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\server" "%%i" 139 for /f "delims=" %%i in ('dir "%SRC_DIR%\tests\server\*.h.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\tests\server" "%%i" 140 ) 141 ) 142 143 if "%CHECK_EXAMPLES%" == "TRUE" ( 144 rem Check the docs\examples directory 145 if exist %SRC_DIR%\docs\examples ( 146 for /f "delims=" %%i in ('dir "%SRC_DIR%\docs\examples\*.c.*" /b 2^>NUL') do @perl "%SRC_DIR%\lib\checksrc.pl" "-D%SRC_DIR%\docs\examples" "%%i" 147 ) 148 ) 149 150 goto success 151 152:syntax 153 rem Display the help 154 echo. 155 echo Usage: checksrc [what] [directory] 156 echo. 157 echo What to scan: 158 echo. 159 echo lib - Scan the libcurl source 160 echo src - Scan the command-line tool source 161 echo tests - Scan the library tests and unit tests 162 echo examples - Scan the examples 163 echo. 164 echo directory - Specifies the curl source directory 165 goto success 166 167:unknown 168 echo. 169 echo Error: Unknown argument '%1' 170 goto error 171 172:nodos 173 echo. 174 echo Error: Only a Windows NT based Operating System is supported 175 goto error 176 177:noperl 178 echo. 179 echo Error: Perl is not installed 180 goto error 181 182:nosrc 183 echo. 184 echo Error: "%SRC_DIR%" does not exist 185 goto error 186 187:error 188 if "%OS%" == "Windows_NT" endlocal 189 exit /B 1 190 191:success 192 endlocal 193 exit /B 0 194