1*6236dae4SAndroid Build Coastguard Worker@echo off 2*6236dae4SAndroid Build Coastguard Workerrem *************************************************************************** 3*6236dae4SAndroid Build Coastguard Workerrem * _ _ ____ _ 4*6236dae4SAndroid Build Coastguard Workerrem * Project ___| | | | _ \| | 5*6236dae4SAndroid Build Coastguard Workerrem * / __| | | | |_) | | 6*6236dae4SAndroid Build Coastguard Workerrem * | (__| |_| | _ <| |___ 7*6236dae4SAndroid Build Coastguard Workerrem * \___|\___/|_| \_\_____| 8*6236dae4SAndroid Build Coastguard Workerrem * 9*6236dae4SAndroid Build Coastguard Workerrem * Copyright (C) Daniel Stenberg, <[email protected]>, et al. 10*6236dae4SAndroid Build Coastguard Workerrem * 11*6236dae4SAndroid Build Coastguard Workerrem * This software is licensed as described in the file COPYING, which 12*6236dae4SAndroid Build Coastguard Workerrem * you should have received as part of this distribution. The terms 13*6236dae4SAndroid Build Coastguard Workerrem * are also available at https://curl.se/docs/copyright.html. 14*6236dae4SAndroid Build Coastguard Workerrem * 15*6236dae4SAndroid Build Coastguard Workerrem * You may opt to use, copy, modify, merge, publish, distribute and/or sell 16*6236dae4SAndroid Build Coastguard Workerrem * copies of the Software, and permit persons to whom the Software is 17*6236dae4SAndroid Build Coastguard Workerrem * furnished to do so, under the terms of the COPYING file. 18*6236dae4SAndroid Build Coastguard Workerrem * 19*6236dae4SAndroid Build Coastguard Workerrem * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 20*6236dae4SAndroid Build Coastguard Workerrem * KIND, either express or implied. 21*6236dae4SAndroid Build Coastguard Workerrem * 22*6236dae4SAndroid Build Coastguard Workerrem * SPDX-License-Identifier: curl 23*6236dae4SAndroid Build Coastguard Workerrem * 24*6236dae4SAndroid Build Coastguard Workerrem *************************************************************************** 25*6236dae4SAndroid Build Coastguard Worker 26*6236dae4SAndroid Build Coastguard Workerrem NOTES 27*6236dae4SAndroid Build Coastguard Workerrem 28*6236dae4SAndroid Build Coastguard Workerrem This batch file must be used to set up a git tree to build on systems where 29*6236dae4SAndroid Build Coastguard Workerrem there is no autotools support (i.e. DOS and Windows). 30*6236dae4SAndroid Build Coastguard Workerrem 31*6236dae4SAndroid Build Coastguard Worker 32*6236dae4SAndroid Build Coastguard Worker:begin 33*6236dae4SAndroid Build Coastguard Worker rem Set our variables 34*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" setlocal 35*6236dae4SAndroid Build Coastguard Worker set MODE=GENERATE 36*6236dae4SAndroid Build Coastguard Worker 37*6236dae4SAndroid Build Coastguard Worker rem Switch to this batch file's directory 38*6236dae4SAndroid Build Coastguard Worker cd /d "%~0\.." 1>NUL 2>&1 39*6236dae4SAndroid Build Coastguard Worker 40*6236dae4SAndroid Build Coastguard Worker rem Check we are running from a curl git repository 41*6236dae4SAndroid Build Coastguard Worker if not exist GIT-INFO.md goto norepo 42*6236dae4SAndroid Build Coastguard Worker 43*6236dae4SAndroid Build Coastguard Worker:parseArgs 44*6236dae4SAndroid Build Coastguard Worker if "%~1" == "" goto start 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard Worker if /i "%~1" == "-clean" ( 47*6236dae4SAndroid Build Coastguard Worker set MODE=CLEAN 48*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-?" ( 49*6236dae4SAndroid Build Coastguard Worker goto syntax 50*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-h" ( 51*6236dae4SAndroid Build Coastguard Worker goto syntax 52*6236dae4SAndroid Build Coastguard Worker ) else if /i "%~1" == "-help" ( 53*6236dae4SAndroid Build Coastguard Worker goto syntax 54*6236dae4SAndroid Build Coastguard Worker ) else ( 55*6236dae4SAndroid Build Coastguard Worker goto unknown 56*6236dae4SAndroid Build Coastguard Worker ) 57*6236dae4SAndroid Build Coastguard Worker 58*6236dae4SAndroid Build Coastguard Worker shift & goto parseArgs 59*6236dae4SAndroid Build Coastguard Worker 60*6236dae4SAndroid Build Coastguard Worker:start 61*6236dae4SAndroid Build Coastguard Worker if "%MODE%" == "GENERATE" ( 62*6236dae4SAndroid Build Coastguard Worker echo. 63*6236dae4SAndroid Build Coastguard Worker echo Generating prerequisite files 64*6236dae4SAndroid Build Coastguard Worker 65*6236dae4SAndroid Build Coastguard Worker call :generate 66*6236dae4SAndroid Build Coastguard Worker if errorlevel 3 goto nogenhugehelp 67*6236dae4SAndroid Build Coastguard Worker if errorlevel 2 goto nogenmakefile 68*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto warning 69*6236dae4SAndroid Build Coastguard Worker 70*6236dae4SAndroid Build Coastguard Worker ) else ( 71*6236dae4SAndroid Build Coastguard Worker echo. 72*6236dae4SAndroid Build Coastguard Worker echo Removing prerequisite files 73*6236dae4SAndroid Build Coastguard Worker 74*6236dae4SAndroid Build Coastguard Worker call :clean 75*6236dae4SAndroid Build Coastguard Worker if errorlevel 2 goto nocleanhugehelp 76*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 goto nocleanmakefile 77*6236dae4SAndroid Build Coastguard Worker ) 78*6236dae4SAndroid Build Coastguard Worker 79*6236dae4SAndroid Build Coastguard Worker goto success 80*6236dae4SAndroid Build Coastguard Worker 81*6236dae4SAndroid Build Coastguard Workerrem Main generate function. 82*6236dae4SAndroid Build Coastguard Workerrem 83*6236dae4SAndroid Build Coastguard Workerrem Returns: 84*6236dae4SAndroid Build Coastguard Workerrem 85*6236dae4SAndroid Build Coastguard Workerrem 0 - success 86*6236dae4SAndroid Build Coastguard Workerrem 1 - success with simplified tool_hugehelp.c 87*6236dae4SAndroid Build Coastguard Workerrem 2 - failed to generate Makefile 88*6236dae4SAndroid Build Coastguard Workerrem 3 - failed to generate tool_hugehelp.c 89*6236dae4SAndroid Build Coastguard Workerrem 90*6236dae4SAndroid Build Coastguard Worker:generate 91*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" setlocal 92*6236dae4SAndroid Build Coastguard Worker set BASIC_HUGEHELP=0 93*6236dae4SAndroid Build Coastguard Worker 94*6236dae4SAndroid Build Coastguard Worker rem Create Makefile 95*6236dae4SAndroid Build Coastguard Worker echo * %CD%\Makefile 96*6236dae4SAndroid Build Coastguard Worker if exist Makefile.dist ( 97*6236dae4SAndroid Build Coastguard Worker copy /Y Makefile.dist Makefile 1>NUL 2>&1 98*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 ( 99*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 100*6236dae4SAndroid Build Coastguard Worker exit /B 2 101*6236dae4SAndroid Build Coastguard Worker ) 102*6236dae4SAndroid Build Coastguard Worker ) 103*6236dae4SAndroid Build Coastguard Worker 104*6236dae4SAndroid Build Coastguard Worker rem Create tool_hugehelp.c 105*6236dae4SAndroid Build Coastguard Worker echo * %CD%\src\tool_hugehelp.c 106*6236dae4SAndroid Build Coastguard Worker call :genHugeHelp 107*6236dae4SAndroid Build Coastguard Worker if errorlevel 2 ( 108*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 109*6236dae4SAndroid Build Coastguard Worker exit /B 3 110*6236dae4SAndroid Build Coastguard Worker ) 111*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 ( 112*6236dae4SAndroid Build Coastguard Worker set BASIC_HUGEHELP=1 113*6236dae4SAndroid Build Coastguard Worker ) 114*6236dae4SAndroid Build Coastguard Worker cmd /c exit 0 115*6236dae4SAndroid Build Coastguard Worker 116*6236dae4SAndroid Build Coastguard Worker if "%BASIC_HUGEHELP%" == "1" ( 117*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 118*6236dae4SAndroid Build Coastguard Worker exit /B 1 119*6236dae4SAndroid Build Coastguard Worker ) 120*6236dae4SAndroid Build Coastguard Worker 121*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 122*6236dae4SAndroid Build Coastguard Worker exit /B 0 123*6236dae4SAndroid Build Coastguard Worker 124*6236dae4SAndroid Build Coastguard Workerrem Main clean function. 125*6236dae4SAndroid Build Coastguard Workerrem 126*6236dae4SAndroid Build Coastguard Workerrem Returns: 127*6236dae4SAndroid Build Coastguard Workerrem 128*6236dae4SAndroid Build Coastguard Workerrem 0 - success 129*6236dae4SAndroid Build Coastguard Workerrem 1 - failed to clean Makefile 130*6236dae4SAndroid Build Coastguard Workerrem 2 - failed to clean tool_hugehelp.c 131*6236dae4SAndroid Build Coastguard Workerrem 132*6236dae4SAndroid Build Coastguard Worker:clean 133*6236dae4SAndroid Build Coastguard Worker rem Remove Makefile 134*6236dae4SAndroid Build Coastguard Worker echo * %CD%\Makefile 135*6236dae4SAndroid Build Coastguard Worker if exist Makefile ( 136*6236dae4SAndroid Build Coastguard Worker del Makefile 2>NUL 137*6236dae4SAndroid Build Coastguard Worker if exist Makefile ( 138*6236dae4SAndroid Build Coastguard Worker exit /B 1 139*6236dae4SAndroid Build Coastguard Worker ) 140*6236dae4SAndroid Build Coastguard Worker ) 141*6236dae4SAndroid Build Coastguard Worker 142*6236dae4SAndroid Build Coastguard Worker rem Remove tool_hugehelp.c 143*6236dae4SAndroid Build Coastguard Worker echo * %CD%\src\tool_hugehelp.c 144*6236dae4SAndroid Build Coastguard Worker if exist src\tool_hugehelp.c ( 145*6236dae4SAndroid Build Coastguard Worker del src\tool_hugehelp.c 2>NUL 146*6236dae4SAndroid Build Coastguard Worker if exist src\tool_hugehelp.c ( 147*6236dae4SAndroid Build Coastguard Worker exit /B 2 148*6236dae4SAndroid Build Coastguard Worker ) 149*6236dae4SAndroid Build Coastguard Worker ) 150*6236dae4SAndroid Build Coastguard Worker 151*6236dae4SAndroid Build Coastguard Worker exit /B 152*6236dae4SAndroid Build Coastguard Worker 153*6236dae4SAndroid Build Coastguard Workerrem Function to generate src\tool_hugehelp.c 154*6236dae4SAndroid Build Coastguard Workerrem 155*6236dae4SAndroid Build Coastguard Workerrem Returns: 156*6236dae4SAndroid Build Coastguard Workerrem 157*6236dae4SAndroid Build Coastguard Workerrem 0 - full tool_hugehelp.c generated 158*6236dae4SAndroid Build Coastguard Workerrem 1 - simplified tool_hugehelp.c 159*6236dae4SAndroid Build Coastguard Workerrem 2 - failure 160*6236dae4SAndroid Build Coastguard Workerrem 161*6236dae4SAndroid Build Coastguard Worker:genHugeHelp 162*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" setlocal 163*6236dae4SAndroid Build Coastguard Worker set LC_ALL=C 164*6236dae4SAndroid Build Coastguard Worker set BASIC=1 165*6236dae4SAndroid Build Coastguard Worker 166*6236dae4SAndroid Build Coastguard Worker if exist src\tool_hugehelp.c.cvs ( 167*6236dae4SAndroid Build Coastguard Worker copy /Y src\tool_hugehelp.c.cvs src\tool_hugehelp.c 1>NUL 2>&1 168*6236dae4SAndroid Build Coastguard Worker ) else ( 169*6236dae4SAndroid Build Coastguard Worker echo #include "tool_setup.h"> src\tool_hugehelp.c 170*6236dae4SAndroid Build Coastguard Worker echo #include "tool_hugehelp.h">> src\tool_hugehelp.c 171*6236dae4SAndroid Build Coastguard Worker echo.>> src\tool_hugehelp.c 172*6236dae4SAndroid Build Coastguard Worker echo void hugehelp(void^)>> src\tool_hugehelp.c 173*6236dae4SAndroid Build Coastguard Worker echo {>> src\tool_hugehelp.c 174*6236dae4SAndroid Build Coastguard Worker echo #ifdef USE_MANUAL>> src\tool_hugehelp.c 175*6236dae4SAndroid Build Coastguard Worker echo fputs("Built-in manual not included\n", stdout^);>> src\tool_hugehelp.c 176*6236dae4SAndroid Build Coastguard Worker echo #endif>> src\tool_hugehelp.c 177*6236dae4SAndroid Build Coastguard Worker echo }>> src\tool_hugehelp.c 178*6236dae4SAndroid Build Coastguard Worker ) 179*6236dae4SAndroid Build Coastguard Worker 180*6236dae4SAndroid Build Coastguard Worker findstr "/C:void hugehelp(void)" src\tool_hugehelp.c 1>NUL 2>&1 181*6236dae4SAndroid Build Coastguard Worker if errorlevel 1 ( 182*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 183*6236dae4SAndroid Build Coastguard Worker exit /B 2 184*6236dae4SAndroid Build Coastguard Worker ) 185*6236dae4SAndroid Build Coastguard Worker 186*6236dae4SAndroid Build Coastguard Worker if "%BASIC%" == "1" ( 187*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 188*6236dae4SAndroid Build Coastguard Worker exit /B 1 189*6236dae4SAndroid Build Coastguard Worker ) 190*6236dae4SAndroid Build Coastguard Worker 191*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" endlocal 192*6236dae4SAndroid Build Coastguard Worker exit /B 0 193*6236dae4SAndroid Build Coastguard Worker 194*6236dae4SAndroid Build Coastguard Workerrem Function to clean-up local variables under DOS, Windows 3.x and 195*6236dae4SAndroid Build Coastguard Workerrem Windows 9x as setlocal isn't available until Windows NT 196*6236dae4SAndroid Build Coastguard Workerrem 197*6236dae4SAndroid Build Coastguard Worker:dosCleanup 198*6236dae4SAndroid Build Coastguard Worker set MODE= 199*6236dae4SAndroid Build Coastguard Worker set BASIC_HUGEHELP= 200*6236dae4SAndroid Build Coastguard Worker set LC_ALL 201*6236dae4SAndroid Build Coastguard Worker set BASIC= 202*6236dae4SAndroid Build Coastguard Worker 203*6236dae4SAndroid Build Coastguard Worker exit /B 204*6236dae4SAndroid Build Coastguard Worker 205*6236dae4SAndroid Build Coastguard Worker:syntax 206*6236dae4SAndroid Build Coastguard Worker rem Display the help 207*6236dae4SAndroid Build Coastguard Worker echo. 208*6236dae4SAndroid Build Coastguard Worker echo Usage: buildconf [-clean] 209*6236dae4SAndroid Build Coastguard Worker echo. 210*6236dae4SAndroid Build Coastguard Worker echo -clean - Removes the files 211*6236dae4SAndroid Build Coastguard Worker goto error 212*6236dae4SAndroid Build Coastguard Worker 213*6236dae4SAndroid Build Coastguard Worker:unknown 214*6236dae4SAndroid Build Coastguard Worker echo. 215*6236dae4SAndroid Build Coastguard Worker echo Error: Unknown argument '%1' 216*6236dae4SAndroid Build Coastguard Worker goto error 217*6236dae4SAndroid Build Coastguard Worker 218*6236dae4SAndroid Build Coastguard Worker:norepo 219*6236dae4SAndroid Build Coastguard Worker echo. 220*6236dae4SAndroid Build Coastguard Worker echo Error: This batch file should only be used with a curl git repository 221*6236dae4SAndroid Build Coastguard Worker goto error 222*6236dae4SAndroid Build Coastguard Worker 223*6236dae4SAndroid Build Coastguard Worker:nogenmakefile 224*6236dae4SAndroid Build Coastguard Worker echo. 225*6236dae4SAndroid Build Coastguard Worker echo Error: Unable to generate Makefile 226*6236dae4SAndroid Build Coastguard Worker goto error 227*6236dae4SAndroid Build Coastguard Worker 228*6236dae4SAndroid Build Coastguard Worker:nogenhugehelp 229*6236dae4SAndroid Build Coastguard Worker echo. 230*6236dae4SAndroid Build Coastguard Worker echo Error: Unable to generate src\tool_hugehelp.c 231*6236dae4SAndroid Build Coastguard Worker goto error 232*6236dae4SAndroid Build Coastguard Worker 233*6236dae4SAndroid Build Coastguard Worker:nocleanmakefile 234*6236dae4SAndroid Build Coastguard Worker echo. 235*6236dae4SAndroid Build Coastguard Worker echo Error: Unable to clean Makefile 236*6236dae4SAndroid Build Coastguard Worker goto error 237*6236dae4SAndroid Build Coastguard Worker 238*6236dae4SAndroid Build Coastguard Worker:nocleanhugehelp 239*6236dae4SAndroid Build Coastguard Worker echo. 240*6236dae4SAndroid Build Coastguard Worker echo Error: Unable to clean src\tool_hugehelp.c 241*6236dae4SAndroid Build Coastguard Worker goto error 242*6236dae4SAndroid Build Coastguard Worker 243*6236dae4SAndroid Build Coastguard Worker:warning 244*6236dae4SAndroid Build Coastguard Worker echo. 245*6236dae4SAndroid Build Coastguard Worker echo Warning: The curl manual could not be integrated in the source. This means when 246*6236dae4SAndroid Build Coastguard Worker echo you build curl the manual will not be available (curl --manual^). Integration of 247*6236dae4SAndroid Build Coastguard Worker echo the manual is not required and a summary of the options will still be available 248*6236dae4SAndroid Build Coastguard Worker echo (curl --help^). To integrate the manual build with configure or cmake. 249*6236dae4SAndroid Build Coastguard Worker goto success 250*6236dae4SAndroid Build Coastguard Worker 251*6236dae4SAndroid Build Coastguard Worker:error 252*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" ( 253*6236dae4SAndroid Build Coastguard Worker endlocal 254*6236dae4SAndroid Build Coastguard Worker ) else ( 255*6236dae4SAndroid Build Coastguard Worker call :dosCleanup 256*6236dae4SAndroid Build Coastguard Worker ) 257*6236dae4SAndroid Build Coastguard Worker exit /B 1 258*6236dae4SAndroid Build Coastguard Worker 259*6236dae4SAndroid Build Coastguard Worker:success 260*6236dae4SAndroid Build Coastguard Worker if "%OS%" == "Windows_NT" ( 261*6236dae4SAndroid Build Coastguard Worker endlocal 262*6236dae4SAndroid Build Coastguard Worker ) else ( 263*6236dae4SAndroid Build Coastguard Worker call :dosCleanup 264*6236dae4SAndroid Build Coastguard Worker ) 265*6236dae4SAndroid Build Coastguard Worker exit /B 0 266