... | ... | @@ -22,7 +22,52 @@ Since the extension version 2.2.0.2 the build mechanism uses autotools to config |
|
|
|
|
|
## Compiling Using Autotools
|
|
|
|
|
|
This procedure applies to versions since 2.2.0.2.
|
|
|
This procedure applies to versions since 2.2.0.2. The description is incomplete. Only the most important aspects are described. Currently only x86 and x86_64 architectures are supported.
|
|
|
|
|
|
In order to generate the configuration script run the following script:
|
|
|
``` shell
|
|
|
./autogen.sh
|
|
|
```
|
|
|
|
|
|
Configuring and building the sources:
|
|
|
``` shell
|
|
|
./configure
|
|
|
make
|
|
|
```
|
|
|
This will build the js-ctypes and native messaging cores for the current architecture. Library dependencies will be taken from the system. Firefox extension package file (.xpi) is going to be created in the add-on subdirectory.
|
|
|
|
|
|
Building the extension with statically linked libraries:
|
|
|
``` shell
|
|
|
./configure --enable-static-linking
|
|
|
make
|
|
|
```
|
|
|
This will download OpenSSL, ldns and Unbound sources from an external git repository. The libraries are going to be compiled and statically linked into the binary extension corers. (Useful when creating a distributable package.)
|
|
|
|
|
|
Building fat extensions:
|
|
|
``` shell
|
|
|
./configure --enable-static-linking --with-force-abi=fat
|
|
|
```
|
|
|
This will compile both 32- and 64-bit versions of the extensions on non OS X systems. On non OS X systems the build of native messaging (Chrome) extension will be avoided. On OS X all the generated binaries will be fat (contains 32- and 64-bit version).
|
|
|
(We use Debian 7 to build Linux packages.)
|
|
|
|
|
|
Cross compiling using MinGW32:
|
|
|
``` shell
|
|
|
./scripts/build_with_mingw32.sh
|
|
|
```
|
|
|
This will prepare and generate a 32-bit package for Windows. Currently we use `i586-mingw32msvc`. Other versions of MinGW fail to build the binary cores.
|
|
|
|
|
|
Creating Chrome package:
|
|
|
``` shell
|
|
|
...
|
|
|
make
|
|
|
./scripts/install_chrome_add_payload.sh -C google-chrome
|
|
|
```
|
|
|
You need to have the package keys needed to signing the extension located in the parrent directory where the validator source tree is located.
|
|
|
|
|
|
**Building extensions for Safari is currently not supported.**
|
|
|
**Building of NPAPI based extensions is currently not supported.**
|
|
|
|
|
|
**TODO -- NSIS installers.**
|
|
|
|
|
|
## Compiling Using Cmake
|
|
|
|
... | ... | |