java (1496:9e14c63773be) java (1532:4b4d0c3ce94b)
1
2# Copyright (C) NGINX, Inc.
3
4
5shift
6
7NXT_JAVA_HOME=${JAVA_HOME-}
8NXT_JAR_REPO=https://repo1.maven.org/maven2/
9NXT_JAR_LOCAL_REPO=$HOME/.m2/repository/
10
11for nxt_option; do
12
13 case "$nxt_option" in
14 -*=*) value=`echo "$nxt_option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
15 *) value="" ;;
16 esac
17
18 case "$nxt_option" in
19
20 --module=*) NXT_JAVA_MODULE="$value" ;;
21 --home=*) NXT_JAVA_HOME="$value" ;;
22 --lib-path=*) NXT_JAVA_LIB_PATH="$value" ;;
23 --repo=*) NXT_JAR_REPO="$value" ;;
24 --local-repo=*) NXT_JAR_LOCAL_REPO="$value" ;;
25 --sha512=*) NXT_SHA512_TOOL="$value" ;;
26 --jars=*) NXT_JARS="$value" ;;
27
28 --help)
29 cat << END
30
31 --module=NAME set unit Java module name
32 --home=DIR set Java home directory
33 --lib-path=DIRECTORY set directory path to libjvm.so library
34 --repo=URL set Maven remote repository URL
35 default: "$NXT_JAR_REPO"
36 --local-repo=DIR set local repository directory
37 default: "$NXT_JAR_LOCAL_REPO"
38 --sha512=SHA512 set command for SHA512 check
39 --jars=DIR set jars install/search directory
40
41END
42 exit 0
43 ;;
44
45 *)
46 echo
47 echo $0: error: invalid Java option \"$nxt_option\"
48 echo
49 exit 1
50 ;;
51 esac
52
53done
54
55
56if [ ! -f $NXT_AUTOCONF_DATA ]; then
57 echo
58 echo Please run common $0 before configuring module \"$nxt_module\".
59 echo
60 exit 1
61fi
62
63. $NXT_AUTOCONF_DATA
64
65
66NXT_JARS=${NXT_JARS=$NXT_MODULES}
67NXT_JAVA_MODULE=${NXT_JAVA_MODULE=java}
68NXT_JAVA_LIB_PATH=${NXT_JAVA_LIB_PATH=}
69
70$echo "configuring Java module"
71$echo "configuring Java module ..." >> $NXT_AUTOCONF_ERR
72
73if [ -n "${NXT_JAVA_HOME}" ]; then
74 $echo "using java.home ${NXT_JAVA_HOME}"
75 $echo "using java.home ${NXT_JAVA_HOME}" >> $NXT_AUTOCONF_ERR
76
77 if [ ! -d "${NXT_JAVA_HOME}" ]; then
78 $echo
79 $echo $0: error: Java home directory not found.
80 $echo
81 exit 1
82 fi
83
84 NXT_JAVA="${NXT_JAVA_HOME}/bin/java"
85
86else
87 $echo -n "checking for java executable ..."
88 $echo "checking for java executable ..." >> $NXT_AUTOCONF_ERR
89
90 NXT_JAVA=`which java || :`
91 if [ -z "$NXT_JAVA" -o ! -x "$NXT_JAVA" ]; then
92 $echo " not found"
93 $echo
94 $echo $0: error: java executable not found.
95 $echo
96 exit 1
97 fi
98
99 $echo " found $NXT_JAVA"
100 $echo "found $NXT_JAVA" >> $NXT_AUTOCONF_ERR
101
102 "$NXT_JAVA" -version
103
104 $echo -n "checking java.home ..."
105 $echo "checking java.home ..." >> $NXT_AUTOCONF_ERR
106
107 NXT_JAVA_HOME=`$NXT_JAVA -XshowSettings 2>&1 | grep -F -e java.home | sed -e 's/^.*= //'`
108 if [ -z "$NXT_JAVA_HOME" ]; then
109 $echo " not found"
110 $echo
111 $echo $0: error: java.home not found.
112 $echo
113 exit 1
114 fi
115
116 $echo " $NXT_JAVA_HOME"
117 $echo "got java.home $NXT_JAVA_HOME" >> $NXT_AUTOCONF_ERR
118
119 if [ ! -x "${NXT_JAVA_HOME}/bin/javac" ]; then
120 NXT_JAVA_HOME_=${NXT_JAVA_HOME%/jre}
121 if [ -x "${NXT_JAVA_HOME_}/bin/javac" ]; then
122 $echo "adjust java.home $NXT_JAVA_HOME_"
123 $echo "adjust java.home $NXT_JAVA_HOME_" >> $NXT_AUTOCONF_ERR
124
125 NXT_JAVA_HOME="$NXT_JAVA_HOME_"
126 fi
127 fi
128fi
129
130NXT_JAVAC="${NXT_JAVA_HOME}/bin/javac"
131
132if [ ! -x "$NXT_JAVAC" ]; then
133 $echo
134 $echo $0: error: javac not found.
135 $echo
136 exit 1
137fi
138
139NXT_JAVA_INCLUDE="-I${NXT_JAVA_HOME}/include"
140
141case "$NXT_SYSTEM" in
142 Linux)
143 NXT_JAVA_INCLUDE="${NXT_JAVA_INCLUDE} -I${NXT_JAVA_HOME}/include/linux"
144 ;;
145 Darwin)
146 NXT_JAVA_INCLUDE="${NXT_JAVA_INCLUDE} -I${NXT_JAVA_HOME}/include/darwin"
147 ;;
148 FreeBSD)
149 NXT_JAVA_INCLUDE="${NXT_JAVA_INCLUDE} -I${NXT_JAVA_HOME}/include/freebsd"
150 ;;
151esac
152
153if [ -z "$NXT_JAVA_LIB_PATH" ]; then
154 $echo -n "checking library path ..."
155 $echo "checking library path ..." >> $NXT_AUTOCONF_ERR
156
157 if [ ! -x "$NXT_JAVA" ]; then
158 $echo " not found"
159 $echo
160 $echo $0: error: java executable not found.
161 $echo
162 exit 1
163 fi
164
165 NXT_JAVA_LIB_PATH=`$NXT_JAVA -XshowSettings 2>&1 | grep -F -e sun.boot.library.path | sed -e 's/^.*= //'`
166
167 if [ -z "$NXT_JAVA_LIB_PATH" ]; then
168 $echo " not found"
169 $echo
170 $echo $0: error: library path not found.
171 $echo
172 exit 1
173 fi
174
175 $echo " $NXT_JAVA_LIB_PATH"
176 $echo "got library path $NXT_JAVA_LIB_PATH" >> $NXT_AUTOCONF_ERR
177fi
178
179NXT_JAVA_LIB_SERVER_PATH="${NXT_JAVA_LIB_PATH}/server"
180
181NXT_JAVA_LDFLAGS="-L${NXT_JAVA_LIB_SERVER_PATH} -Wl,-rpath ${NXT_JAVA_LIB_SERVER_PATH} -ljvm"
182
183
184nxt_found=no
185
186nxt_feature="JNI"
187nxt_feature_name=""
188nxt_feature_run=no
189nxt_feature_incs="${NXT_JAVA_INCLUDE}"
190nxt_feature_libs="${NXT_JAVA_LDFLAGS}"
191nxt_feature_test="
192 #include <jni.h>
193
194 int main() {
195 JNI_CreateJavaVM(NULL, NULL, NULL);
196 return 0;
197 }"
198
199. auto/feature
200
201
202if [ $nxt_found = no ]; then
203 $echo
204 $echo $0: error: no JNI found.
205 $echo
206 exit 1;
207fi
208
209NXT_JAVA_VERSION=`$NXT_JAVAC -version 2>&1`
210NXT_JAVA_VERSION=${NXT_JAVA_VERSION#javac }
211NXT_JAVA_INCLUDE="$NXT_JAVA_INCLUDE -I$NXT_BUILD_DIR/$NXT_JAVA_MODULE -DNXT_JAVA_VERSION=$NXT_JAVA_VERSION"
212
213if grep ^$NXT_JAVA_MODULE: $NXT_MAKEFILE 2>&1 > /dev/null; then
214 $echo
215 $echo $0: error: duplicate \"$NXT_JAVA_MODULE\" module configured.
216 $echo
217 exit 1;
218fi
219
220. ./version
221
222NXT_UNIT_JAR=nginx-unit-jsc-${NXT_JAVA_MODULE}-$NXT_VERSION.jar
223NXT_WS_API_JAR=websocket-api-${NXT_JAVA_MODULE}-$NXT_VERSION.jar
224
225NXT_JAVA_BUILD_CP=$NXT_BUILD_DIR/$NXT_JAVA_MODULE
226NXT_JAVA_INSTALL_JARS=
227NXT_JAVA_UNINSTALL_JARS=
228
229NXT_JAVA_JARS=$NXT_BUILD_DIR/$NXT_JAVA_MODULE/nxt_jars.h
1
2# Copyright (C) NGINX, Inc.
3
4
5shift
6
7NXT_JAVA_HOME=${JAVA_HOME-}
8NXT_JAR_REPO=https://repo1.maven.org/maven2/
9NXT_JAR_LOCAL_REPO=$HOME/.m2/repository/
10
11for nxt_option; do
12
13 case "$nxt_option" in
14 -*=*) value=`echo "$nxt_option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;;
15 *) value="" ;;
16 esac
17
18 case "$nxt_option" in
19
20 --module=*) NXT_JAVA_MODULE="$value" ;;
21 --home=*) NXT_JAVA_HOME="$value" ;;
22 --lib-path=*) NXT_JAVA_LIB_PATH="$value" ;;
23 --repo=*) NXT_JAR_REPO="$value" ;;
24 --local-repo=*) NXT_JAR_LOCAL_REPO="$value" ;;
25 --sha512=*) NXT_SHA512_TOOL="$value" ;;
26 --jars=*) NXT_JARS="$value" ;;
27
28 --help)
29 cat << END
30
31 --module=NAME set unit Java module name
32 --home=DIR set Java home directory
33 --lib-path=DIRECTORY set directory path to libjvm.so library
34 --repo=URL set Maven remote repository URL
35 default: "$NXT_JAR_REPO"
36 --local-repo=DIR set local repository directory
37 default: "$NXT_JAR_LOCAL_REPO"
38 --sha512=SHA512 set command for SHA512 check
39 --jars=DIR set jars install/search directory
40
41END
42 exit 0
43 ;;
44
45 *)
46 echo
47 echo $0: error: invalid Java option \"$nxt_option\"
48 echo
49 exit 1
50 ;;
51 esac
52
53done
54
55
56if [ ! -f $NXT_AUTOCONF_DATA ]; then
57 echo
58 echo Please run common $0 before configuring module \"$nxt_module\".
59 echo
60 exit 1
61fi
62
63. $NXT_AUTOCONF_DATA
64
65
66NXT_JARS=${NXT_JARS=$NXT_MODULES}
67NXT_JAVA_MODULE=${NXT_JAVA_MODULE=java}
68NXT_JAVA_LIB_PATH=${NXT_JAVA_LIB_PATH=}
69
70$echo "configuring Java module"
71$echo "configuring Java module ..." >> $NXT_AUTOCONF_ERR
72
73if [ -n "${NXT_JAVA_HOME}" ]; then
74 $echo "using java.home ${NXT_JAVA_HOME}"
75 $echo "using java.home ${NXT_JAVA_HOME}" >> $NXT_AUTOCONF_ERR
76
77 if [ ! -d "${NXT_JAVA_HOME}" ]; then
78 $echo
79 $echo $0: error: Java home directory not found.
80 $echo
81 exit 1
82 fi
83
84 NXT_JAVA="${NXT_JAVA_HOME}/bin/java"
85
86else
87 $echo -n "checking for java executable ..."
88 $echo "checking for java executable ..." >> $NXT_AUTOCONF_ERR
89
90 NXT_JAVA=`which java || :`
91 if [ -z "$NXT_JAVA" -o ! -x "$NXT_JAVA" ]; then
92 $echo " not found"
93 $echo
94 $echo $0: error: java executable not found.
95 $echo
96 exit 1
97 fi
98
99 $echo " found $NXT_JAVA"
100 $echo "found $NXT_JAVA" >> $NXT_AUTOCONF_ERR
101
102 "$NXT_JAVA" -version
103
104 $echo -n "checking java.home ..."
105 $echo "checking java.home ..." >> $NXT_AUTOCONF_ERR
106
107 NXT_JAVA_HOME=`$NXT_JAVA -XshowSettings 2>&1 | grep -F -e java.home | sed -e 's/^.*= //'`
108 if [ -z "$NXT_JAVA_HOME" ]; then
109 $echo " not found"
110 $echo
111 $echo $0: error: java.home not found.
112 $echo
113 exit 1
114 fi
115
116 $echo " $NXT_JAVA_HOME"
117 $echo "got java.home $NXT_JAVA_HOME" >> $NXT_AUTOCONF_ERR
118
119 if [ ! -x "${NXT_JAVA_HOME}/bin/javac" ]; then
120 NXT_JAVA_HOME_=${NXT_JAVA_HOME%/jre}
121 if [ -x "${NXT_JAVA_HOME_}/bin/javac" ]; then
122 $echo "adjust java.home $NXT_JAVA_HOME_"
123 $echo "adjust java.home $NXT_JAVA_HOME_" >> $NXT_AUTOCONF_ERR
124
125 NXT_JAVA_HOME="$NXT_JAVA_HOME_"
126 fi
127 fi
128fi
129
130NXT_JAVAC="${NXT_JAVA_HOME}/bin/javac"
131
132if [ ! -x "$NXT_JAVAC" ]; then
133 $echo
134 $echo $0: error: javac not found.
135 $echo
136 exit 1
137fi
138
139NXT_JAVA_INCLUDE="-I${NXT_JAVA_HOME}/include"
140
141case "$NXT_SYSTEM" in
142 Linux)
143 NXT_JAVA_INCLUDE="${NXT_JAVA_INCLUDE} -I${NXT_JAVA_HOME}/include/linux"
144 ;;
145 Darwin)
146 NXT_JAVA_INCLUDE="${NXT_JAVA_INCLUDE} -I${NXT_JAVA_HOME}/include/darwin"
147 ;;
148 FreeBSD)
149 NXT_JAVA_INCLUDE="${NXT_JAVA_INCLUDE} -I${NXT_JAVA_HOME}/include/freebsd"
150 ;;
151esac
152
153if [ -z "$NXT_JAVA_LIB_PATH" ]; then
154 $echo -n "checking library path ..."
155 $echo "checking library path ..." >> $NXT_AUTOCONF_ERR
156
157 if [ ! -x "$NXT_JAVA" ]; then
158 $echo " not found"
159 $echo
160 $echo $0: error: java executable not found.
161 $echo
162 exit 1
163 fi
164
165 NXT_JAVA_LIB_PATH=`$NXT_JAVA -XshowSettings 2>&1 | grep -F -e sun.boot.library.path | sed -e 's/^.*= //'`
166
167 if [ -z "$NXT_JAVA_LIB_PATH" ]; then
168 $echo " not found"
169 $echo
170 $echo $0: error: library path not found.
171 $echo
172 exit 1
173 fi
174
175 $echo " $NXT_JAVA_LIB_PATH"
176 $echo "got library path $NXT_JAVA_LIB_PATH" >> $NXT_AUTOCONF_ERR
177fi
178
179NXT_JAVA_LIB_SERVER_PATH="${NXT_JAVA_LIB_PATH}/server"
180
181NXT_JAVA_LDFLAGS="-L${NXT_JAVA_LIB_SERVER_PATH} -Wl,-rpath ${NXT_JAVA_LIB_SERVER_PATH} -ljvm"
182
183
184nxt_found=no
185
186nxt_feature="JNI"
187nxt_feature_name=""
188nxt_feature_run=no
189nxt_feature_incs="${NXT_JAVA_INCLUDE}"
190nxt_feature_libs="${NXT_JAVA_LDFLAGS}"
191nxt_feature_test="
192 #include <jni.h>
193
194 int main() {
195 JNI_CreateJavaVM(NULL, NULL, NULL);
196 return 0;
197 }"
198
199. auto/feature
200
201
202if [ $nxt_found = no ]; then
203 $echo
204 $echo $0: error: no JNI found.
205 $echo
206 exit 1;
207fi
208
209NXT_JAVA_VERSION=`$NXT_JAVAC -version 2>&1`
210NXT_JAVA_VERSION=${NXT_JAVA_VERSION#javac }
211NXT_JAVA_INCLUDE="$NXT_JAVA_INCLUDE -I$NXT_BUILD_DIR/$NXT_JAVA_MODULE -DNXT_JAVA_VERSION=$NXT_JAVA_VERSION"
212
213if grep ^$NXT_JAVA_MODULE: $NXT_MAKEFILE 2>&1 > /dev/null; then
214 $echo
215 $echo $0: error: duplicate \"$NXT_JAVA_MODULE\" module configured.
216 $echo
217 exit 1;
218fi
219
220. ./version
221
222NXT_UNIT_JAR=nginx-unit-jsc-${NXT_JAVA_MODULE}-$NXT_VERSION.jar
223NXT_WS_API_JAR=websocket-api-${NXT_JAVA_MODULE}-$NXT_VERSION.jar
224
225NXT_JAVA_BUILD_CP=$NXT_BUILD_DIR/$NXT_JAVA_MODULE
226NXT_JAVA_INSTALL_JARS=
227NXT_JAVA_UNINSTALL_JARS=
228
229NXT_JAVA_JARS=$NXT_BUILD_DIR/$NXT_JAVA_MODULE/nxt_jars.h
230NXT_JAVA_MOUNTS_HEADER=$NXT_BUILD_DIR/$NXT_JAVA_MODULE/nxt_java_mounts.h
231mkdir -p $NXT_BUILD_DIR/$NXT_JAVA_MODULE
232
233cat << END > $NXT_JAVA_JARS
234#ifndef _NXT_JAVA_JARS_INCLUDED_
235#define _NXT_JAVA_JARS_INCLUDED_
236
237#define NXT_JARS "$NXT_JARS"
238
239static const char *nxt_java_system_jars[] = {
240END
241
242NXT_TOMCAT_VERSION=9.0.13
243
244NXT_JAR_VERSION=$NXT_TOMCAT_VERSION
245
246NXT_JAR_NAME=tomcat-servlet-api
247NXT_JAR_NAMESPACE=org/apache/tomcat/
248. auto/modules/java_get_jar
249
250NXT_JAR_NAME=tomcat-el-api
251. auto/modules/java_get_jar
252
253NXT_JAR_NAME=tomcat-jsp-api
254. auto/modules/java_get_jar
255
256NXT_JAR_NAME=tomcat-jasper
257. auto/modules/java_get_jar
258
259NXT_JAR_NAME=tomcat-jasper-el
260. auto/modules/java_get_jar
261
262NXT_JAR_NAME=tomcat-juli
263. auto/modules/java_get_jar
264
265NXT_JAR_NAME=tomcat-api
266. auto/modules/java_get_jar
267
268NXT_JAR_NAME=tomcat-util-scan
269. auto/modules/java_get_jar
270
271NXT_JAR_NAME=tomcat-util
272. auto/modules/java_get_jar
273
274NXT_JAR_NAME=ecj
275NXT_JAR_VERSION=3.13.102
276NXT_JAR_NAMESPACE=org/eclipse/jdt/
277. auto/modules/java_get_jar
278
279cat << END >> $NXT_JAVA_JARS
280 "$NXT_WS_API_JAR",
281 NULL
282};
283
284static const char *nxt_java_unit_jars[] = {
285 "$NXT_UNIT_JAR",
286END
287
288NXT_JAR_VERSION=9.4.12.v20180830
289NXT_JAR_NAMESPACE=org/eclipse/jetty/
290
291NXT_JAR_NAME=jetty-util
292. auto/modules/java_get_jar
293
294NXT_JAR_NAME=jetty-server
295. auto/modules/java_get_jar
296
297NXT_JAR_NAME=jetty-http
298. auto/modules/java_get_jar
299
300NXT_JAR_NAME=classgraph
301NXT_JAR_VERSION=4.4.11
302NXT_JAR_NAMESPACE=io/github/classgraph/
303. auto/modules/java_get_jar
304
305cat << END >> $NXT_JAVA_JARS
306 NULL
307};
308
309#endif /* _NXT_JAVA_JARS_INCLUDED_ */
310END
311
312NXT_JAVA_LIBJVM="$NXT_JAVA_LIB_SERVER_PATH/libjvm.so"
313
314if [ "$NXT_SYSTEM" = "Darwin" ]; then
315NXT_JAVA_LIBC_DIR="/usr/lib"
316else
317NXT_JAVA_LIBC_DIR=`ldd "$NXT_JAVA_LIBJVM" | grep libc.so | cut -d' ' -f3`
318NXT_JAVA_LIBC_DIR=`dirname $NXT_JAVA_LIBC_DIR`
319fi
320
230mkdir -p $NXT_BUILD_DIR/$NXT_JAVA_MODULE
231
232cat << END > $NXT_JAVA_JARS
233#ifndef _NXT_JAVA_JARS_INCLUDED_
234#define _NXT_JAVA_JARS_INCLUDED_
235
236#define NXT_JARS "$NXT_JARS"
237
238static const char *nxt_java_system_jars[] = {
239END
240
241NXT_TOMCAT_VERSION=9.0.13
242
243NXT_JAR_VERSION=$NXT_TOMCAT_VERSION
244
245NXT_JAR_NAME=tomcat-servlet-api
246NXT_JAR_NAMESPACE=org/apache/tomcat/
247. auto/modules/java_get_jar
248
249NXT_JAR_NAME=tomcat-el-api
250. auto/modules/java_get_jar
251
252NXT_JAR_NAME=tomcat-jsp-api
253. auto/modules/java_get_jar
254
255NXT_JAR_NAME=tomcat-jasper
256. auto/modules/java_get_jar
257
258NXT_JAR_NAME=tomcat-jasper-el
259. auto/modules/java_get_jar
260
261NXT_JAR_NAME=tomcat-juli
262. auto/modules/java_get_jar
263
264NXT_JAR_NAME=tomcat-api
265. auto/modules/java_get_jar
266
267NXT_JAR_NAME=tomcat-util-scan
268. auto/modules/java_get_jar
269
270NXT_JAR_NAME=tomcat-util
271. auto/modules/java_get_jar
272
273NXT_JAR_NAME=ecj
274NXT_JAR_VERSION=3.13.102
275NXT_JAR_NAMESPACE=org/eclipse/jdt/
276. auto/modules/java_get_jar
277
278cat << END >> $NXT_JAVA_JARS
279 "$NXT_WS_API_JAR",
280 NULL
281};
282
283static const char *nxt_java_unit_jars[] = {
284 "$NXT_UNIT_JAR",
285END
286
287NXT_JAR_VERSION=9.4.12.v20180830
288NXT_JAR_NAMESPACE=org/eclipse/jetty/
289
290NXT_JAR_NAME=jetty-util
291. auto/modules/java_get_jar
292
293NXT_JAR_NAME=jetty-server
294. auto/modules/java_get_jar
295
296NXT_JAR_NAME=jetty-http
297. auto/modules/java_get_jar
298
299NXT_JAR_NAME=classgraph
300NXT_JAR_VERSION=4.4.11
301NXT_JAR_NAMESPACE=io/github/classgraph/
302. auto/modules/java_get_jar
303
304cat << END >> $NXT_JAVA_JARS
305 NULL
306};
307
308#endif /* _NXT_JAVA_JARS_INCLUDED_ */
309END
310
311NXT_JAVA_LIBJVM="$NXT_JAVA_LIB_SERVER_PATH/libjvm.so"
312
313if [ "$NXT_SYSTEM" = "Darwin" ]; then
314NXT_JAVA_LIBC_DIR="/usr/lib"
315else
316NXT_JAVA_LIBC_DIR=`ldd "$NXT_JAVA_LIBJVM" | grep libc.so | cut -d' ' -f3`
317NXT_JAVA_LIBC_DIR=`dirname $NXT_JAVA_LIBC_DIR`
318fi
319
321cat << END > $NXT_JAVA_MOUNTS_HEADER
320
321NXT_JAVA_MOUNTS_HEADER=nxt_${NXT_JAVA_MODULE}_mounts.h
322
323cat << END > $NXT_BUILD_DIR/$NXT_JAVA_MOUNTS_HEADER
322#ifndef _NXT_JAVA_MOUNTS_H_INCLUDED_
323#define _NXT_JAVA_MOUNTS_H_INCLUDED_
324
325
326static const nxt_fs_mount_t nxt_java_mounts[] = {
327 {(u_char *) "proc", (u_char *) "/proc", (u_char *) "proc", 0, NULL},
328 {(u_char *) "$NXT_JAVA_LIBC_DIR", (u_char *) "$NXT_JAVA_LIBC_DIR",
329 (u_char *) "bind", NXT_MS_BIND | NXT_MS_REC, NULL},
330 {(u_char *) "$NXT_JAVA_HOME", (u_char *) "$NXT_JAVA_HOME",
331 (u_char *) "bind", NXT_MS_BIND | NXT_MS_REC, NULL},
332};
333
334
335#endif /* _NXT_JAVA_MOUNTS_H_INCLUDED_ */
336END
337
338$echo " + Java module: ${NXT_JAVA_MODULE}.unit.so"
339
340. auto/cc/deps
341
342$echo >> $NXT_MAKEFILE
343
344NXT_JAVA_MODULE_SRCS=" \
345 src/nxt_java.c \
346 src/java/nxt_jni.c \
347 src/java/nxt_jni_Context.c \
348 src/java/nxt_jni_HeaderNamesEnumeration.c \
349 src/java/nxt_jni_HeadersEnumeration.c \
350 src/java/nxt_jni_InputStream.c \
351 src/java/nxt_jni_OutputStream.c \
352 src/java/nxt_jni_Request.c \
353 src/java/nxt_jni_Response.c \
354 src/java/nxt_jni_Thread.c \
355 src/java/nxt_jni_URLClassLoader.c \
356"
357
358# The Java module object files.
359
360nxt_objs=$NXT_BUILD_DIR/src/nxt_unit.o
361
362for nxt_src in $NXT_JAVA_MODULE_SRCS; do
363
364 nxt_obj=${nxt_src%.c}-$NXT_JAVA_MODULE.o
365 nxt_dep=${nxt_src%.c}-$NXT_JAVA_MODULE.dep
366 nxt_dep_flags=`nxt_gen_dep_flags`
367 nxt_dep_post=`nxt_gen_dep_post`
368 nxt_objs="$nxt_objs $NXT_BUILD_DIR/$nxt_obj"
369
370 cat << END >> $NXT_MAKEFILE
371
372$NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H
373 mkdir -p $NXT_BUILD_DIR/src/java
324#ifndef _NXT_JAVA_MOUNTS_H_INCLUDED_
325#define _NXT_JAVA_MOUNTS_H_INCLUDED_
326
327
328static const nxt_fs_mount_t nxt_java_mounts[] = {
329 {(u_char *) "proc", (u_char *) "/proc", (u_char *) "proc", 0, NULL},
330 {(u_char *) "$NXT_JAVA_LIBC_DIR", (u_char *) "$NXT_JAVA_LIBC_DIR",
331 (u_char *) "bind", NXT_MS_BIND | NXT_MS_REC, NULL},
332 {(u_char *) "$NXT_JAVA_HOME", (u_char *) "$NXT_JAVA_HOME",
333 (u_char *) "bind", NXT_MS_BIND | NXT_MS_REC, NULL},
334};
335
336
337#endif /* _NXT_JAVA_MOUNTS_H_INCLUDED_ */
338END
339
340$echo " + Java module: ${NXT_JAVA_MODULE}.unit.so"
341
342. auto/cc/deps
343
344$echo >> $NXT_MAKEFILE
345
346NXT_JAVA_MODULE_SRCS=" \
347 src/nxt_java.c \
348 src/java/nxt_jni.c \
349 src/java/nxt_jni_Context.c \
350 src/java/nxt_jni_HeaderNamesEnumeration.c \
351 src/java/nxt_jni_HeadersEnumeration.c \
352 src/java/nxt_jni_InputStream.c \
353 src/java/nxt_jni_OutputStream.c \
354 src/java/nxt_jni_Request.c \
355 src/java/nxt_jni_Response.c \
356 src/java/nxt_jni_Thread.c \
357 src/java/nxt_jni_URLClassLoader.c \
358"
359
360# The Java module object files.
361
362nxt_objs=$NXT_BUILD_DIR/src/nxt_unit.o
363
364for nxt_src in $NXT_JAVA_MODULE_SRCS; do
365
366 nxt_obj=${nxt_src%.c}-$NXT_JAVA_MODULE.o
367 nxt_dep=${nxt_src%.c}-$NXT_JAVA_MODULE.dep
368 nxt_dep_flags=`nxt_gen_dep_flags`
369 nxt_dep_post=`nxt_gen_dep_post`
370 nxt_objs="$nxt_objs $NXT_BUILD_DIR/$nxt_obj"
371
372 cat << END >> $NXT_MAKEFILE
373
374$NXT_BUILD_DIR/$nxt_obj: $nxt_src $NXT_VERSION_H
375 mkdir -p $NXT_BUILD_DIR/src/java
374 \$(CC) -c \$(CFLAGS) \$(NXT_INCS) $NXT_JAVA_INCLUDE \\
376 \$(CC) -c \$(CFLAGS) -DNXT_JAVA_MOUNTS_H=\"$NXT_JAVA_MOUNTS_HEADER\" \\
377 \$(NXT_INCS) $NXT_JAVA_INCLUDE \\
375 $nxt_dep_flags \\
376 -o $NXT_BUILD_DIR/$nxt_obj $nxt_src
377 $nxt_dep_post
378
379-include $NXT_BUILD_DIR/$nxt_dep
380
381END
382
383done
384
385NXT_JAVA_SRCS=" \
386 src/java/nginx/unit/Context.java \
387 src/java/nginx/unit/DynamicDispatcherRequest.java \
388 src/java/nginx/unit/DynamicPathRequest.java \
389 src/java/nginx/unit/ForwardRequestWrapper.java \
390 src/java/nginx/unit/HeaderNamesEnumeration.java \
391 src/java/nginx/unit/HeadersEnumeration.java \
392 src/java/nginx/unit/IncludeRequestWrapper.java \
393 src/java/nginx/unit/IncludeResponseWrapper.java \
394 src/java/nginx/unit/InitParams.java \
395 src/java/nginx/unit/InputStream.java \
396 src/java/nginx/unit/JspPropertyGroup.java \
397 src/java/nginx/unit/OutputStream.java \
398 src/java/nginx/unit/Request.java \
399 src/java/nginx/unit/RequestAttrProxy.java \
400 src/java/nginx/unit/Response.java \
401 src/java/nginx/unit/Session.java \
402 src/java/nginx/unit/SessionAttrProxy.java \
403 src/java/nginx/unit/Taglib.java \
404 src/java/nginx/unit/UnitSessionCookieConfig.java \
405 src/java/nginx/unit/websocket/AsyncChannelGroupUtil.java \
406 src/java/nginx/unit/websocket/AsyncChannelWrapper.java \
407 src/java/nginx/unit/websocket/AsyncChannelWrapperNonSecure.java \
408 src/java/nginx/unit/websocket/AsyncChannelWrapperSecure.java \
409 src/java/nginx/unit/websocket/AuthenticationException.java \
410 src/java/nginx/unit/websocket/Authenticator.java \
411 src/java/nginx/unit/websocket/AuthenticatorFactory.java \
412 src/java/nginx/unit/websocket/BackgroundProcess.java \
413 src/java/nginx/unit/websocket/BackgroundProcessManager.java \
414 src/java/nginx/unit/websocket/BasicAuthenticator.java \
415 src/java/nginx/unit/websocket/Constants.java \
416 src/java/nginx/unit/websocket/DecoderEntry.java \
417 src/java/nginx/unit/websocket/DigestAuthenticator.java \
418 src/java/nginx/unit/websocket/FutureToSendHandler.java \
419 src/java/nginx/unit/websocket/MessageHandlerResult.java \
420 src/java/nginx/unit/websocket/MessageHandlerResultType.java \
421 src/java/nginx/unit/websocket/MessagePart.java \
422 src/java/nginx/unit/websocket/PerMessageDeflate.java \
423 src/java/nginx/unit/websocket/ReadBufferOverflowException.java \
424 src/java/nginx/unit/websocket/Transformation.java \
425 src/java/nginx/unit/websocket/TransformationFactory.java \
426 src/java/nginx/unit/websocket/TransformationResult.java \
427 src/java/nginx/unit/websocket/Util.java \
428 src/java/nginx/unit/websocket/WrappedMessageHandler.java \
429 src/java/nginx/unit/websocket/WsContainerProvider.java \
430 src/java/nginx/unit/websocket/WsExtension.java \
431 src/java/nginx/unit/websocket/WsExtensionParameter.java \
432 src/java/nginx/unit/websocket/WsFrameBase.java \
433 src/java/nginx/unit/websocket/WsFrameClient.java \
434 src/java/nginx/unit/websocket/WsHandshakeResponse.java \
435 src/java/nginx/unit/websocket/WsIOException.java \
436 src/java/nginx/unit/websocket/WsPongMessage.java \
437 src/java/nginx/unit/websocket/WsRemoteEndpointAsync.java \
438 src/java/nginx/unit/websocket/WsRemoteEndpointBase.java \
439 src/java/nginx/unit/websocket/WsRemoteEndpointBasic.java \
440 src/java/nginx/unit/websocket/WsRemoteEndpointImplBase.java \
441 src/java/nginx/unit/websocket/WsRemoteEndpointImplClient.java \
442 src/java/nginx/unit/websocket/WsSession.java \
443 src/java/nginx/unit/websocket/WsWebSocketContainer.java \
444 src/java/nginx/unit/websocket/pojo/Constants.java \
445 src/java/nginx/unit/websocket/pojo/PojoEndpointBase.java \
446 src/java/nginx/unit/websocket/pojo/PojoEndpointClient.java \
447 src/java/nginx/unit/websocket/pojo/PojoEndpointServer.java \
448 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerBase.java \
449 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerPartialBase.java \
450 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerPartialBinary.java \
451 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerPartialText.java \
452 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerWholeBase.java \
453 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerWholeBinary.java \
454 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerWholePong.java \
455 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerWholeText.java \
456 src/java/nginx/unit/websocket/pojo/PojoMethodMapping.java \
457 src/java/nginx/unit/websocket/pojo/PojoPathParam.java \
458 src/java/nginx/unit/websocket/pojo/package-info.java \
459 src/java/nginx/unit/websocket/server/Constants.java \
460 src/java/nginx/unit/websocket/server/DefaultServerEndpointConfigurator.java \
461 src/java/nginx/unit/websocket/server/UpgradeUtil.java \
462 src/java/nginx/unit/websocket/server/UriTemplate.java \
463 src/java/nginx/unit/websocket/server/WsContextListener.java \
464 src/java/nginx/unit/websocket/server/WsFilter.java \
465 src/java/nginx/unit/websocket/server/WsHandshakeRequest.java \
466 src/java/nginx/unit/websocket/server/WsHttpUpgradeHandler.java \
467 src/java/nginx/unit/websocket/server/WsMappingResult.java \
468 src/java/nginx/unit/websocket/server/WsPerSessionServerEndpointConfig.java \
469 src/java/nginx/unit/websocket/server/WsRemoteEndpointImplServer.java \
470 src/java/nginx/unit/websocket/server/WsSci.java \
471 src/java/nginx/unit/websocket/server/WsServerContainer.java \
472 src/java/nginx/unit/websocket/server/WsSessionListener.java \
473 src/java/nginx/unit/websocket/server/WsWriteTimeout.java \
474 src/java/nginx/unit/websocket/server/package-info.java \
475"
476
477NXT_JAVA_WS_API_SRCS=" \
478 src/java/javax/websocket/ClientEndpoint.java \
479 src/java/javax/websocket/ClientEndpointConfig.java \
480 src/java/javax/websocket/CloseReason.java \
481 src/java/javax/websocket/ContainerProvider.java \
482 src/java/javax/websocket/DecodeException.java \
483 src/java/javax/websocket/Decoder.java \
484 src/java/javax/websocket/DefaultClientEndpointConfig.java \
485 src/java/javax/websocket/DeploymentException.java \
486 src/java/javax/websocket/EncodeException.java \
487 src/java/javax/websocket/Encoder.java \
488 src/java/javax/websocket/Endpoint.java \
489 src/java/javax/websocket/EndpointConfig.java \
490 src/java/javax/websocket/Extension.java \
491 src/java/javax/websocket/HandshakeResponse.java \
492 src/java/javax/websocket/MessageHandler.java \
493 src/java/javax/websocket/OnClose.java \
494 src/java/javax/websocket/OnError.java \
495 src/java/javax/websocket/OnMessage.java \
496 src/java/javax/websocket/OnOpen.java \
497 src/java/javax/websocket/PongMessage.java \
498 src/java/javax/websocket/RemoteEndpoint.java \
499 src/java/javax/websocket/SendHandler.java \
500 src/java/javax/websocket/SendResult.java \
501 src/java/javax/websocket/Session.java \
502 src/java/javax/websocket/SessionException.java \
503 src/java/javax/websocket/WebSocketContainer.java \
504 src/java/javax/websocket/server/DefaultServerEndpointConfig.java \
505 src/java/javax/websocket/server/HandshakeRequest.java \
506 src/java/javax/websocket/server/PathParam.java \
507 src/java/javax/websocket/server/ServerApplicationConfig.java \
508 src/java/javax/websocket/server/ServerContainer.java \
509 src/java/javax/websocket/server/ServerEndpoint.java \
510 src/java/javax/websocket/server/ServerEndpointConfig.java \
511"
512
513cat << END >> $NXT_MAKEFILE
514
515.PHONY: ${NXT_JAVA_MODULE}
516.PHONY: ${NXT_JAVA_MODULE}-install
517.PHONY: ${NXT_JAVA_MODULE}-uninstall
518
519all: ${NXT_JAVA_MODULE}
520
521${NXT_JAVA_MODULE}: $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \
522 $NXT_BUILD_DIR/$NXT_UNIT_JAR \
523 $NXT_BUILD_DIR/$NXT_WS_API_JAR
524
525$NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so: $nxt_objs
526 \$(NXT_MODULE_LINK) -o $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\
527 $nxt_objs $NXT_JAVA_LDFLAGS $NXT_LD_OPT
528
529
530install: ${NXT_JAVA_MODULE}-install
531
532${NXT_JAVA_MODULE}-install: $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\
533 $NXT_BUILD_DIR/$NXT_UNIT_JAR \\
534 $NXT_BUILD_DIR/$NXT_WS_API_JAR \\
535 java-shared-install
536 install -d \$(DESTDIR)$NXT_MODULES
537 install -p $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\
538 \$(DESTDIR)$NXT_MODULES/
539 install -d \$(DESTDIR)$NXT_JARS
540 install -p -m 0644 $NXT_BUILD_DIR/$NXT_UNIT_JAR \$(DESTDIR)$NXT_JARS/
541 install -p -m 0644 $NXT_BUILD_DIR/$NXT_WS_API_JAR \$(DESTDIR)$NXT_JARS/
542
543
544uninstall: ${NXT_JAVA_MODULE}-uninstall
545
546${NXT_JAVA_MODULE}-uninstall: java-shared-uninstall
547 rm -f \$(DESTDIR)$NXT_MODULES/${NXT_JAVA_MODULE}.unit.so
548 @rmdir -p \$(DESTDIR)$NXT_MODULES 2>/dev/null || true
549 rm -f \$(DESTDIR)$NXT_JARS/$NXT_UNIT_JAR
550 rm -f \$(DESTDIR)$NXT_JARS/$NXT_WS_API_JAR
551 @rmdir -p \$(DESTDIR)$NXT_JARS 2>/dev/null || true
552
553END
554
555if ! grep ^$NXT_BUILD_DIR/$NXT_UNIT_JAR: $NXT_MAKEFILE 2>&1 > /dev/null; then
556
557 cat << END >> $NXT_MAKEFILE
558
559NXT_JAVA_SRCS = $NXT_JAVA_SRCS
560
561$NXT_BUILD_DIR/$NXT_JAVA_MODULE/.nginx.unit.classes: \$(NXT_JAVA_SRCS) \\
562 $NXT_BUILD_DIR/$NXT_WS_API_JAR
563 rm -rf $NXT_BUILD_DIR/$NXT_JAVA_MODULE/nginx/unit
564 $NXT_JAVAC -d $NXT_BUILD_DIR/$NXT_JAVA_MODULE \\
565 -cp $NXT_JAVA_BUILD_CP:$NXT_BUILD_DIR/$NXT_WS_API_JAR \\
566 \$(NXT_JAVA_SRCS)
567 touch \$@
568
569$NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/LICENSE: LICENSE
570 mkdir -p $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF
571 cp -p LICENSE \$@
572
573$NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/NOTICE: NOTICE
574 mkdir -p $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF
575 cp -p NOTICE \$@
576
577$NXT_BUILD_DIR/$NXT_UNIT_JAR: \\
578 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/.nginx.unit.classes \\
579 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/LICENSE \\
580 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/NOTICE
581 $NXT_JAVA_HOME/bin/jar c -C $NXT_BUILD_DIR/$NXT_JAVA_MODULE META-INF \\
582 -C $NXT_BUILD_DIR/$NXT_JAVA_MODULE nginx/unit > \$@
583
584NXT_JAVA_WS_API_SRCS = $NXT_JAVA_WS_API_SRCS
585
586$NXT_BUILD_DIR/$NXT_JAVA_MODULE/.javax.websocket.classes: \$(NXT_JAVA_WS_API_SRCS)
587 rm -rf $NXT_BUILD_DIR/$NXT_JAVA_MODULE/javax/websocket
588 $NXT_JAVAC -d $NXT_BUILD_DIR/$NXT_JAVA_MODULE -cp $NXT_JAVA_BUILD_CP \\
589 \$(NXT_JAVA_WS_API_SRCS)
590 touch \$@
591
592$NXT_BUILD_DIR/$NXT_WS_API_JAR: \\
593 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/.javax.websocket.classes \\
594 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/LICENSE \\
595 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/NOTICE
596 $NXT_JAVA_HOME/bin/jar c -C $NXT_BUILD_DIR/$NXT_JAVA_MODULE META-INF \\
597 -C $NXT_BUILD_DIR/$NXT_JAVA_MODULE javax/websocket > \$@
598
599END
600
601NXT_PROPS="\
602 nginx/unit/websocket/LocalStrings.properties \
603 nginx/unit/websocket/pojo/LocalStrings.properties \
604 nginx/unit/websocket/server/LocalStrings.properties \
605"
606
607for nxt_prop in $NXT_PROPS ; do
608
609 cat << END >> $NXT_MAKEFILE
610$NXT_BUILD_DIR/$NXT_JAVA_MODULE/$nxt_prop: src/java/$nxt_prop \\
611 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/.nginx.unit.classes
612 cp src/java/$nxt_prop \$@
613
614$NXT_BUILD_DIR/$NXT_UNIT_JAR: $NXT_BUILD_DIR/$NXT_JAVA_MODULE/$nxt_prop
615
616END
617
618done
619
620fi
621
622if ! grep ^java-shared-install: $NXT_MAKEFILE 2>&1 > /dev/null; then
623
624 cat << END >> $NXT_MAKEFILE
625
626.PHONY: java-shared-install
627.PHONY: java-shared-uninstall
628
629java-shared-install: $NXT_JAVA_INSTALL_JARS
630 install -d \$(DESTDIR)$NXT_JARS
631 install -p -m 0644 $NXT_JAVA_INSTALL_JARS \$(DESTDIR)$NXT_JARS/
632
633java-shared-uninstall:
634 rm -f $NXT_JAVA_UNINSTALL_JARS
635 @rmdir -p \$(DESTDIR)$NXT_JARS 2>/dev/null || true
636
637END
638
639fi
378 $nxt_dep_flags \\
379 -o $NXT_BUILD_DIR/$nxt_obj $nxt_src
380 $nxt_dep_post
381
382-include $NXT_BUILD_DIR/$nxt_dep
383
384END
385
386done
387
388NXT_JAVA_SRCS=" \
389 src/java/nginx/unit/Context.java \
390 src/java/nginx/unit/DynamicDispatcherRequest.java \
391 src/java/nginx/unit/DynamicPathRequest.java \
392 src/java/nginx/unit/ForwardRequestWrapper.java \
393 src/java/nginx/unit/HeaderNamesEnumeration.java \
394 src/java/nginx/unit/HeadersEnumeration.java \
395 src/java/nginx/unit/IncludeRequestWrapper.java \
396 src/java/nginx/unit/IncludeResponseWrapper.java \
397 src/java/nginx/unit/InitParams.java \
398 src/java/nginx/unit/InputStream.java \
399 src/java/nginx/unit/JspPropertyGroup.java \
400 src/java/nginx/unit/OutputStream.java \
401 src/java/nginx/unit/Request.java \
402 src/java/nginx/unit/RequestAttrProxy.java \
403 src/java/nginx/unit/Response.java \
404 src/java/nginx/unit/Session.java \
405 src/java/nginx/unit/SessionAttrProxy.java \
406 src/java/nginx/unit/Taglib.java \
407 src/java/nginx/unit/UnitSessionCookieConfig.java \
408 src/java/nginx/unit/websocket/AsyncChannelGroupUtil.java \
409 src/java/nginx/unit/websocket/AsyncChannelWrapper.java \
410 src/java/nginx/unit/websocket/AsyncChannelWrapperNonSecure.java \
411 src/java/nginx/unit/websocket/AsyncChannelWrapperSecure.java \
412 src/java/nginx/unit/websocket/AuthenticationException.java \
413 src/java/nginx/unit/websocket/Authenticator.java \
414 src/java/nginx/unit/websocket/AuthenticatorFactory.java \
415 src/java/nginx/unit/websocket/BackgroundProcess.java \
416 src/java/nginx/unit/websocket/BackgroundProcessManager.java \
417 src/java/nginx/unit/websocket/BasicAuthenticator.java \
418 src/java/nginx/unit/websocket/Constants.java \
419 src/java/nginx/unit/websocket/DecoderEntry.java \
420 src/java/nginx/unit/websocket/DigestAuthenticator.java \
421 src/java/nginx/unit/websocket/FutureToSendHandler.java \
422 src/java/nginx/unit/websocket/MessageHandlerResult.java \
423 src/java/nginx/unit/websocket/MessageHandlerResultType.java \
424 src/java/nginx/unit/websocket/MessagePart.java \
425 src/java/nginx/unit/websocket/PerMessageDeflate.java \
426 src/java/nginx/unit/websocket/ReadBufferOverflowException.java \
427 src/java/nginx/unit/websocket/Transformation.java \
428 src/java/nginx/unit/websocket/TransformationFactory.java \
429 src/java/nginx/unit/websocket/TransformationResult.java \
430 src/java/nginx/unit/websocket/Util.java \
431 src/java/nginx/unit/websocket/WrappedMessageHandler.java \
432 src/java/nginx/unit/websocket/WsContainerProvider.java \
433 src/java/nginx/unit/websocket/WsExtension.java \
434 src/java/nginx/unit/websocket/WsExtensionParameter.java \
435 src/java/nginx/unit/websocket/WsFrameBase.java \
436 src/java/nginx/unit/websocket/WsFrameClient.java \
437 src/java/nginx/unit/websocket/WsHandshakeResponse.java \
438 src/java/nginx/unit/websocket/WsIOException.java \
439 src/java/nginx/unit/websocket/WsPongMessage.java \
440 src/java/nginx/unit/websocket/WsRemoteEndpointAsync.java \
441 src/java/nginx/unit/websocket/WsRemoteEndpointBase.java \
442 src/java/nginx/unit/websocket/WsRemoteEndpointBasic.java \
443 src/java/nginx/unit/websocket/WsRemoteEndpointImplBase.java \
444 src/java/nginx/unit/websocket/WsRemoteEndpointImplClient.java \
445 src/java/nginx/unit/websocket/WsSession.java \
446 src/java/nginx/unit/websocket/WsWebSocketContainer.java \
447 src/java/nginx/unit/websocket/pojo/Constants.java \
448 src/java/nginx/unit/websocket/pojo/PojoEndpointBase.java \
449 src/java/nginx/unit/websocket/pojo/PojoEndpointClient.java \
450 src/java/nginx/unit/websocket/pojo/PojoEndpointServer.java \
451 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerBase.java \
452 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerPartialBase.java \
453 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerPartialBinary.java \
454 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerPartialText.java \
455 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerWholeBase.java \
456 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerWholeBinary.java \
457 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerWholePong.java \
458 src/java/nginx/unit/websocket/pojo/PojoMessageHandlerWholeText.java \
459 src/java/nginx/unit/websocket/pojo/PojoMethodMapping.java \
460 src/java/nginx/unit/websocket/pojo/PojoPathParam.java \
461 src/java/nginx/unit/websocket/pojo/package-info.java \
462 src/java/nginx/unit/websocket/server/Constants.java \
463 src/java/nginx/unit/websocket/server/DefaultServerEndpointConfigurator.java \
464 src/java/nginx/unit/websocket/server/UpgradeUtil.java \
465 src/java/nginx/unit/websocket/server/UriTemplate.java \
466 src/java/nginx/unit/websocket/server/WsContextListener.java \
467 src/java/nginx/unit/websocket/server/WsFilter.java \
468 src/java/nginx/unit/websocket/server/WsHandshakeRequest.java \
469 src/java/nginx/unit/websocket/server/WsHttpUpgradeHandler.java \
470 src/java/nginx/unit/websocket/server/WsMappingResult.java \
471 src/java/nginx/unit/websocket/server/WsPerSessionServerEndpointConfig.java \
472 src/java/nginx/unit/websocket/server/WsRemoteEndpointImplServer.java \
473 src/java/nginx/unit/websocket/server/WsSci.java \
474 src/java/nginx/unit/websocket/server/WsServerContainer.java \
475 src/java/nginx/unit/websocket/server/WsSessionListener.java \
476 src/java/nginx/unit/websocket/server/WsWriteTimeout.java \
477 src/java/nginx/unit/websocket/server/package-info.java \
478"
479
480NXT_JAVA_WS_API_SRCS=" \
481 src/java/javax/websocket/ClientEndpoint.java \
482 src/java/javax/websocket/ClientEndpointConfig.java \
483 src/java/javax/websocket/CloseReason.java \
484 src/java/javax/websocket/ContainerProvider.java \
485 src/java/javax/websocket/DecodeException.java \
486 src/java/javax/websocket/Decoder.java \
487 src/java/javax/websocket/DefaultClientEndpointConfig.java \
488 src/java/javax/websocket/DeploymentException.java \
489 src/java/javax/websocket/EncodeException.java \
490 src/java/javax/websocket/Encoder.java \
491 src/java/javax/websocket/Endpoint.java \
492 src/java/javax/websocket/EndpointConfig.java \
493 src/java/javax/websocket/Extension.java \
494 src/java/javax/websocket/HandshakeResponse.java \
495 src/java/javax/websocket/MessageHandler.java \
496 src/java/javax/websocket/OnClose.java \
497 src/java/javax/websocket/OnError.java \
498 src/java/javax/websocket/OnMessage.java \
499 src/java/javax/websocket/OnOpen.java \
500 src/java/javax/websocket/PongMessage.java \
501 src/java/javax/websocket/RemoteEndpoint.java \
502 src/java/javax/websocket/SendHandler.java \
503 src/java/javax/websocket/SendResult.java \
504 src/java/javax/websocket/Session.java \
505 src/java/javax/websocket/SessionException.java \
506 src/java/javax/websocket/WebSocketContainer.java \
507 src/java/javax/websocket/server/DefaultServerEndpointConfig.java \
508 src/java/javax/websocket/server/HandshakeRequest.java \
509 src/java/javax/websocket/server/PathParam.java \
510 src/java/javax/websocket/server/ServerApplicationConfig.java \
511 src/java/javax/websocket/server/ServerContainer.java \
512 src/java/javax/websocket/server/ServerEndpoint.java \
513 src/java/javax/websocket/server/ServerEndpointConfig.java \
514"
515
516cat << END >> $NXT_MAKEFILE
517
518.PHONY: ${NXT_JAVA_MODULE}
519.PHONY: ${NXT_JAVA_MODULE}-install
520.PHONY: ${NXT_JAVA_MODULE}-uninstall
521
522all: ${NXT_JAVA_MODULE}
523
524${NXT_JAVA_MODULE}: $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \
525 $NXT_BUILD_DIR/$NXT_UNIT_JAR \
526 $NXT_BUILD_DIR/$NXT_WS_API_JAR
527
528$NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so: $nxt_objs
529 \$(NXT_MODULE_LINK) -o $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\
530 $nxt_objs $NXT_JAVA_LDFLAGS $NXT_LD_OPT
531
532
533install: ${NXT_JAVA_MODULE}-install
534
535${NXT_JAVA_MODULE}-install: $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\
536 $NXT_BUILD_DIR/$NXT_UNIT_JAR \\
537 $NXT_BUILD_DIR/$NXT_WS_API_JAR \\
538 java-shared-install
539 install -d \$(DESTDIR)$NXT_MODULES
540 install -p $NXT_BUILD_DIR/${NXT_JAVA_MODULE}.unit.so \\
541 \$(DESTDIR)$NXT_MODULES/
542 install -d \$(DESTDIR)$NXT_JARS
543 install -p -m 0644 $NXT_BUILD_DIR/$NXT_UNIT_JAR \$(DESTDIR)$NXT_JARS/
544 install -p -m 0644 $NXT_BUILD_DIR/$NXT_WS_API_JAR \$(DESTDIR)$NXT_JARS/
545
546
547uninstall: ${NXT_JAVA_MODULE}-uninstall
548
549${NXT_JAVA_MODULE}-uninstall: java-shared-uninstall
550 rm -f \$(DESTDIR)$NXT_MODULES/${NXT_JAVA_MODULE}.unit.so
551 @rmdir -p \$(DESTDIR)$NXT_MODULES 2>/dev/null || true
552 rm -f \$(DESTDIR)$NXT_JARS/$NXT_UNIT_JAR
553 rm -f \$(DESTDIR)$NXT_JARS/$NXT_WS_API_JAR
554 @rmdir -p \$(DESTDIR)$NXT_JARS 2>/dev/null || true
555
556END
557
558if ! grep ^$NXT_BUILD_DIR/$NXT_UNIT_JAR: $NXT_MAKEFILE 2>&1 > /dev/null; then
559
560 cat << END >> $NXT_MAKEFILE
561
562NXT_JAVA_SRCS = $NXT_JAVA_SRCS
563
564$NXT_BUILD_DIR/$NXT_JAVA_MODULE/.nginx.unit.classes: \$(NXT_JAVA_SRCS) \\
565 $NXT_BUILD_DIR/$NXT_WS_API_JAR
566 rm -rf $NXT_BUILD_DIR/$NXT_JAVA_MODULE/nginx/unit
567 $NXT_JAVAC -d $NXT_BUILD_DIR/$NXT_JAVA_MODULE \\
568 -cp $NXT_JAVA_BUILD_CP:$NXT_BUILD_DIR/$NXT_WS_API_JAR \\
569 \$(NXT_JAVA_SRCS)
570 touch \$@
571
572$NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/LICENSE: LICENSE
573 mkdir -p $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF
574 cp -p LICENSE \$@
575
576$NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/NOTICE: NOTICE
577 mkdir -p $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF
578 cp -p NOTICE \$@
579
580$NXT_BUILD_DIR/$NXT_UNIT_JAR: \\
581 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/.nginx.unit.classes \\
582 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/LICENSE \\
583 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/NOTICE
584 $NXT_JAVA_HOME/bin/jar c -C $NXT_BUILD_DIR/$NXT_JAVA_MODULE META-INF \\
585 -C $NXT_BUILD_DIR/$NXT_JAVA_MODULE nginx/unit > \$@
586
587NXT_JAVA_WS_API_SRCS = $NXT_JAVA_WS_API_SRCS
588
589$NXT_BUILD_DIR/$NXT_JAVA_MODULE/.javax.websocket.classes: \$(NXT_JAVA_WS_API_SRCS)
590 rm -rf $NXT_BUILD_DIR/$NXT_JAVA_MODULE/javax/websocket
591 $NXT_JAVAC -d $NXT_BUILD_DIR/$NXT_JAVA_MODULE -cp $NXT_JAVA_BUILD_CP \\
592 \$(NXT_JAVA_WS_API_SRCS)
593 touch \$@
594
595$NXT_BUILD_DIR/$NXT_WS_API_JAR: \\
596 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/.javax.websocket.classes \\
597 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/LICENSE \\
598 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/META-INF/NOTICE
599 $NXT_JAVA_HOME/bin/jar c -C $NXT_BUILD_DIR/$NXT_JAVA_MODULE META-INF \\
600 -C $NXT_BUILD_DIR/$NXT_JAVA_MODULE javax/websocket > \$@
601
602END
603
604NXT_PROPS="\
605 nginx/unit/websocket/LocalStrings.properties \
606 nginx/unit/websocket/pojo/LocalStrings.properties \
607 nginx/unit/websocket/server/LocalStrings.properties \
608"
609
610for nxt_prop in $NXT_PROPS ; do
611
612 cat << END >> $NXT_MAKEFILE
613$NXT_BUILD_DIR/$NXT_JAVA_MODULE/$nxt_prop: src/java/$nxt_prop \\
614 $NXT_BUILD_DIR/$NXT_JAVA_MODULE/.nginx.unit.classes
615 cp src/java/$nxt_prop \$@
616
617$NXT_BUILD_DIR/$NXT_UNIT_JAR: $NXT_BUILD_DIR/$NXT_JAVA_MODULE/$nxt_prop
618
619END
620
621done
622
623fi
624
625if ! grep ^java-shared-install: $NXT_MAKEFILE 2>&1 > /dev/null; then
626
627 cat << END >> $NXT_MAKEFILE
628
629.PHONY: java-shared-install
630.PHONY: java-shared-uninstall
631
632java-shared-install: $NXT_JAVA_INSTALL_JARS
633 install -d \$(DESTDIR)$NXT_JARS
634 install -p -m 0644 $NXT_JAVA_INSTALL_JARS \$(DESTDIR)$NXT_JARS/
635
636java-shared-uninstall:
637 rm -f $NXT_JAVA_UNINSTALL_JARS
638 @rmdir -p \$(DESTDIR)$NXT_JARS 2>/dev/null || true
639
640END
641
642fi