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