169 lines
3.6 KiB
Batchfile
169 lines
3.6 KiB
Batchfile
@echo off
|
|
@rem $LynxId: build.bat,v 1.1 2018/02/19 14:54:26 tom Exp $
|
|
setlocal
|
|
set SSL_DIR=C:\OpenSSL-%TARGET_ARCH%
|
|
|
|
if not exist lynx.man goto :not_lynx
|
|
if not exist lynx.cfg goto :not_lynx
|
|
if not exist makefile.msc goto :not_lynx
|
|
if not exist make-msc.bat goto :not_lynx
|
|
|
|
if "x"=="x%PARTITION%" goto :no_build
|
|
|
|
rem The locally-built libraries are in a directory tree which has subfolders
|
|
rem for each version of Visual Studio. The OpenSSL directories are in
|
|
rem a separate location. Simplify building Lynx by copying the link-libraries
|
|
rem and DLLs to the build-tree.
|
|
|
|
call :copybin \project\all\%PARTITION%
|
|
call :copylib \project\all\%PARTITION%
|
|
|
|
xcopy /f/q lynx.cfg bin
|
|
xcopy /f/q samples\lynx.lss bin
|
|
|
|
call :clean
|
|
call :build %1
|
|
|
|
goto :eof
|
|
|
|
:no_build
|
|
echo The build-tools were not setup
|
|
goto :eof
|
|
|
|
:not_lynx
|
|
echo This is not the Lynx build-directory
|
|
goto :eof
|
|
|
|
rem Copy configuration and OpenSSL DLLs to bin-directory to simplify
|
|
rem ad hoc testing. The "\com" has some GnuWin32 executables which can be
|
|
rem used for decompressing temporary files. Copy those here as well to
|
|
rem simplify packaging.
|
|
|
|
:copybin
|
|
setlocal
|
|
echo ** Copying files to bin-directory
|
|
if not exist bin mkdir bin
|
|
cd bin
|
|
del /f /q lynx*.*
|
|
del /f /q *.dll
|
|
del /f /q *.exe
|
|
copy %1\dynamic\*.dll .
|
|
copy c:\com\bzip2.exe .
|
|
copy c:\com\gzip.exe .
|
|
call :copy_ssl libeay
|
|
call :copy_ssl ssleay
|
|
call :copy_ssl libcrypto
|
|
call :copy_ssl libssl
|
|
call :copy_ssl msvcr
|
|
endlocal
|
|
goto :eof
|
|
|
|
:copy_ssl
|
|
setlocal
|
|
set DESTDIR=%CD%
|
|
cd %SSL_DIR%
|
|
for /f "usebackq" %%i in (`dir /b /s bin`) do xcopy /s /c /f /y %%i\%1*.dll %DESTDIR%
|
|
endlocal
|
|
goto :eof
|
|
|
|
rem We could link with locally-built DLLs, but it would complicate
|
|
rem things unnecessarily, and in the case of the slang library, more
|
|
rem than double the size of an installer since its DLL is larger than all
|
|
rem of the other parts of Lynx combined.
|
|
|
|
:copylib
|
|
setlocal
|
|
echo ** Copying files to lib-directory
|
|
if not exist lib mkdir lib
|
|
cd lib
|
|
del /f /q *.lib
|
|
del /f /q bzip*.h
|
|
del /f /q curs*.h
|
|
del /f /q slang*.h
|
|
del /f /q z*.h
|
|
copy %1\include\* .
|
|
copy %1\static\* .
|
|
endlocal
|
|
goto :eof
|
|
|
|
:clean
|
|
setlocal
|
|
call make-msc.bat clean
|
|
endlocal
|
|
goto :eof
|
|
|
|
:build
|
|
setlocal
|
|
if "x%1"=="x" call :do_default
|
|
if not "x%1"=="x" call :do_%1
|
|
endlocal
|
|
goto :eof
|
|
|
|
:do_all
|
|
call :do_default
|
|
call :do_sock
|
|
call :do_oldssl
|
|
call :do_newssl
|
|
call :do_cs
|
|
call :do_slang
|
|
call make-msc clean
|
|
goto :eof
|
|
|
|
@rem just for testing
|
|
:do_default
|
|
call :doit bin\lynx-default.exe
|
|
goto :eof
|
|
|
|
:do_sock
|
|
call :doit bin\lynx-sock.exe "OPT_SOCK=yes"
|
|
goto :eof
|
|
|
|
rem The "with-openssl" batch-file simplifies some of the task of linking
|
|
rem with OpenSSL DLLs by setting SSL_LIBS for the appropriate old/new
|
|
rem filenames.
|
|
|
|
:do_oldssl
|
|
setlocal
|
|
call with-openssl 1.0.2n 0
|
|
call :doit bin\lynx-oldssl.exe "OPT_SSL=yes" "OPT_SOCK=yes"
|
|
endlocal
|
|
goto :eof
|
|
|
|
:do_newssl
|
|
setlocal
|
|
call with-openssl 1.1.0g 1
|
|
call :doit bin\lynx-newssl.exe "OPT_SSL=yes" "OPT_SOCK=yes"
|
|
endlocal
|
|
goto :eof
|
|
|
|
@rem for packages
|
|
:do_cs
|
|
call :doit bin\lynx-cs.exe "OPT_SOCK=yes" "OPT_CS=yes"
|
|
goto :eof
|
|
|
|
:do_slang
|
|
call :doit bin\lynx-slang.exe "OPT_SOCK=yes" "SCREEN=slang"
|
|
goto :eof
|
|
|
|
:do_none
|
|
goto :eof
|
|
|
|
:doit
|
|
setlocal
|
|
echo ** START BUILD: %*
|
|
set progname=%1
|
|
shift
|
|
call make-msc clean
|
|
echo on
|
|
call make-msc "PROGNAME=%progname%" %1 %2 %3 %4 %5 %6 %7 %8 %9
|
|
if errorlevel 1 goto :failed
|
|
echo ** BUILD-SUCCESS %progname%
|
|
echo.
|
|
%progname% -version
|
|
echo.
|
|
endlocal
|
|
goto :eof
|
|
:failed
|
|
echo ?? BUILD-FAILURE %progname%
|
|
endlocal
|
|
goto :eof
|