setlocal
path=%path%;c:\mozilla-build\7zip;
:: read the version of wxWidgets from the wxMSW source distribution
:: wx_ver is used later on only in this script to set up a softlink
:: so that Erlang finds it in the correct location
for %%i in ("%relax%\bits\wxMSW*.zip") do set wx_src=%%~ni
set wx_ver=%wx_src:wxmsw=wxWidgets%
setx wx_ver %wx_ver%
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if exist c:\cygwin\opt\local\pgm\%wx_ver% goto build
if exist %relax%\%wx_src% goto build
7z.exe x %relax%\bits\wxMSW* -aoa -y -o%relax%\
mkdir c:\cygwin\opt\local\pgm > NUL: 2>&1
mklink /d c:\cygwin\opt\local\pgm\%wx_ver% %relax%\%wx_src%
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:build
:: we need to modify setup.h to have full wx support in Erlang
:: wx docs also advise modifying the following
::  lib\vc_lib\msw\wx\setup.h          VC++ static, wxMSW
::  lib\vc_lib\mswud\wx\setup.h        VC++ static, wxMSW, Unicode, debug
::  lib\vc_lib\mswunivd\wx\setup.h     VC++ static, wxUniversal, debug
type %relax%\bits\wxwidgets_setup.h >> %relax%\%wx_src%\include\wx\msw\setup.h

nmake BUILD=release SHARED=0 UNICODE=1 USE_OPENGL=1 USE_GDIPLUS=1 DIR_SUFFIX_CPU= -f makefile.vc
pushd %RELAX%\%wx_src%\build\msw
nmake BUILD=release SHARED=0 UNICODE=1 USE_OPENGL=1 USE_GDIPLUS=1 DIR_SUFFIX_CPU= -f makefile.vc
::rd /s/q vc_msw vc_mswd vc_mswu vc_mswud >NUL: 2>&1
popd
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
pushd %RELAX%\wxMSW*\contrib\build\stc
nmake BUILD=release SHARED=0 UNICODE=1 USE_OPENGL=1 USE_GDIPLUS=1 DIR_SUFFIX_CPU= -f makefile.vc
::rd /s/q vc_msw vc_mswd vc_mswu vc_mswudpopd >NUL: 2>&1
goto eof
:::::::::::::::::::::::::::::::::::::::::::::
:: future notes for using 2.9.2
:: hack ERL_TOP/lib/wx/configure.in and replace all 2.8 with 2.9
:: it also looks like changes to setup.h might not be needed either
:: folder names have shifted as well
pushd %RELAX%\wxMSW*\src\msw
pushd %RELAX%\wxMSW*\src\stc

:: or try this approach
:: under wxMSW 2.8.11 using the same upgrade shenanigans as before
pushd %RELAX%\wxMSW*\build\msw
set vsconsoleoutput=1
devenv wx.sln /upgrade
devenv wx.sln /build "Unicode Release|Win32"
devenv wx.sln /build "Unicode Debug|Win32"
pushd %RELAX%\wxMSW*\contrib\build\stc
devenv stc.sln /upgrade
devenv stc.sln /build "Unicode Release|Win32"
devenv stc.sln /build "Unicode Debug|Win32"

:: use this to re-test in Erlang under wx without rerunning configure
:: pushd $ERL_TOP/lib/wx && /bin/sh ./configure --disable-option-checking '--prefix=/usr/local'  '--build=i686-pc-cygwin' 'build_alias=win32' '--host=win32' '--target=win32' 'CC=cc.sh' 'CXX=cc.sh' 'RANLIB=true' 'AR=ar.sh' '--enable-dynamic-ssl-lib' 'host_alias=win32' 'target_alias=win32' 'ERL_TOP=/relax/otp_src_R14B04' --cache-file=/relax/otp_src_R14B04/erts/autoconf/win32.config.cache --srcdir=.
:eof
endlocal
