# Build guide ## Pre-request according to the openconnect [build guide](https://www.infradead.org/openconnect/building.html), you should install the following packages as dependencies. ### For Ubuntu ```bash apt install libxml2 apt install zlib1g zlib1g-dev apt install openssl libssl-dev apt install liblz4-dev liblzma-dev apt install pkg-config ``` For building tools (if you don't want to use the prebuilt openconnect): ```bash apt install automake # for aclocal apt install libtool # for libtoolize apt install gettext # for msgfmt ``` ### For MacOS ```bash brew install libxml2 brew install zlib brew install openssl brew install pkg-config ``` For building tools (if you don't want to use the prebuilt openconnect): ```bash brew install automake # for aclocal brew install libtool # for libtool brew install gettext # for msgfmt ``` ### For Windows (MSYS2 MINGW64) Download MSYS2 Switch rust toolchain to windows-gnu ```bash rustup default stable-x86_64-pc-windows-gnu ``` You have to use MSYS2 MINGW64 shell to build the library for 64-bit Windows. ```bash pacman -S base-devel mingw-w64-x86_64-toolchain pacman -S automake pacman -S libtool pacman -S gettext pacman -S autotools pacman -S pkg-config pacman -S openssl openssl-devel mingw-w64-x86_64-openssl pacman -S libxml2 libxml2-devel mingw-w64-x86_64-libxml2 pacman -S libiconv libiconv-devel mingw-w64-x86_64-libiconv pacman -S zlib zlib-devel mingw-w64-x86_64-zlib pacman -S liblz4 liblz4-devel mingw-w64-x86_64-lz4 pacman -S liblzma liblzma-devel mingw-w64-x86_64-xz pacman -S icu icu-devel mingw-w64-x86_64-icu ``` ### Related to prebuilt openconnect By default, we use the prebuilt openconnect static lib, which is downloaded from [sourceforge](https://sourceforge.net/projects/openconnect-prebuilt/files/). If you want to build the openconnect static lib when building the crate, you can add environment variable to your .cargo/config file. ```toml [env] OPENCONNECT_USE_PREBUILT = "false" ``` A further investigation of manual build can be found in [MANUAL_BUILD.md](MANUAL_BUILD.md).