| 1 | [[TOC(inline, depth=1)]] |
| 2 | |
| 3 | = Introduction = |
| 4 | |
| 5 | 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). |
| 6 | |
| 7 | = Generic instructions = |
| 8 | |
| 9 | You need to install a bunch of tools before attempting a build: |
| 10 | |
| 11 | * [http://mingw-w64.sourceforge.net/ mingw-w64], version 2.0.x, [wiki:InstallingMingwW64 may need backported patches] (if building Windows binaries) |
| 12 | * gcc-*-arm-linux-gnueabi (if building Arm binaries) |
| 13 | * [http://git-scm.com/ Git] |
| 14 | * [http://www.nongnu.org/man2html/ man2html] (for ''windows-nsis'' builds) |
| 15 | * [http://waterlan.home.xs4all.nl/dos2unix.html dos2unix] (for ''windows-nsis'' builds) |
| 16 | * [http://nsis.sourceforge.net/Main_Page NSIS]: if you need support for riducuously long PATHs, you need to [wiki::BuildingMakeNSIS build NSIS] yourself. |
| 17 | * [http://osslsigncode.sourceforge.net/ osslsigncode] ([wiki:BuildingUsingGenericBuildsystem#Installingosslsigncode installation instructions]) |
| 18 | |
| 19 | = Build environment -specific instructions = |
| 20 | |
| 21 | == Setting up Ubuntu 12.04 == |
| 22 | |
| 23 | On Ubuntu 12.04 (64-bit) you the following commands should take care of everything except osslsigncode: |
| 24 | |
| 25 | {{{ |
| 26 | $ apt-get update |
| 27 | $ apt-get install git-core mingw-w64 gcc-4.6-arm-linux-gnueabi man2html dos2unix nsis unzip |
| 28 | }}} |
| 29 | |
| 30 | == Ubuntu 12.10 == |
| 31 | |
| 32 | == Windows == |
| 33 | |
| 34 | 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. |