Annotation of embedaddon/curl/buildconf.bat, revision 1.1.1.1
1.1 misho 1: @echo off
2: rem ***************************************************************************
3: rem * _ _ ____ _
4: rem * Project ___| | | | _ \| |
5: rem * / __| | | | |_) | |
6: rem * | (__| |_| | _ <| |___
7: rem * \___|\___/|_| \_\_____|
8: rem *
9: rem * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
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.haxx.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 ***************************************************************************
23:
24: rem NOTES
25: rem
26: rem This batch file must be used to set up a git tree to build on systems where
27: rem there is no autotools support (i.e. DOS and Windows).
28: rem
29:
30: :begin
31: rem Set our variables
32: if "%OS%" == "Windows_NT" setlocal
33: set MODE=GENERATE
34:
35: rem Switch to this batch file's directory
36: cd /d "%~0\.." 1>NUL 2>&1
37:
38: rem Check we are running from a curl git repository
39: if not exist GIT-INFO goto norepo
40:
41: rem Detect programs. HAVE_<PROGNAME>
42: rem When not found the variable is set undefined. The undefined pattern
43: rem allows for statements like "if not defined HAVE_PERL (command)"
44: groff --version <NUL 1>NUL 2>&1
45: if errorlevel 1 (set HAVE_GROFF=) else (set HAVE_GROFF=Y)
46: nroff --version <NUL 1>NUL 2>&1
47: if errorlevel 1 (set HAVE_NROFF=) else (set HAVE_NROFF=Y)
48: perl --version <NUL 1>NUL 2>&1
49: if errorlevel 1 (set HAVE_PERL=) else (set HAVE_PERL=Y)
50: gzip --version <NUL 1>NUL 2>&1
51: if errorlevel 1 (set HAVE_GZIP=) else (set HAVE_GZIP=Y)
52:
53: :parseArgs
54: if "%~1" == "" goto start
55:
56: if /i "%~1" == "-clean" (
57: set MODE=CLEAN
58: ) else if /i "%~1" == "-?" (
59: goto syntax
60: ) else if /i "%~1" == "-h" (
61: goto syntax
62: ) else if /i "%~1" == "-help" (
63: goto syntax
64: ) else (
65: goto unknown
66: )
67:
68: shift & goto parseArgs
69:
70: :start
71: if "%MODE%" == "GENERATE" (
72: echo.
73: echo Generating prerequisite files
74:
75: call :generate
76: if errorlevel 3 goto nogenhugehelp
77: if errorlevel 2 goto nogenmakefile
78: if errorlevel 1 goto warning
79:
80: ) else (
81: echo.
82: echo Removing prerequisite files
83:
84: call :clean
85: if errorlevel 2 goto nocleanhugehelp
86: if errorlevel 1 goto nocleanmakefile
87: )
88:
89: goto success
90:
91: rem Main generate function.
92: rem
93: rem Returns:
94: rem
95: rem 0 - success
96: rem 1 - success with simplified tool_hugehelp.c
97: rem 2 - failed to generate Makefile
98: rem 3 - failed to generate tool_hugehelp.c
99: rem
100: :generate
101: if "%OS%" == "Windows_NT" setlocal
102: set BASIC_HUGEHELP=0
103:
104: rem Create Makefile
105: echo * %CD%\Makefile
106: if exist Makefile.dist (
107: copy /Y Makefile.dist Makefile 1>NUL 2>&1
108: if errorlevel 1 (
109: if "%OS%" == "Windows_NT" endlocal
110: exit /B 2
111: )
112: )
113:
114: rem Create tool_hugehelp.c
115: echo * %CD%\src\tool_hugehelp.c
116: call :genHugeHelp
117: if errorlevel 2 (
118: if "%OS%" == "Windows_NT" endlocal
119: exit /B 3
120: )
121: if errorlevel 1 (
122: set BASIC_HUGEHELP=1
123: )
124: cmd /c exit 0
125:
126: rem Setup c-ares git tree
127: if exist ares\buildconf.bat (
128: echo.
129: echo Configuring c-ares build environment
130: cd ares
131: call buildconf.bat
132: cd ..
133: )
134:
135: if "%BASIC_HUGEHELP%" == "1" (
136: if "%OS%" == "Windows_NT" endlocal
137: exit /B 1
138: )
139:
140: if "%OS%" == "Windows_NT" endlocal
141: exit /B 0
142:
143: rem Main clean function.
144: rem
145: rem Returns:
146: rem
147: rem 0 - success
148: rem 1 - failed to clean Makefile
149: rem 2 - failed to clean tool_hugehelp.c
150: rem
151: :clean
152: rem Remove Makefile
153: echo * %CD%\Makefile
154: if exist Makefile (
155: del Makefile 2>NUL
156: if exist Makefile (
157: exit /B 1
158: )
159: )
160:
161: rem Remove tool_hugehelp.c
162: echo * %CD%\src\tool_hugehelp.c
163: if exist src\tool_hugehelp.c (
164: del src\tool_hugehelp.c 2>NUL
165: if exist src\tool_hugehelp.c (
166: exit /B 2
167: )
168: )
169:
170: exit /B
171:
172: rem Function to generate src\tool_hugehelp.c
173: rem
174: rem Returns:
175: rem
176: rem 0 - full tool_hugehelp.c generated
177: rem 1 - simplified tool_hugehelp.c
178: rem 2 - failure
179: rem
180: :genHugeHelp
181: if "%OS%" == "Windows_NT" setlocal
182: set LC_ALL=C
183: set ROFFCMD=
184: set BASIC=1
185:
186: if defined HAVE_PERL (
187: if defined HAVE_GROFF (
188: set ROFFCMD=groff -mtty-char -Tascii -P-c -man
189: ) else if defined HAVE_NROFF (
190: set ROFFCMD=nroff -c -Tascii -man
191: )
192: )
193:
194: if defined ROFFCMD (
195: echo #include "tool_setup.h"> src\tool_hugehelp.c
196: echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
197:
198: if defined HAVE_GZIP (
199: echo #ifndef HAVE_LIBZ>> src\tool_hugehelp.c
200: )
201:
202: %ROFFCMD% docs\curl.1 2>NUL | perl src\mkhelp.pl docs\MANUAL >> src\tool_hugehelp.c
203: if defined HAVE_GZIP (
204: echo #else>> src\tool_hugehelp.c
205: %ROFFCMD% docs\curl.1 2>NUL | perl src\mkhelp.pl -c docs\MANUAL >> src\tool_hugehelp.c
206: echo #endif /^* HAVE_LIBZ ^*/>> src\tool_hugehelp.c
207: )
208:
209: set BASIC=0
210: ) else (
211: if exist src\tool_hugehelp.c.cvs (
212: copy /Y src\tool_hugehelp.c.cvs src\tool_hugehelp.c 1>NUL 2>&1
213: ) else (
214: echo #include "tool_setup.h"> src\tool_hugehelp.c
215: echo #include "tool_hugehelp.h">> src\tool_hugehelp.c
216: echo.>> src\tool_hugehelp.c
217: echo void hugehelp(void^)>> src\tool_hugehelp.c
218: echo {>> src\tool_hugehelp.c
219: echo #ifdef USE_MANUAL>> src\tool_hugehelp.c
220: echo fputs("Built-in manual not included\n", stdout^);>> src\tool_hugehelp.c
221: echo #endif>> src\tool_hugehelp.c
222: echo }>> src\tool_hugehelp.c
223: )
224: )
225:
226: findstr "/C:void hugehelp(void)" src\tool_hugehelp.c 1>NUL 2>&1
227: if errorlevel 1 (
228: if "%OS%" == "Windows_NT" endlocal
229: exit /B 2
230: )
231:
232: if "%BASIC%" == "1" (
233: if "%OS%" == "Windows_NT" endlocal
234: exit /B 1
235: )
236:
237: if "%OS%" == "Windows_NT" endlocal
238: exit /B 0
239:
240: rem Function to clean-up local variables under DOS, Windows 3.x and
241: rem Windows 9x as setlocal isn't available until Windows NT
242: rem
243: :dosCleanup
244: set MODE=
245: set HAVE_GROFF=
246: set HAVE_NROFF=
247: set HAVE_PERL=
248: set HAVE_GZIP=
249: set BASIC_HUGEHELP=
250: set LC_ALL
251: set ROFFCMD=
252: set BASIC=
253:
254: exit /B
255:
256: :syntax
257: rem Display the help
258: echo.
259: echo Usage: buildconf [-clean]
260: echo.
261: echo -clean - Removes the files
262: goto error
263:
264: :unknown
265: echo.
266: echo Error: Unknown argument '%1'
267: goto error
268:
269: :norepo
270: echo.
271: echo Error: This batch file should only be used with a curl git repository
272: goto error
273:
274: :nogenmakefile
275: echo.
276: echo Error: Unable to generate Makefile
277: goto error
278:
279: :nogenhugehelp
280: echo.
281: echo Error: Unable to generate src\tool_hugehelp.c
282: goto error
283:
284: :nocleanmakefile
285: echo.
286: echo Error: Unable to clean Makefile
287: goto error
288:
289: :nocleanhugehelp
290: echo.
291: echo Error: Unable to clean src\tool_hugehelp.c
292: goto error
293:
294: :warning
295: echo.
296: echo Warning: The curl manual could not be integrated in the source. This means when
297: echo you build curl the manual will not be available (curl --man^). Integration of
298: echo the manual is not required and a summary of the options will still be available
299: echo (curl --help^). To integrate the manual your PATH is required to have
300: echo groff/nroff, perl and optionally gzip for compression.
301: goto success
302:
303: :error
304: if "%OS%" == "Windows_NT" (
305: endlocal
306: ) else (
307: call :dosCleanup
308: )
309: exit /B 1
310:
311: :success
312: if "%OS%" == "Windows_NT" (
313: endlocal
314: ) else (
315: call :dosCleanup
316: )
317: exit /B 0
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>