@@ -10,7 +10,7 @@ Unix コマンドライン、Android Studio ビルド、汎用 IDE ビルドを
1010
1111パッケージのルートフォルダの ` java.sh ` スクリプトは、ネイティブのJNI C ソース ファイルをコンパイルしてUnix/Linux または Mac OSX 用の共有ライブラリとするために使用されます。
1212
13- このスクリプトは、OSX (Darwin) から Linux までのOSを自動検出してインクルード パスと共有ライブラリ拡張タイプをセットアップしようとします。さらに、このスクリプトはJNI C ソース ファイルに対して gcc を直接呼び出して、` ./lib/libwolfssljni.so ` または` ./lib/libwolfssljni.jnilib ` を生成します。
13+ このスクリプトは、OSX (Darwin) から Linux までのOSを自動検出してインクルード パスと共有ライブラリ拡張タイプをセットアップしようとします。さらに、このスクリプトはJNI C ソース ファイルに対して gcc を直接呼び出して、` ./lib/libwolfssljni.so ` または` ./lib/libwolfssljni.dylib ` を生成します。
1414
1515
1616```
@@ -32,6 +32,26 @@ Compiling Native JNI library:
3232$ ./java.sh /path/to/wolfssl/install
3333```
3434
35+ 2つ目の引数を使用して、wolfSSLライブラリの名前を指定することもできます。
36+ これはwolfSSLのコンパイル時に` --with-libsuffix ` オプションを使用しているケースで有用です。
37+
38+ ```
39+ $ ./java.sh /usr/local wolfssljsse
40+ ```
41+
42+ このスクリプトは` JAVA_HOME ` の自動検出を試みます。
43+ 明示的に特定のJavaを指定したい場合は、スクリプト実行前に` JAVA_HOME ` を設定してください。
44+
45+ 事前に設定した` CFLAGS ` は、そのままスクリプトに渡されます。
46+
47+ ```
48+ $ CFLAGS="-DWOLFJNI_USE_IO_SELECT" ./java.sh
49+ ```
50+
51+ また、x86_64・Aarch64のLinux環境では自動的に` -fPIC ` が` CFLAGS ` へ追加されます。
52+
53+ ## antを使ってのビルド
54+
3555Javaソースファイルのビルドには` ant ` を使います:
3656
3757```
4060` ant ` に対して指定可能なビルドターゲット:
4161
4262
43- - ` ant ` ( アプリケーションに必要なjarのみビルド)
44- - ` ant test ` ( jarとテスト実行に必要なテストをビルド。要JUNITのセットアップ)
63+ - ` ant ` ( アプリケーションに必要なjarのみビルド)
64+ - ` ant test ` ( jarとテスト実行に必要なテストをビルド。要JUNITのセットアップ)
4565- ` ant examples ` (jarとサンプルプログラムをビルド)
4666- ` ant clean ` (Javaアーティファクトをクリーンアップ)
4767- ` ant cleanjni ` (ネイティブアーティファクトをクリーンアップ)
@@ -75,6 +95,73 @@ wolfJSSEにバンドルされているサンプルプログラムをビルドし
7595$ ant examples
7696```
7797
98+ ## Mavenを使ってのビルド
99+
100+ wolfJSSEはMavenを使用したビルドやパッケージングに対応しています。
101+
102+ まずは先に示した` java.sh ` を実行し、JNI共有ライブラリをコンパイルします。
103+ これにより、ネイティブライブラリが` ./lib ` に生成されます。
104+
105+ ```
106+ $ ./java.sh
107+ ```
108+
109+ 続いて、Javaソースファイルをコンパイルします。
110+ 成果物は` ./target/classes ` に出力されます。
111+
112+ ```
113+ $ mvn compile
114+ ```
115+
116+ JUnitテストをコンパイル・実行します。
117+
118+ ```
119+ $ mvn test
120+ ```
121+
122+ JARファイルにパッケージングします。
123+ (テストを実行すると、` target/wolfssl-jsse-X.X.X-SNAPSHOT.jar ` に作成されます。)
124+
125+ ```
126+ $ mvn package
127+ ```
128+
129+ Javadoc APIドキュメントを生成します。
130+ 成果物は` ./docs/apidocs ` に出力されます。
131+
132+ ```
133+ $ mvn javadoc:javadoc
134+ ```
135+
136+ JARファイルをローカルのMavenリポジトリにインストールするには、次のようにします。
137+
138+ ```
139+ $ mvn install
140+ ```
141+
142+ このようにしてインストールしたJARファイルは、以下のようなディレクトリに保存されます。
143+
144+ ```
145+ ~/.m2/repository/com/wolfssl/wolfssl-jsse/X.X.X-SNAPSHOT/wolfssl-jsse-X.X.X-SNAPSHOT.jar
146+ ```
147+
148+ ネイティブライブラリ(` libwolfssljni.so ` or ` .dylib ` )は、ネイティブライブラリ検索パス(例:` /usr/local/lib ` )や` LD_LIBRARY_PATH ` (Linux) or ` DYLD_LIBRARY_PATH ` (macOS)で参照できるようにする必要があります。
149+
150+ wolfJSSEはMaven dependencyの1つとしてアプリケーションに取り込むことができます。
151+
152+ ``` xml
153+ <dependency >
154+ <groupId >com.wolfssl</groupId >
155+ <artifactId >wolfssl-jsse</artifactId >
156+ <version >1.16.0-SNAPSHOT</version >
157+ </dependency >
158+ ```
159+
160+ ## VisualStudioを使ってのビルド
161+
162+ wolfJSSEは、Windows上のVisual Studioを用いてビルドすることもできます。
163+ 具体的な手順は、` wolfssljni ` パッケージに含まれる` IDE/WIN/README.md ` をご参照ください。
164+
78165## Android Studio を使ってのビルド
79166
80167Android Studio プロジェクトが、ディレクトリ ` IDE/Android ` に用意してあります。これは、wolfssljni / wolfJSSE の Android Studio プロジェクト ファイルのサンプルプログラムです。このプロジェクトは参照用としてのみ使用してください。
@@ -188,12 +275,12 @@ adb push ./examples/certs/intermediate/* /sdcard/examples/certs/intermediate/
188275```
189276com.wolfssl
190277com.wolfssl.provider.jsse
191- com.wolfssl.wolfcrypt
278+ com.wolfssl.provider.jsse.adapter
192279```
193280コマンド ラインから java.sh を実行するか、IDE で ` java.sh ` を実行して、wolfSSL にリンクするネイティブ シム レイヤーを生成します。
194281
195282プロジェクトにネイティブ ライブラリ参照を追加します。 それはlibにあるはずです
196- libwolfssl.jnilib のディレクトリ (例: wolfssljni/lib/)。
283+ libwolfssljni.so または libwolfssljni.dylib のディレクトリ (例: wolfssljni/lib/)。
197284
198285テストケースをコンパイルするには、ディレクトリ` src/test ` からパッケージ` com.wolfssl.provider.jsse.test ` と` com.wolfssl.test ` を追加します。 プロジェクトには、テストを実行するための Junit も必要です。
199286
0 commit comments