about summary refs log tree commit diff stats
path: root/build.bat
diff options
context:
space:
mode:
Diffstat (limited to 'build.bat')
-rw-r--r--build.bat169
1 files changed, 169 insertions, 0 deletions
diff --git a/build.bat b/build.bat
new file mode 100644
index 00000000..cff8e6d1
--- /dev/null
+++ b/build.bat
@@ -0,0 +1,169 @@
+@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