blob: 3c38f50e6d3731326f9d819b692a1fc9ca8daad6 [file] [log] [blame]
lh9ed821d2023-04-07 01:36:19 -07001@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 -Wcurl_config.h.in -Wcurl_config.h "%%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