
2 changed files with 61 additions and 58 deletions
@ -1,67 +1,66 @@ |
|||
# p≡p JNI Adapter |
|||
More complete developer instructions can be found here: [https://dev.pep.foundation/JNI%20Adapter/Tutorial](). |
|||
|
|||
## Prerequisites |
|||
Please find the complete build instructions here: |
|||
https://dev.pep.foundation/Common%20Adapter%20Documentation/Adapter_Build_Instructions |
|||
|
|||
### yml2 |
|||
To set up yml2 properly, consult the documentation of pEp Engine (linked below). yml2 is a build dependency of pEp Engine. |
|||
## Build Result |
|||
The binary package resulting from the build will be located under `./dist`. |
|||
It merely contains: |
|||
* pEp.jar - The java library |
|||
* libpEpJNI.dylib - The dynamically linkable native library |
|||
* libpEpJNI.a - The statically linkable native library |
|||
|
|||
### C and C++ compiler |
|||
Any gcc or clang distribution offered by your OS is fine. |
|||
## Build Configuration |
|||
|
|||
### pEp Engine |
|||
Instructions for obtaining the pEp Engine can be found on [https://pep.foundation/dev/repos/pEpEngine/file/](). |
|||
The build configuration file is called `local.conf`. |
|||
Use the file `local.conf.example` as a template. |
|||
|
|||
### libpEpAdapter |
|||
Instructions for obtaining libpEpAdapter can be found on [https://pep.foundation/dev/repos/libpEpAdapter/file/](). |
|||
```bash |
|||
cp local.conf.example local.conf |
|||
``` |
|||
|
|||
### Java 8 (or newer) JDK |
|||
Download Oracle Java from [https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html](). |
|||
Then, tweak it to your needs. |
|||
|
|||
OpenJDK can be installed from macports on macOS with one of the following commands: |
|||
## Make Targets |
|||
|
|||
~~~ |
|||
sudo port install openjdk8 |
|||
sudo port install openjdk11 |
|||
~~~ |
|||
The default make target is `compile`. |
|||
|
|||
## Building |
|||
### Build |
|||
* `make compile` |
|||
Builds the whole adapter under `./build`. |
|||
The complete distribution ready adapter will be in `./dist`. |
|||
|
|||
Build configuration will be the result of including these files in the following order: |
|||
* `Makefile.conf` - Defaults |
|||
* `local.conf` - optional cfg (overwrites existing values) |
|||
* `src/local.conf`- optional cfg for src dir (overwrites existing values) |
|||
### Test |
|||
* `make test` |
|||
Builds the complete test-suite under `./test`. |
|||
|
|||
An example `local.conf` looks like this: |
|||
### Clean |
|||
* `make clean` |
|||
Deletes all the derived objects of the adapter build in `./build` and `./dist`. |
|||
Also invokes `make clean` which cleans the whole test-suite. |
|||
Does not remove the generated API doc. |
|||
|
|||
~~~ |
|||
JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk8/Contents/Home |
|||
* `make clean-doc` |
|||
Removes all the generated API doc. |
|||
|
|||
YML2_PATH=$(HOME)/code/yml2 |
|||
* `make clean-all` |
|||
Equals `make clean` and `make clean-doc` |
|||
|
|||
ENGINE_INC_PATH=$(HOME)/code/engine/build/include |
|||
ENGINE_LIB_PATH=$(HOME)/code/engine/build/lib |
|||
### Generate API Documentation |
|||
In order to generate the API doc you need to have doxygen installed on your system. |
|||
|
|||
AD_INC_PATH=$(HOME)/code/libad/build/include |
|||
AD_LIB_PATH=$(HOME)/code/libad/build/lib |
|||
~~~ |
|||
* `make doc` |
|||
Generates Java and C++ API doc. |
|||
|
|||
The the foo_PATH variables will be turned into compiler directives (-I / -L), which can be directly set by just omitting "\_PATH" (e.g. ENGINE_INC). They will take priority. |
|||
* `make doc-cxx` |
|||
Generates the API doc for the C++ part of the adapter. |
|||
|
|||
Depending on what is already set in your environment, or can be found in your default include/library paths, setting any of these variables may be optional on your platform. |
|||
* `make doc-java` |
|||
Generates the API doc for the Java part of the adapter. |
|||
|
|||
Now, build the Adapter with |
|||
### Install |
|||
* `make install` |
|||
Installs the files under `./dist` under $PREFIX (local.conf) |
|||
|
|||
On Linux: |
|||
|
|||
~~~ |
|||
make src |
|||
~~~ |
|||
|
|||
On macOS: |
|||
|
|||
~~~ |
|||
make src |
|||
~~~ |
|||
|
|||
(The GNU Make distributed with macOS might be too old, in this case install GNU Make "gmake" from macPorts). |
|||
* `make uninstall` |
|||
Removes all the filenames under `./dist` from $PREFIX (local.conf) |
|||
|
Loading…
Reference in new issue