forked from pEp.foundation/pEpJNIAdapter
parent
3311571c65
commit
eca1b89027
@ -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