Cross compiling on linux is possible. Actually its the only way I've
build the gui. Its well documented when done as a part of the full
distribution build using openvpn-build (as Samuli pointed out), but
could be built alone as well. Here is a very basic description of what I do:
The only complication is you need openssl built for the target (windows)
-- I have this cross-compiled from source and installed in
$HOME/windows/ There are some tutorials out there on how to
cross-compile openssl.
Alternatively if change-password feature is not required, you don't need
openssl at all to build the gui (see below)
I work on Debian Jessie, have autoconf, automake etc and
mingw-w64-x86-64-dev and mingw-w64-i686-dev installed
Steps -- building for 64 bit windows
Starting from a clone of this gui repo from github, do
$ autoreconf -i -v
run configure as
$ OPENSSL_CRYPTO_CFLAGS="-I /home/selva/windows/include/
OPENSSL_CRYPTO_LIBS="-L/home/selva/windows/lib/ -lcrypto" ./configure
--prefix=/ --libdir=//lib --host=x86_64-w64-mingw32 --target=
--build=x86_64-pc-linux-gnu --program-prefix='' --sbindir=/bin
(replace, /home/selva/windows by the location of openssl include and libs)
If disable-change-password is ok, run configure as
$ ./configure --prefix=/ --libdir=//lib --host=x86_64-w64-mingw32
--target= --build=x86_64-pc-linux-gnu --program-prefix=''
--sbindir=/bin CFLAGS=-DDISABLE_CHANGE_PASSWORD OPENSSL_CRYPTO_LIBS="-L./"
$ make (optionally with -j n)
That will build openvpn-gui.exe
The exec can be easily installed manually but you can also make the
installer as
$ make installer (needs makensis in path)
I added these instructions + David's notes here:
<https://community.openvpn.net/openvpn/wiki/BuildingOpenVPN-GUI>
What we had there previously was fairly outdated and/or confusing.
--
Samuli Seppänen
Community Manager
OpenVPN Technologies, Inc
irc freenode net: mattock