<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
   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.
-->
<!-- Generated by Apache Maven Doxia at 2020-08-22 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>log4cxx - Building Apache log4cxx with autotools - Apache log4cxx</title>
		<link rel="stylesheet" href="../css/bootstrap.min.css" type="text/css" />
		<link rel="stylesheet" href="../css/site.css" type="text/css" />
		<script type="text/javascript" src="../js/jquery.min.js"></script>
		<script type="text/javascript" src="../js/bootstrap.min.js"></script>
		<script type="text/javascript" src="../js/prettify.min.js"></script>
		<script type="text/javascript" src="../js/site.js"></script>
		<meta name="Date-Revision-yyyymmdd" content="20200822" />
		<meta http-equiv="Content-Language" content="en" />

				</head>
	<body class="composite">
		<a href="https://logging.apache.org/">
			<img class="logo-left" src="../images/logos/ls-logo.jpg" alt="Apache logging services logo" />
		</a>
		<img class="logo-right" src="../images/logos/logo.png" alt="Apache log4j logo" />
		<div class="clear"></div>

		<div class="navbar">
			<div class="navbar-inner">
				<div class="container-fluid">
					<a class="brand" href="http://logging.apache.org/log4cxx">Apache log4cxx &#8482;</a>
						<ul class="nav">
						<li>


				<a href="https://wiki.apache.org/logging" class="external" target="_blank" title="Logging Wiki">Logging Wiki</a>
			</li>
					<li>


				<a href="https://www.apache.org/" class="external" target="_blank" title="Apache">Apache</a>
			</li>
					<li>


				<a href="https://logging.apache.org/" class="external" target="_blank" title="Logging Services">Logging Services</a>
			</li>
					<li>


				<a href="https://github.com/apache/logging-log4cxx" class="external" target="_blank" title="GitHub">GitHub</a>
			</li>
		</ul>

					<div class="pull-right">


						<span id="publishDate">Last Published: 2020-08-22</span>
							<span class="divider">|</span> <span id="projectVersion">Version: 0.11.0</span>
											</div>
				</div>
			</div>
		</div>

		<div class="container-fluid">
			<table class="layout-table">
				<tr>
					<td class="sidebar">
						<div class="well sidebar-nav">
										<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-home"></i>About</li>
																						<li class="none">
									<a href="../index.html" title="What is log4cxx?">What is log4cxx?</a>
					</li>
 																<li class="none">
									<a href="../project-info.html" title="Project Information">Project Information</a>
					</li>
 																<li class="none">
									<a href="../project-reports.html" title="Generated Reports">Generated Reports</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-book"></i>Usage</li>
																						<li class="none">
									<a href="../usage.html" title="How to use log4cxx?">How to use log4cxx?</a>
					</li>
 																<li class="none">
									<a href="../apidocs/index.html" title="API Documentation">API Documentation</a>
					</li>
 																<li class="none">
									<a href="../faq.html" title="FAQ">FAQ</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-cog"></i>Get</li>
																						<li class="none">
									<a href="../download.html" title="Download">Download</a>
					</li>
 																<li class="none">
									<a href="../changes-report.html" title="Changes">Changes</a>
					</li>
 																<li class="none">
									<a href="../license.html" title="License">License</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-pencil"></i>Community</li>
																						<li class="none">
									<a href="../mail-lists.html" title="Mailing Lists">Mailing Lists</a>
					</li>
 																<li class="none">
									<a href="../community/issue-tracking.html" title="Issue Tracking">Issue Tracking</a>
					</li>
 																<li class="none">


				<a href="https://wiki.apache.org/logging-log4cxx" class="external" target="_blank" title="Wiki">Wiki</a>
					</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-pencil"></i>Development</li>
																						<li class="none">
									<a href="../source-repository.html" title="Repository">Repository</a>
					</li>
 																<li class="none">
									<a href="../dependencies.html" title="Dependencies">Dependencies</a>
					</li>
 																																																																						<li class="expanded">
									<a href="../building/index.html" title="Building">Building</a>
										<ul>
																			<li class="none">
									<a href="../building/maven.html" title="Apache Maven 2">Apache Maven 2</a>
					</li>
 																					<li class="none active">
									<a href="../building/autotools.html" title="Autotools">Autotools</a>
					</li>
 																				<li class="none">
									<a href="../building/cmake.html" title="CMake">CMake</a>
					</li>
 																				<li class="none">
									<a href="../building/vcpkg.html" title="Microsoft vcpkg">Microsoft vcpkg</a>
					</li>
 										</ul>
							</li>
 								</ul>
			<ul class="nav nav-list">
		 											 <li class="nav-header"><i class="icon-info-sign"></i>Apache</li>
																						<li class="none">


				<a href="https://www.apache.org" class="external" target="_blank" title="Home">Home</a>
					</li>
 																<li class="none">


				<a href="https://www.apache.org/foundation/sponsorship.html" class="external" target="_blank" title="Sponsorship">Sponsorship</a>
					</li>
 																<li class="none">


				<a href="https://www.apache.org/foundation/thanks.html" class="external" target="_blank" title="Thanks">Thanks</a>
					</li>
 																<li class="none">


				<a href="https://www.apachecon.com" class="external" target="_blank" title="Conferences">Conferences</a>
					</li>
 								</ul>
							</div>
						<div id="poweredBy">
															<a href="https://maven.apache.org/" title="Built by Maven" class="poweredBy">
				<img class="poweredBy" alt="Built by Maven" src="../images/logos/maven-feather.png" />
			</a>
									</div>
					</td>
					<td class="content">
						<!-- 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. --><div class="section">
<h2>Building Apache log4cxx with autotools<a name="Building_Apache_log4cxx_with_autotools"></a></h2>
<div class="section">
<h3>Quick start:<a name="Quick_start:"></a></h3>
<p>Make sure autoconf 2.50+, libtool, g++ and make are available, install or build apr 1.x, apr-util 1.x, gzip and zip.</p>
<div class="source">
<pre>$ apt-get install build-essential automake libtool libapr1-dev libaprutil1-dev gzip zip
$ cd apache-log4cxx-x.x.x
$[./autogen.sh]
$ ./configure
$ make
$ make check
$ sudo make install</pre></div>
<p>Those lines in brackets are only necessary if you directly build from source.</p></div>
<div class="section">
<h3>configure options<a name="configure_options"></a></h3>
<table border="1" class="bodyTable">
<tr class="a">
<td align="left">--with-apr</td>
<td align="left">path to non-default location for APR.</td></tr>
<tr class="b">
<td align="left">--with-apr-util</td>
<td align="left">path to non-default location for APR-Util.</td></tr>
<tr class="a">
<td align="left">--enable-wchar_t</td>
<td align="left">Enable wchar_t API methods, choice of yes (default), no.</td></tr>
<tr class="b">
<td align="left">--enable-unichar</td>
<td align="left">Enable UniChar API methods, choice of yes, no (default).</td></tr>
<tr class="a">
<td align="left">--enable-cfstring</td>
<td align="left">Enable CFString API methods, requires Mac OS/X CoreFoundation, choice of yes, no (default).</td></tr>
<tr class="b">
<td align="left">--with-logchar</td>
<td align="left">Interal character representation, choice of utf-8 (default), wchar_t , unichar.</td></tr>
<tr class="a">
<td align="left">--with-charset</td>
<td align="left">Exteral character encoding, choice of utf-8, iso-8859-1, usascii, ebcdic, auto (default).</td></tr>
<tr class="b">
<td align="left">--with-SMTP</td>
<td align="left">SMTP implementation for SMTPAppender, choice of libesmtp, no (default).</td></tr>
<tr class="a">
<td align="left">--with-ODBC</td>
<td align="left">OBDC implementation for ODBCAppender, choice of unixODBC, iODBC, Microsoft, no (default).</td></tr>
<tr class="b">
<td align="left">-help</td>
<td align="left">Display help showing all options and exit.</td></tr></table>
<p>SMTP and ODBC options can depend on libraries that that have different licenses. You should review the corresponding licenses and understand the implications before redistribution.</p></div>
<div class="section">
<h3>Platform specific notes:<a name="Platform_specific_notes:"></a></h3>
<div class="section">
<h4>Mac OS/X:<a name="Mac_OSX:"></a></h4>
<p>APR and APR-Util are provided by the platform in Mac OS/X 10.5 and iODBC in 10.4.</p></div>
<div class="section">
<h4>Debian:<a name="Debian:"></a></h4>
<p>APR, APR-Util, gzip and zip may be installed by:</p>
<div class="source">
<pre>$ sudo apt-get install libapr1-dev libaprutil1-dev gzip zip</pre></div></div>
<div class="section">
<h4>FreeBSD:<a name="FreeBSD:"></a></h4>
<p>APR, APR-Util, gzip and zip may be installed from the ports collection by:</p>
<div class="source">
<pre># cd /usr/ports/archivers/zip
# make
# make install
# cd /usr/ports/archivers/gzip
# make
# make install
# cd /usr/ports/devel/apr
# make
# make install</pre></div></div>
<div class="section">
<h4>Cygwin:<a name="Cygwin:"></a></h4>
<p>Install zip (used by RollingFileAppender) and sed (used to normalize output files for comparison in the unit tests). The prepackaged APR currently available from Cygwin has APR_HAS_THREADS == 0. Some appenders will not be available and some may operate with reduced functionality. There have been reports of building APR on Cygwin with threads enabled.</p></div>
<div class="section">
<h4>MinGW:<a name="MinGW:"></a></h4>
<p>Recent APR 1.2.x releases fail ./configure with a error of &quot;decision on anonymous shared memory failed&quot;. That issue has been fixed in the current APR SVN HEAD. The follow sequence worked with MSYS (with Python on Path):</p>
<div class="source">
<pre>$ cd expat-2.0.1
$ ./configure
$ make install
$ cd ..
$ svn co https://svn.apache.org/repos/asf/apr/apr/trunk apr
$ cd apr
$ ./buildconf.sh
$ ./configure
$ make install
$ cd ..
$ svn co \
   https://svn.apache.org/repos/asf/apr/apr-util/trunk \
   apr-util
$ cd apr-util
$ ./buildconf.sh
$ ./configure --with-apr=/usr/local --with-expat=/usr/local
$ make install
$ cd ../apache-log4cxx-0.10.0
$ ./configure --with-apr=/usr/local \
   --with-apr-util=/usr/local --with-logchar=wchar_t
$ make install</pre></div>
<p>Running &quot;make check&quot; was observed to fail with unexpected exceptions in streamtestcase and datetimedateformattestcase. See <a class="externalLink" href="https://issues.apache.org/jira/browse/LOGCXX-244">LOGCXX-244</a>.</p></div></div></div>
					</td>
				</tr>
			</table>
		</div>

		<div class="footer">
							<p>Copyright © 2003-2020 <a class="external" href="http://www.apache.org">Apache Software Foundation</a>. All Rights Reserved.</p>
				<p>Apache Logging, Apache Log4j, Log4j, Apache, the Apache feather logo, and the Apache Logging project logo are trademarks of The Apache Software Foundation.</p>
				<p>Site powered by <a class="external" href="https://getbootstrap.com/">Twitter Bootstrap</a>. Icons from <a class="external" href="https://glyphicons.com/">Glyphicons Free</a>.</p>
		</div>
	</body>
</html>