5 export VLMCSD_VERSION
=$
(git describe
)
7 msbuild
='/cygdrive/c/Program Files (x86)/MSBuild/14.0/bin/MSBuild.exe'
8 version
="$VLMCSD_VERSION, built $(date -u '+%Y-%m-%d %H:%M:%S') UTC"
12 export ExternalCompilerOptions
="/D VERSION=\"\\\"$version\\\"\" /D BUILD_TIME=$(date '+%s')"
14 "$msbuild" ..
/VisualStudio
/vlmcsd.sln
/t
:Rebuild
/p
:Configuration
=publish
/p
:Platform
=x86
/m
/v
:m
15 "$msbuild" ..
/VisualStudio
/vlmcsd.sln
/t
:Rebuild
/p
:Configuration
=publish
/p
:Platform
=x64
/m
/v
:m
19 NUMCPU
=`cat /proc/cpuinfo | grep "processor" | wc -l`
21 CF
="-Wno-missing-braces -fno-common -fno-exceptions -fno-non-call-exceptions -fno-stack-protector -fmerge-all-constants -fno-unwind-tables -fno-asynchronous-unwind-tables -pipe"
22 CFMSRPC
="-Wno-missing-braces -Wno-unused-variable $CF" # -fno-common -fno-stack-protector -fmerge-all-constants -pipe"
24 PF64
="-mpreferred-stack-boundary=4 -march=nocona -mtune=generic"
25 LFCYG32
="-fwhole-program -Wl,--nxcompat,--dynamicbase,--tsaware,--large-address-aware,--disable-long-section-names"
26 LFWIN32
="-fwhole-program -Wl,--nxcompat,--dynamicbase,--tsaware,--large-address-aware,--disable-long-section-names,--no-seh"
27 LFCYG64
="-fwhole-program -Wl,--nxcompat,--dynamicbase,--tsaware,--disable-long-section-names,--high-entropy-va"
28 LFWIN64
="-fwhole-program -Wl,--nxcompat,--dynamicbase,--tsaware,--disable-long-section-names,--high-entropy-va,--no-seh"
30 MAKEFLAGS
="-j$NUMCPU -B"
31 REUSEFLAGS
="-j$NUMCPU"
35 make $MAKEFLAGS libkms FEATURES
=minimum THREADS
=1 DLL_NAME
=..
/bin
/cygkms32.dll DNS_PARSER
=internal CC
=i686-pc-cygwin-gcc.exe CFLAGS
="$CF -flto=jobserver -fvisibility=hidden" PLATFORMFLAGS
="$PF32" LDFLAGS
="$LFCYG32 -Wl,--no-seh"
36 make $MAKEFLAGS libkms FEATURES
=minimum THREADS
=1 DLL_NAME
=..
/bin
/cygkms64.dll DNS_PARSER
=internal CC
=x86_64-pc-cygwin-gcc.exe CFLAGS
="$CF -flto=jobserver -fvisibility=hidden" PLATFORMFLAGS
="$PF64" LDFLAGS
="$LFCYG64 -Wl,--no-seh"
37 make $MAKEFLAGS allmulti THREADS
=1 DNS_PARSER
=internal CLIENT_NAME
=..
/bin
/vlmcs-cygwin-x86 PROGRAM_NAME
=..
/bin
/vlmcsd-cygwin-x86 MULTI_NAME
=..
/bin
/vlmcsdmulti-cygwin-x86 CC
=i686-pc-cygwin-gcc.exe CFLAGS
="$CF" PLATFORMFLAGS
="$PF32" LDFLAGS
="$LFCYG32 -Wl,--no-seh"
38 make $MAKEFLAGS allmulti THREADS
=1 DNS_PARSER
=internal CLIENT_NAME
=..
/bin
/vlmcs-cygwin-x64 PROGRAM_NAME
=..
/bin
/vlmcsd-cygwin-x64 MULTI_NAME
=..
/bin
/vlmcsdmulti-cygwin-x64 CC
=x86_64-pc-cygwin-gcc.exe CFLAGS
="$CF" PLATFORMFLAGS
="$PF64" LDFLAGS
="$LFCYG64 -Wl,--no-seh"
39 make $MAKEFLAGS MSRPC
=1 THREADS
=1 DNS_PARSER
=internal CLIENT_NAME
=..
/bin
/vlmcs-cygwin-msrpc-x86 PROGRAM_NAME
=..
/bin
/vlmcsd-cygwin-msrpc-x86 MULTI_NAME
=..
/bin
/vlmcsdmulti-cygwin-msrpc-x86 CC
=i686-pc-cygwin-gcc.exe CFLAGS
="$CF -fasynchronous-unwind-tables" PLATFORMFLAGS
="$PF32" LDFLAGS
="$LFCYG32"
40 make $MAKEFLAGS MSRPC
=1 THREADS
=1 DNS_PARSER
=internal CLIENT_NAME
=..
/bin
/vlmcs-cygwin-msrpc-x64 PROGRAM_NAME
=..
/bin
/vlmcsd-cygwin-msrpc-x64 MULTI_NAME
=..
/bin
/vlmcsdmulti-cygwin-msrpc-x64 CC
=x86_64-pc-cygwin-gcc.exe CFLAGS
="$CFMSRPC" PLATFORMFLAGS
="$PF64" LDFLAGS
="$LFCYG64"
41 make $MAKEFLAGS vlmcsdmulti MSRPC
=1 THREADS
=1 DNS_PARSER
=internal MULTI_NAME
=..
/bin
/vlmcsdmulti-cygwin-msrpc-x64 CC
=x86_64-pc-cygwin-gcc.exe CFLAGS
="$CFMSRPC -flto=jobserver" PLATFORMFLAGS
="$PF64" LDFLAGS
="$LFCYG64"
42 make $MAKEFLAGS vlmcsdmulti MSRPC
=1 THREADS
=1 DNS_PARSER
=internal MULTI_NAME
=..
/bin
/vlmcsdmulti-cygwin-msrpc-x86 CC
=i686-pc-cygwin-gcc.exe CFLAGS
="$CFMSRPC -flto=jobserver" PLATFORMFLAGS
="$PF32" LDFLAGS
="$LFCYG32"
44 make $MAKEFLAGS THREADS
=1 MSRPC
=1 DNS_PARSER
=internal CLIENT_NAME
=..
/bin
/vlmcs-cygwin-msrpc-x86-openssl-EXPERIMENTAL CRYPTO
=openssl_with_aes PROGRAM_NAME
=..
/bin
/vlmcsd-cygwin-x86-openssl-EXPERIMENTAL CC
=i686-pc-cygwin-gcc.exe CFLAGS
="$CFMSRPC" PLATFORMFLAGS
="$PF32" LDFLAGS
="$LFCYG32"
45 make $MAKEFLAGS THREADS
=1 MSRPC
=1 DNS_PARSER
=internal CLIENT_NAME
=..
/bin
/vlmcs-cygwin-msrpc-x64-openssl-EXPERIMENTAL CRYPTO
=openssl_with_aes PROGRAM_NAME
=..
/bin
/vlmcsd-cygwin-x64-openssl-EXPERIMENTAL CC
=x86_64-pc-cygwin-gcc.exe CFLAGS
="$CFMSRPC" PLATFORMFLAGS
="$PF64" LDFLAGS
="$LFCYG64"
49 make $MAKEFLAGS libkms CRYPTO
=windows FEATURES
=minimum THREADS
=1 DLL_NAME
=..
/bin
/libkms32-gcc.dll CC
=i686-w64-MingW32-gcc.exe CFLAGS
="$CF -flto=jobserver -fvisibility=hidden" PLATFORMFLAGS
="$PF32" LDFLAGS
="-static-libgcc $LFWIN32"
50 make $MAKEFLAGS libkms CRYPTO
=windows FEATURES
=minimum THREADS
=1 DLL_NAME
=..
/bin
/libkms64-gcc.dll CC
=x86_64-w64-MingW32-gcc.exe CFLAGS
="$CF -flto=jobserver -fvisibility=hidden" PLATFORMFLAGS
="$PF64" LDFLAGS
="-static-libgcc $LFWIN64"
51 make $MAKEFLAGS allmulti THREADS
=1 CRYPTO
=internal CLIENT_NAME
=..
/bin
/vlmcs-Windows-x86-gcc PROGRAM_NAME
=..
/bin
/vlmcsd-Windows-x86-gcc MULTI_NAME
=..
/bin
/vlmcsdmulti-Windows-x86-gcc CC
=i686-w64-MingW32-gcc.exe CFLAGS
="$CF -fno-lto" PLATFORMFLAGS
="$PF32" LDFLAGS
="$LFWIN32"
52 make $MAKEFLAGS allmulti THREADS
=1 CRYPTO
=internal CLIENT_NAME
=..
/bin
/vlmcs-Windows-x64-gcc PROGRAM_NAME
=..
/bin
/vlmcsd-Windows-x64-gcc MULTI_NAME
=..
/bin
/vlmcsdmulti-Windows-x64-gcc CC
=x86_64-w64-MingW32-gcc.exe CFLAGS
="$CF -fno-lto" PLATFORMFLAGS
="$PF64" LDFLAGS
="$LFWIN64"
54 make -Bj allmulti CAT
=2 MSRPC
=1 CRYPTO
=windows CLIENT_NAME
=..
/bin
/vlmcs-Windows-msrpc-x86 PROGRAM_NAME
=..
/bin
/vlmcsd-Windows-msrpc-x86 MULTI_NAME
=..
/bin
/vlmcsdmulti-Windows-msrpc-x86 CC
=i686-w64-MingW32-gcc.exe CFLAGS
="$CFMSRPC -fno-lto" PLATFORMFLAGS
="$PF32" LDFLAGS
="$LFWIN32"
55 make $MAKEFLAGS allmulti CAT
=2 THREADS
=1 MSRPC
=1 CRYPTO
=windows CLIENT_NAME
=..
/bin
/vlmcs-Windows-msrpc-x64 PROGRAM_NAME
=..
/bin
/vlmcsd-Windows-msrpc-x64 MULTI_NAME
=..
/bin
/vlmcsdmulti-Windows-msrpc-x64 CC
=x86_64-w64-MingW32-gcc.exe CFLAGS
="$CFMSRPC -fno-lto" PLATFORMFLAGS
="$PF64" LDFLAGS
="$LFWIN64"
57 #make $MAKEFLAGS CAT=2 vlmcsdmulti-Windows-msrpc-x86 THREADS=1 MSRPC=1 CRYPTO=windows MULTI_NAME=vlmcsdmulti-Windows-msrpc-x86 CC=i686-w64-MingW32-gcc.exe CFLAGS="$CFMSRPC" PLATFORMFLAGS="$PF32" LDFLAGS="-Wl,--nxcompat,--dynamicbase,--tsaware,--large-address-aware"
58 #make $MAKEFLAGS CAT=2 vlmcsdmulti-Windows-msrpc-x64 THREADS=1 MSRPC=1 CRYPTO=windows MULTI_NAME=vlmcsdmulti-Windows-msrpc-x64 CC=x86_64-w64-MingW32-gcc.exe CFLAGS="$CFMSRPC" PLATFORMFLAGS="$PF64" LDFLAGS="$LFCYG64"
62 #echo "Copying MingW binaries from distribution server"
64 #scp -p root@ubuntu64:x/binaries/Windows/intel/*Windows* root@ubuntu64:x/binaries/Windows/intel/libkms* .
68 echo "Installing binaries"
70 cp -p bin
/vlmcs-cygwin-x64.exe
/usr
/local
/bin
/vlmcs
&
71 cp -p bin
/vlmcsd-cygwin-x64.exe
/usr
/local
/bin
/vlmcsd
&
72 cp -p bin
/cygkms64.dll
/usr
/local
/bin
/cygkms.dll
&
74 cp -p bin
/libkms32.dll
/cygdrive
/c
/nttools
/x86
&
75 cp -p bin
/libkms64.dll
/cygdrive
/c
/nttools
/x64
&
76 cp -p bin
/vlmcsd-Windows-x86.exe
/cygdrive
/c
/nttools
/x86
/vlmcsd.exe
77 cp -p bin
/vlmcs-Windows-x86.exe
/cygdrive
/c
/nttools
/x86
/vlmcs.exe
79 #cmd /C mklink c:\\nttools\\x86\\vlmcsd.exe vlmcsdmulti.exe 2> /dev/null &
80 #cmd /C mklink c:\\nttools\\x86\\vlmcs.exe vlmcsdmulti.exe 2> /dev/null &
82 echo "Installing man pages"
84 mkdir
-p /usr
/share
/man
/man8
85 mkdir
-p /usr
/share
/man
/man1
86 mkdir
-p /usr
/share
/man
/man7
87 mkdir
-p /usr
/share
/man
/man5
89 cp -p man
/vlmcsd
.7 man
/vlmcsd-floppy
.7 /usr
/share
/man
/man7
90 cp -p man
/vlmcsd
.8 /usr
/share
/man
/man8
91 cp -p man
/vlmcsd.ini
.5 /usr
/share
/man
/man5
92 cp -p man
/vlmcs
.1 man
/vlmcsdmulti
.1 /usr
/share
/man
/man1
94 bzip2 -f /usr
/share
/man
/man
7/vlmcsd-floppy
.7 /usr
/share
/man
/man
5/vlmcsd.ini
.5 /usr
/share
/man
/man
7/vlmcsd
.7 /usr
/share
/man
/man
8/vlmcsd
.8 /usr
/share
/man
/man
1/vlmcs
.1 /usr
/share
/man
/man
1/vlmcsdmulti
.1 &
96 # Copy stuff to distribution server
97 scp
-p bin
/*.exe bin
/*.dll root@ubuntu64
:x
/binaries
/Windows
/intel