**NOTE:** this article is outdated. The "generic" and "windows-nsis" build systems have not been in use in years. They can still be found from depths of openvpn-build Git repository, but are not that useful. The only case where you might want to look at them is when you want to cross-compile OpenVPN or build NSIS packages of it using Linux or equivalent. # Project structure Look [here](/Pages/CodeRepositories) for details. # Building natively on *NIX If building from Git sources, first do a ``` $ autoreconf -vi ``` If building from a release tarball, you can skip the above step. To configure, build and install OpenVPN, use these commands: ``` $ ./configure <configure-options> $ make $ make install ``` In most cases, you'd use something like this: ``` $ ./configure ``` If you're using password authentication, you may be interested in support for password stored in (properly protected!) files: ``` $ ./configure --enable-password-save ``` Or, if you want to use smart cards and such, you should use ``` $ ./configure --enable-pkcs11 ``` # Cross-compiling on *NIX ("generic" subdir) Removed, only MSVC builds are currently supported. # Creating a NSIS installer ("windows-nsis" subdir) Removed, only MSI installer is currently supported. # Code-signing [SignTool](http://msdn.microsoft.com/en-us/library/windows/desktop/aa387764%28v=vs.85%29.aspx) is used to sign OpenVPN installer, libraries and executables.. Official OpenVPN releases will be signed with OpenVPN Technologies, Inc. code signing keys. However, it's fairly easy to build a custom version of OpenVPN and sign it with your own code-signing keys. # Making the release builds of OpenVPN See [wiki:Openvpn2ReleaseProcess]. # External links **Official OpenVPN Git repositories** * https://github.com/OpenVPN/openvpn * https://github.com/OpenVPN/openvpn-build * https://github.com/OpenVPN/openvpn-vagrant * https://github.com/OpenVPN/tap-windows * https://github.com/OpenVPN/easy-rsa
