Rewrite README for new setup

This commit is contained in:
Steven Fackler 2015-02-13 23:16:49 -08:00
parent c424931c75
commit b999ff8db4
1 changed files with 49 additions and 33 deletions

View File

@ -1,46 +1,62 @@
rust-openssl [![Build Status](https://travis-ci.org/sfackler/rust-openssl.svg?branch=master)](https://travis-ci.org/sfackler/rust-openssl) # rust-openssl
============
[![Build Status](https://travis-ci.org/sfackler/rust-openssl.svg?branch=master)](https://travis-ci.org/sfackler/rust-openssl)
See the [rustdoc output](https://sfackler.github.io/rust-openssl/doc/openssl). See the [rustdoc output](https://sfackler.github.io/rust-openssl/doc/openssl).
Building ## Building
--------
rust-openssl needs to link against the OpenSSL devleopment libraries on your rust-openssl depends on both the OpenSSL runtime libraries and headers.
system. It's very easy to get them on Linux. For some reason, the OpenSSL
distribution for Windows is structured differently, so it's a little more
involved, but it *is* possible to build rust-openssl successfully on Windows.
###Linux ### Linux
1. Run `sudo apt-get install libssl-dev`. On Linux, you can install them via your package manager. The headers are
2. Run `cargo build`. sometimes provided in a separate package than the runtime libraries - look for
something like `openssl-devel` or `libssl-dev`.
###Android ```bash
1. Follow the steps [here](wiki.openssl.org/index.php/Android) to build OpenSSL # On Ubuntu
for android sudo apt-get install libssl-dev
2. Provide the path to the libssl and libcrypto binaries via `$OPENSSL_PATH` # On Arch Linux
3. Build the package with `cargo build` sudo pacman -S openssl
```
###Windows ### OSX
1. Grab the latest Win32 OpenSSL installer [here][1]. At the time of this OpenSSL 0.9.8 is preinstalled on OSX. Some features are only available when
writing, it's v1.0.1i. If you're using 64-bit Rust (coming to Windows soon), linking against OpenSSL 1.0.0 or greater; See below on how to point
then you should get the Win64 installer instead. rust-openssl to a separate installation.
2. Run the installer, making note of where it's installing OpenSSL. The option
to copy the libraries to the Windows system directory or `[OpenSSL
folder]/bin` is your choice. The latter is probably preferable, and the
default.
3. Navigate to `[OpenSSL folder]/lib/MinGW/`, and copy `libeay32.a` and
`ssleay32.a` (If 64-bit, then they will have `64` instead of `32`.) to your
Rust install's libs folder. The default should be:
* 32-bit: `C:\Program Files (x86)\Rust\bin\rustlib\i686-pc-mingw32\lib`
* 64-bit: `C:\Program Files (x86)\Rust\bin\rustlib\x86_64-pc-windows-gnu\lib`
4. Rename `libeay32.a` and `ssleay32.a` to `libcrypto.a` and `libssl.a`,
respectively.
5. Run `cargo build`.
###Testing ### Windows
Install OpenSSL from [here][1]. Cargo will not be able to find OpenSSL if it's
installed to the default location. You can either copy the `include/openssl`
directory, `libssl32.dll`, and `libeay32.dll` to locations that Cargo can find
or pass the location to Cargo via environment variables:
```bash
env OPENSSL_LIB_DIR=/c/OpenSSL-Win64 OPENSSL_INCLUDE_DIR=/c/OpenSSL-Win64/include cargo build
```
### Manual configuration
rust-openssl's build script will by default attempt to locate OpenSSL via
pkg-config. This will not work in some situations, for example, on systems that
don't have pkg-config, when cross compiling, or when using a copy of OpenSSL
other than the normal system install.
The build script can be configured via environment variables:
* `OPENSSL_LIB_DIR` - If specified, a directory that will be used to find
OpenSSL runtime libraries.
* `OPENSSL_INCLUDE_DIR` - If specified, a directory that will be used to find
OpenSSL headers.
* `OPENSSL_STATIC` - If specified, OpenSSL libraries will be statically rather
than dynamically linked.
If either `OPENSSL_LIB_DIR` or `OPENSSL_INCLUDE_DIR` are specified, then the
build script will skip the pkg-config step.
## Testing
Several tests expect a local test server to be running to bounce requests off Several tests expect a local test server to be running to bounce requests off
of. It's easy to do this. Open a separate terminal window and `cd` to the of. It's easy to do this. Open a separate terminal window and `cd` to the
rust-openssl directory. Then run one of the following commands: rust-openssl directory. Then run one of the following commands: