blob: fbfbd734c191236da21d0615e7f6e186359533ec [file] [log] [blame]
================================================================================
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================================================
Prerequisites
-------------
You need OpenSSL version 1.0.2 or higher and APR version 1.4.0 or higher.
Building from source package
-----------------------------
> configure --with-apr=apr_install_location --with-ssl=openssl_install_location
> make
Building from the svn tree
--------------------------
> sh buildconf --with-apr=apr_source_location.
> configure --with-apr=apr_install_location --with-ssl=openssl_install_location
> make
Testing the build
-----------------
The make should produce a .so file named libtcnative-1.so.
Build the jar containing the examples by
> cd ..
> ant jar
Run one of the example (the echo one):
> ant run-echo
Using it in Tomcat
------------------
1. In <Connector> use of conf/server.xml:
protocol="org.apache.coyote.http11.Http11AprProtocol"
2. In bin/setenv.sh add the following:
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=tclib_location"
In my machine I am using:
/home/jfclere/native/native/.libs for tclib_location
NOTES
-----
- configure --disable-openssl: Configure without ssl support.
- To use it in Tomcat you may have to add in bin/setenv.sh:
LD_LIBRARY_PATH=openssl_install_location/lib; export LD_LIBRARY_PATH
(use ldd ./.libs/libtcnative-1.so to check it).
- quick testing: openssl s_client -connect localhost:8443
- For MAC OS X you must manually add a link
cd ${tcnative installdir}
ln -d libtcnative-1.dylib libtcnative-1.jnilib
Building statically linked library on Unixes
--------------------------------------------
To statically link apr and openssl dependencies use the following
procedure.
You will need to build static version of openssl library.
> ./config --prefix=~/natives/openssl no-shared -fPIC
> make
> make install_sw
Note that for Solaris platform you should use -KPIC instead -fPIC
so that library is compiled with position independent code.
Apr by default builds both static and dynamic libraries.
> ./configure --prefix=~/natives/apr
> make
> make install
After that edit the ~/natives/apr/lib/libapr-1.la file
and comment or delete the following sections:
dlname='...' and library_names='...'
This is needed so that libtool picks the static version of the library.
Build Tomcat native by executing
> ./configure --with-apr=~/natives/apr --with-ssl=~/natives/openssl --prefix=~/natives/tomcat
> make
> make install
That's it. You have just build libtcnative-1.so with statically linked
apr and openssl.