[[TOC(inline, depth=1)]] = Introduction = You can use the [wiki:BuildingUsingGenericBuildsystem generic buildsystem] from [https://github.com/OpenVPN/openvpn-build openvpn-build subproject] to cross-compile OpenVPN using any toolchain to any target environment. The build host must have a *NIX-like environment, e.g. Linux, *BSD or Cygwin (on Windows). = Generic instructions = You need to install a bunch of tools before attempting a build: * [http://mingw-w64.sourceforge.net/ mingw-w64], version 2.0.x, [wiki:InstallingMingwW64 may need backported patches] (if building Windows binaries) * gcc-*-arm-linux-gnueabi (if building Arm binaries) * [http://git-scm.com/ Git] * [http://www.nongnu.org/man2html/ man2html] (for ''windows-nsis'' builds) * [http://waterlan.home.xs4all.nl/dos2unix.html dos2unix] (for ''windows-nsis'' builds) * [http://nsis.sourceforge.net/Main_Page NSIS]: if you need support for riducuously long PATHs, you need to [wiki::BuildingMakeNSIS build NSIS] yourself. * [http://osslsigncode.sourceforge.net/ osslsigncode] ([wiki:BuildingUsingGenericBuildsystem#Installingosslsigncode installation instructions]) = Build environment -specific instructions = == Setting up Ubuntu 12.04 == On Ubuntu 12.04 (64-bit) you the following commands should take care of everything except osslsigncode: {{{ $ apt-get update $ apt-get install git-core mingw-w64 gcc-4.6-arm-linux-gnueabi man2html dos2unix nsis unzip }}} == Ubuntu 12.10 == == Windows == If you're building using Cygwin on Windows, it's best to configure Git not to translate LF to CR/LF. For this reason it's probably best to use Cygwin's Git. Also take a look at Cygwin's README to see which packages are required.