<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kschenk</id>
	<title>Apache OpenOffice Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openoffice.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kschenk"/>
	<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/wiki/Special:Contributions/Kschenk"/>
	<updated>2026-10-02T01:48:08Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=238049</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=238049"/>
		<updated>2017-09-11T20:00:01Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries. The source code of the writer application for example can be found in &amp;lt;code&amp;gt;main/sw/&amp;lt;/code&amp;gt;. More information on the organization of the modules in the source code directories [[Source_code_directories | here]].&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html JDK 1.7] or  higher. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] or JDK 1.8 is recommended.&lt;br /&gt;
The JDK&amp;#039;s bitness must match the target platform&amp;#039;s, eg. when building for Win32, use a 32 bit JDK even if compiling on Win64.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
&lt;br /&gt;
* Archive::Zip&lt;br /&gt;
* XML::Parser&lt;br /&gt;
* LWP::UserAgent&lt;br /&gt;
* Digest::SHA&lt;br /&gt;
* Digest::MD5&lt;br /&gt;
* LWP::Protocol::https&lt;br /&gt;
&lt;br /&gt;
On Linux, use whenever possible your package manager to install the required modules. On Windows, use cygwin&amp;#039;s setup-x86.exe.&lt;br /&gt;
&lt;br /&gt;
The name of packages varies depending on the system:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Perl Module &lt;br /&gt;
! CentOS/Fedora&lt;br /&gt;
! Debian/Ubuntu&lt;br /&gt;
! Windows/cygwin&lt;br /&gt;
|-&lt;br /&gt;
| Archive::Zip&lt;br /&gt;
| perl-Archive-Zip&lt;br /&gt;
| libarchive-zip-perl&lt;br /&gt;
| perl-Archive-Zip&lt;br /&gt;
|-&lt;br /&gt;
| XML::Parser&lt;br /&gt;
| perl-XML-Parser&lt;br /&gt;
| libxml-parser-perl&lt;br /&gt;
| perl-XML-Parser&lt;br /&gt;
|-&lt;br /&gt;
| LWP::UserAgent&lt;br /&gt;
| perl-libwww-perl&lt;br /&gt;
| libwww-perl&lt;br /&gt;
| perl-libwww-perl&lt;br /&gt;
|-&lt;br /&gt;
| Digest::SHA&lt;br /&gt;
| perl-Digest-SHA&lt;br /&gt;
| perl&lt;br /&gt;
| perl-Digest-SHA&lt;br /&gt;
|-&lt;br /&gt;
| Digest::MD5&lt;br /&gt;
| perl-Digest-MD5&lt;br /&gt;
| perl&lt;br /&gt;
| perl&lt;br /&gt;
|-&lt;br /&gt;
| LWP::Protocol::https&lt;br /&gt;
| perl-LWP-Protocol-https&lt;br /&gt;
| liblwp-protocol-https-perl&lt;br /&gt;
| perl-LWP-Protocol-https&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
On some rather old systems, &amp;#039;&amp;#039;LWP::Protocol::https&amp;#039;&amp;#039; is installed in the same package as &amp;#039;&amp;#039;LWP::UserAgent&amp;#039;&amp;#039;; in this case, you need to install further dependencies in order to use &amp;#039;&amp;#039;LWP::UserAgent&amp;#039;&amp;#039; with the HTTPS protocol with no errors; on CentOS 5, for example, you need to install the &amp;#039;&amp;#039;Crypt::SSLeay&amp;#039;&amp;#039; module, provided by the &amp;#039;&amp;#039;perl-Crypt-SSLeay&amp;#039;&amp;#039; package.&lt;br /&gt;
&lt;br /&gt;
On Mac OS X, bootstrap may fail to download external dependencies from HTTPS URLs (you may get an error with a message like &amp;quot;Can&amp;#039;t verify SSL peers without knowing which Certificate Authorities to trust&amp;quot;), even if configure found all required modules; in this case, install the &amp;#039;&amp;#039;Mozilla::CA&amp;#039;&amp;#039; module using cpan.&lt;br /&gt;
&lt;br /&gt;
On CentOS, &amp;#039;&amp;#039;perl-Digest-SHA&amp;#039;&amp;#039; might be only provided through the EPEL repository.&lt;br /&gt;
&lt;br /&gt;
The prefered way to install Perl modules is using your system&amp;#039;s package manager; alternatively, and as last resort, Perl modules can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. It is recommended to use version 2.2.0 or older. OpenOffice is not yet compatible with version 3.0 or newer. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/ pre-built unowinreg.dll] (see NOTE)&lt;br /&gt;
Required for building the ODK which is included in the build unless disabled. This file is required for non-Windows builds. Without this file, configure will try to set up cross-compiling with windows. &lt;br /&gt;
NOTE: Not for windows. Required on all non-windows platforms. Download by directly saving unowinreg.dll into /main/external/unowinreg from the link provided above, or by using wget: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. It is recommended to use version 2.2.0 or older. OpenOffice is not yet compatible with version 3.0 or newer. Install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                         \&lt;br /&gt;
        --with-dmake-url=https://sourceforge.net/projects/oooextras.mirror/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=https://sourceforge.net/projects/oooextras.mirror/files/epm-3.7.tar.gz       \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
Another useful option for interactive debugging features is dbgutil. Add option,&lt;br /&gt;
        --enable-dbgutil&lt;br /&gt;
for this feature. Also see the Debugging information on this page. &lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Using &amp;#039;installed&amp;#039; for package format puts OpenOffice into your &amp;#039;&amp;#039;installset&amp;#039;&amp;#039; directory (browse down ../installed/install). This will save you time for testing since you can then directly run OpenOffice from this area. &lt;br /&gt;
&lt;br /&gt;
Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation. &amp;#039;&amp;#039;&amp;#039;NOTE:&amp;#039;&amp;#039;&amp;#039; Additional package format options will be ignored with the &amp;quot;installed&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Debugging|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=237609</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=237609"/>
		<updated>2016-08-23T19:32:10Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries. The source code of the writer application for example can be found in &amp;lt;code&amp;gt;main/sw/&amp;lt;/code&amp;gt;. More information on the organization of the modules in the source code directories [[Source_code_directories | here]].&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html JDK 1.7] or  higher. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] or JDK 1.8 is recommended.&lt;br /&gt;
The JDK&amp;#039;s bitness must match the target platform&amp;#039;s, eg. when building for Win32, use a 32 bit JDK even if compiling on Win64.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::Protocol::https&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/ pre-built unowinreg.dll] (see NOTE)&lt;br /&gt;
Required for building the ODK which is included in the build unless disabled. This file is required for non-Windows builds. Without this file, configure will try to set up cross-compiling with windows. &lt;br /&gt;
NOTE: Not for windows. Required on all non-windows platforms. Download by directly saving unowinreg.dll into /main/external from the link provided above, or by using wget: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
Another useful option for interactive debugging features is dbgutil. Add option,&lt;br /&gt;
        --enable-dbgutil&lt;br /&gt;
for this feature. Also see the Debugging information on this page. &lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Using &amp;#039;installed&amp;#039; for package format puts OpenOffice into your &amp;#039;&amp;#039;installset&amp;#039;&amp;#039; directory (browse down ../installed/install). This will save you time for testing since you can then directly run OpenOffice from this area. &lt;br /&gt;
&lt;br /&gt;
Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation. &amp;#039;&amp;#039;&amp;#039;NOTE:&amp;#039;&amp;#039;&amp;#039; Additional package format options will be ignored with the &amp;quot;installed&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Debugging|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=237608</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=237608"/>
		<updated>2016-08-23T19:30:31Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries. The source code of the writer application for example can be found in &amp;lt;code&amp;gt;main/sw/&amp;lt;/code&amp;gt;. More information on the organization of the modules in the source code directories [[Source_code_directories | here]].&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html JDK 1.7] or  higher. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
The JDK&amp;#039;s bitness must match the target platform&amp;#039;s, eg. when building for Win32, use a 32 bit JDK even if compiling on Win64.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::Protocol::https&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/ pre-built unowinreg.dll] (see NOTE)&lt;br /&gt;
Required for building the ODK which is included in the build unless disabled. This file is required for non-Windows builds. Without this file, configure will try to set up cross-compiling with windows. &lt;br /&gt;
NOTE: Not for windows. Required on all non-windows platforms. Download by directly saving unowinreg.dll into /main/external from the link provided above, or by using wget: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
Another useful option for interactive debugging features is dbgutil. Add option,&lt;br /&gt;
        --enable-dbgutil&lt;br /&gt;
for this feature. Also see the Debugging information on this page. &lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Using &amp;#039;installed&amp;#039; for package format puts OpenOffice into your &amp;#039;&amp;#039;installset&amp;#039;&amp;#039; directory (browse down ../installed/install). This will save you time for testing since you can then directly run OpenOffice from this area. &lt;br /&gt;
&lt;br /&gt;
Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation. &amp;#039;&amp;#039;&amp;#039;NOTE:&amp;#039;&amp;#039;&amp;#039; Additional package format options will be ignored with the &amp;quot;installed&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Debugging|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Environment_Variables&amp;diff=237458</id>
		<title>Environment Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Environment_Variables&amp;diff=237458"/>
		<updated>2016-04-05T16:49:26Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: /* Deprecated environment variables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OpenOffice.org runtime environment variables ==&lt;br /&gt;
&lt;br /&gt;
This page documents environment variables you can export in your environment to change the OpenOffice.org behaviour at runtime. It does not include variables used by the configuration system, or by the build system in general.&lt;br /&gt;
&lt;br /&gt;
==What&amp;#039;s an environment variable and how do I edit them?==&lt;br /&gt;
&lt;br /&gt;
Environment variables tell your operating system how things should act or look. A user can change the values of those variables, undefine them, or define new ones.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to set or change variables in Linux &amp;amp; Windows XP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(When typing, replace &amp;quot;varname&amp;quot; with the environment variable.)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Linux Terminal/Console&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Display all set variables: &amp;#039;export&amp;#039;&lt;br /&gt;
** Set the variable&amp;#039;s value (put &amp;quot; around value if it has 1+ spaces): &amp;#039;export varname=&amp;quot;value&amp;quot;&amp;#039;&lt;br /&gt;
** Make sure it&amp;#039;s right: &amp;#039;echo $varname&amp;#039; (&amp;#039;&amp;#039;Echo&amp;#039;&amp;#039; shows what varname contains; &amp;#039;&amp;#039;$&amp;#039;&amp;#039; tells Linux it&amp;#039;s a variable.)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Windows XP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Display all set variables: &amp;#039;set&amp;#039;&lt;br /&gt;
** Set the variable&amp;#039;s value: &amp;#039;set varname=&amp;quot;its new value&amp;quot;&lt;br /&gt;
** Make sure it&amp;#039;s right: &amp;#039;echo %varname%&amp;#039;&lt;br /&gt;
** Set variable through XP&amp;#039;s graphical interface:&lt;br /&gt;
*** Start -&amp;gt; Settings -&amp;gt; Control Panel -&amp;gt; System -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
*** You can change user &amp;amp; system variables separately.&lt;br /&gt;
&lt;br /&gt;
== Environment variables for users ==&lt;br /&gt;
&lt;br /&gt;
Variables that users could use or should know about.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Users&amp;quot; includes people developing macros or UNO applications based on OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| AUDIODEV&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Tells which audio device to use if your sound support is of type /dev/audio.&lt;br /&gt;
|-&lt;br /&gt;
| AUDIOSERVER&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Tells the server to connect to if your sound support is of type rptp.&lt;br /&gt;
|-&lt;br /&gt;
| AVOID_BURN_IN_FOR_GALLERY_THEME&lt;br /&gt;
||all &lt;br /&gt;
||gallery&lt;br /&gt;
||When putting shapes into the gallery, normally style-governed attributes are converted to hard attributes and stored at the gallery object. If you want to create your own custom gallery, whose objects should adapt to style changes, use this variable. &lt;br /&gt;
|-&lt;br /&gt;
| DISPLAY&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| X11 display string (ex &amp;quot;localhost:0&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_ENABLE_ID_DIALOG&lt;br /&gt;
||all &lt;br /&gt;
||gallery &lt;br /&gt;
||Adds a new menu elemet to the Gallery context menu to assing themes with IDs. IDs are added in the source when you want to create localized gallery in build time.&lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_SHOW_HIDDEN_THEMES&lt;br /&gt;
||all &lt;br /&gt;
||gallery &lt;br /&gt;
||Show the hidden gallery element like AutoShape, Web, Fontwork gallery. You can add more element by selecting the object, press CTRL + click and drag it into gallery. &lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_SHOW_PRIVATE_TITLE&lt;br /&gt;
||all &lt;br /&gt;
||gallery&lt;br /&gt;
||Shows the internal gallery title, instead of the translated UI name. &lt;br /&gt;
|-&lt;br /&gt;
| HOME&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| User&amp;#039;s personal directory&lt;br /&gt;
|-&lt;br /&gt;
| LANG&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for native language, local customs and coded character set in the absence of the LC_ALL and other LC_* (LC_COLLATE, LC_CTYPE, LC_MESSAGES, ...) environment variables. This can be used by applications to determine the language to use for error messages and instructions, collating sequences, date formats, and so forth. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_ALL&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the values for all locale categories. The value of the LC_ALL environment variable has precedence over any of the other environment variables starting with LC_ (LC_COLLATE, LC_CTYPE, LC_MESSAGES, ...) and the LANG environment variable. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_COLLATE&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for character collation. It determines collation information for regular expressions and sorting, including equivalence classes and multi-character collating elements. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_CTYPE&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for character handling functions, such as tolower(), toupper() and isalpha(). This environment variable determines the interpretation of sequences of bytes of text data as characters (for example, single- as opposed to multi-byte characters), the classification of characters (for example, alpha, digit, graph) and the behaviour of character classes. See environ(5) for details.&lt;br /&gt;
|- &lt;br /&gt;
| LC_MESSAGES&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for processing affirmative and negative responses and the language and cultural conventions in which messages should be written. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| MOZILLA_CERTIFICATE_FOLDER&lt;br /&gt;
|| unx &lt;br /&gt;
|| system&lt;br /&gt;
|| Specify where digital certificates detection should look for, override auto detection in mozilla/firefox/thunderbird&amp;#039;s user profile path.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_CALC_USE_ENGLISH_FORMULAS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| &amp;#039;&amp;#039;&amp;#039;Experimental (!)&amp;#039;&amp;#039;&amp;#039; If set to &amp;#039;&amp;#039;1&amp;#039;&amp;#039; or &amp;#039;&amp;#039;Yes&amp;#039;&amp;#039; (or any other value starting with &amp;#039;&amp;#039;y&amp;#039;&amp;#039;) the UI uses English function names and decimal separator in spreadsheet formulas, and only in formulas, cell input and displayed values are not affected. Since milestone DEV300_m2.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_FORCE_DESKTOP&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Override the desktop detection (also implies usage of the appropriate plugin, see SAL_USE_VCLPLUGIN).  Possible values: &amp;quot;kde&amp;quot; (KDE), &amp;quot;gnome&amp;quot; (Gnome), &amp;quot;none&amp;quot; (other)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ACCESSIBILITY_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value enforce accessibility bridging.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_OWN_IM_STATUS&lt;br /&gt;
|| solaris&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to disable OOo displaying an input method status window.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_NATIVE_XFONTS&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| 0 will disable OOo&amp;#039;s use of native X11 fonts&lt;br /&gt;
|-&lt;br /&gt;
| SAL_USE_VCLPLUGIN&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| The VCL plugin to use.  Possible values: &amp;quot;kde&amp;quot; (KDE) or &amp;quot;gtk&amp;quot; (Gnome) or &amp;quot;gen&amp;quot; (generic X11)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_NATIVE_ALPHA&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| When set, disables usage of the new system-level alpha rendering. Use this if e.g. your Xrender implementation is flaky.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set to nonempty value disables synchronous printer detection. This can help on startup e.g. if your CUPS server is very slow.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DECIMALSEP_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to any value to force localized decimal separator in vcl settings.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOOPENGL&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables usage of OpenGL if set to &amp;quot;true&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_VISUAL&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Explicitly set the X11 visual id to use. See xdpyinfo(1) for information on available X11 visuals and the current default visual. There are only some very rare cases where an X11 server would offer multiple visuals and the default visual would not be suitable for use with OOo. But in these cases this variable provides a method to override the default visual for OOo.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_WHEELLINES&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Specifies the number of lines a wheel mouse event will scroll. Default is 3 lines. Setting this to something larger than 10 results in page-wise scrolling.&lt;br /&gt;
|-&lt;br /&gt;
| SystemRoot&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| OS specific variable pointing to OS System Directory. If not set external UNO communication to the OOo process will not work. This is relevant when using OOo as component in other applications, for example.&lt;br /&gt;
|-&lt;br /&gt;
| USE_XOPENIM&lt;br /&gt;
|| Solaris &lt;br /&gt;
|| ooo&lt;br /&gt;
|| Force use of XOpenIM instead of XvaOpenIM. Changes behaviour of X11 input method (used in generic and kde vcl plugin).&lt;br /&gt;
|-&lt;br /&gt;
| SAL_USEINPUTMETHOD&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| set to empty value to disable internationalized input (used in generic and kde vcl plugin).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Environment variables for OOo developers == &lt;br /&gt;
&lt;br /&gt;
For testing, debugging, getting system information, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;CFG_LOGFILE&amp;quot;&amp;gt;CFG_LOGFILE&amp;lt;/div&amp;gt;&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Is used by the sample configuration logger implementation from [[Source code directories#configmgr|configmgr]]/source/workben/logger. This logger service can be used to get diagnostic output from the configuration services. By default that logger logs to stderr. If CFG_LOGFILE is set to a file name or path, the log output is redirected there.&lt;br /&gt;
|-&lt;br /&gt;
| CFG_LOGLEVEL&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Is used by the sample configuration logger implementation (see [[#CFG_LOGFILE|CFG_LOGFILE]]) to control how much detail should be logged. See API documentation for com.sun.star.util.logging.LogLevel [http://api.openoffice.org/docs/common/ref/com/sun/star/util/logging/LogLevel.html] for available values. Only numeric values are accepted. Default is to log messages from WARNING(=900) and up. Use lower numbers for more detail.&lt;br /&gt;
|-&lt;br /&gt;
| DISABLE_SAL_DBGBOX&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disable the OSL assertion dialogs for the non-product builds&lt;br /&gt;
|-&lt;br /&gt;
| ENVCFGFLAGS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Will be deprecated or obsoleted soon! Controls an older trace output facility in [[Source code directories#configmgr|configmgr]] that is active only in non-product builds or debug versions of the library. Has a rather obscure syntax. &lt;br /&gt;
|-&lt;br /&gt;
| HELP_DEBUG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Enables additional debug facilities of the help system. In particular, if you press Shift-F1 and hover over an element in the OOo UI, the tooltip will now show you the help id of the element, and the help module where its help text is looked up.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_CALC_GENPARCLASSDOC&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If Calc&amp;#039;s sc/source/core/tool/parclass.cxx was compiled with OSL_DEBUG_LEVEL defined &amp;gt; 1 and this variable is set, generate Calc&amp;#039;s parameter classification documentation to stdout, similar to what&amp;#039;s available at http://specs.openoffice.org/calc/compatibility/cac/parameter_classification.txt  Available since SRC680_m67.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;b&amp;gt;OOO_DISABLE_RECOVERY&amp;lt;/b&amp;gt;&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo-build&lt;br /&gt;
|| If set this stops the recovery dialog prompting you as OO.o starts up - instead the recovery files are just silently accumulated.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_ENABLE_LOCALE_DATA_CHECKS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Check locale data in product builds. For a full description see comment in i18npool/source/localedata/data/locale.dtd  Available since SRC680_m109.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_FORCE_SYSALLOC&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo-build&lt;br /&gt;
|| If set this disables the internal OO.o allocators, in favour of the system allocators - this means it is possible to get useful valgrind data out of a production build.&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set the file name prefix for logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE_FAST&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Keep the logging file always open for logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE_ACTIVATE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If existing in env activate logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| RTL_LOGFILE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Path to RTL log file name, see [http://tools.openoffice.org/profiling/profiling-howto.html profiling how-to]&lt;br /&gt;
|-&lt;br /&gt;
| UNO_ENV_LOG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| List of UNO components to be logged, see [[Uno/Spec/Log_Environment]]. Available as of {{CWS|dba32e|DEV300}}.&lt;br /&gt;
|-&lt;br /&gt;
| U_RBBIDEBUG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| For testing the &amp;quot;rule based break iterator&amp;quot; for ICU&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIAS_DISABLE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables all AA - useful for debugging&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_BITMAPS_OPTS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables a relatively new templatized fast-path for outputting bitmaps (setting the variable reverts to the old, slow method)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_STACKING_CHECK&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables selecting events on the window manager&amp;#039;s window.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_GLX_XFREE4&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set enables usage of OpenGL extension on XFree &amp;gt;= 4.0 servers &lt;br /&gt;
|-&lt;br /&gt;
| SAL_FLOATWIN_NOAPPFOCUSCLOSE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to prevent floating windows from closing if the application loses focus.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_HIGHPRIORITY_REPAINT&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo &lt;br /&gt;
|| Forces quasi-synchronous paints if set. Only known use case: automated screenshots.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_IGNOREXERRORS&lt;br /&gt;
|| unix&lt;br /&gt;
|| ooo &lt;br /&gt;
|| if set X window system errors are ignored by soffice.bin (Use only if you know what you do. Handle with care!)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NO_NWF&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to disable native widget rendering. Widgets will be painted with the generic vcl methods.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_PROPERTIES&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set contains a bitfield activating various bug Xserver bug workarounds. Not very useful nowadays.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_RTL_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo &lt;br /&gt;
|| Unconditionally enable Right-To-Left layout of UI elements independently from language/script used.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_SYNCHRONIZE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Reports X server errors on the calls that made them rather than asynchronously - vital for X debugging.&lt;br /&gt;
|-&lt;br /&gt;
| STAR_RESOURCEPATH&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| resource files are searched in ${STAR_RESOURCEPATH} instead of the &amp;quot;resource&amp;quot; subdirectory next to the tools library&lt;br /&gt;
|-&lt;br /&gt;
| STAROFFICE_USERTYPE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used in crash report handling. Valid values are &amp;quot;qa&amp;quot;, &amp;quot;developer&amp;quot; and &amp;quot;internal&amp;quot;. Will be included in crash report if set and marks the report as belonging to a certain usertype group. The only usage of that setting is that the crash report database can be asked afterwards how many reports there where of those groups as opposed to normal users.&lt;br /&gt;
|-&lt;br /&gt;
| XLSDUMPER&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Path to the configuration file of the XLS file dumper. The XLS file dumper is built into debug versions of OOo Calc and allows to create text dumps of every MS Excel file loaded into OOo Calc. The configuration file is part of the sc module and can be found in the CVS repository: /sc/sc/source/filter/excel/xldumper.dat. If this environment variable is set and points to an existing configuration file, the file dumper is enabled (also dependent from the settings in the configuration file). Effective from SRC680m164.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Environment variables not classified yet ==&lt;br /&gt;
&lt;br /&gt;
Remaining to be done&lt;br /&gt;
&lt;br /&gt;
An authoritative version of this list can easily be generated from [[LXR]] by searching for &amp;#039;getenv&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| all_proxy&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ALL_PROXY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| AUDIOHOST&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BMP_COLLECT_FILE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BMP_FSYS_RESOURCES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BOOST_PRG_MON_CONFIRM&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BOOST_TEST_CATCH_SYSTEM_ERRORS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CHARSET&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| C_INCLUDE_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CLASSPATH&lt;br /&gt;
|| all&lt;br /&gt;
|| java &lt;br /&gt;
|| Path with Directories and jar files to search for .class files.&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMMAND_SHELL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMP_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMSPEC&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| Path to the batch file command interpreter eg. command.com or 4nt.exe.&lt;br /&gt;
|-&lt;br /&gt;
| CPLD_ACCESSPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_CA_BUNDLE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_DEBUG_NETRC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_MEMDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_MEMLIMIT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_TRACE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_TRACE &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DBGSV_INIT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DBGSV_LOG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| debugging logfile (can be used within debug versions of OOo)&lt;br /&gt;
|-&lt;br /&gt;
| DB_HOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DESKTOP_LAUNCH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DYLD_LIBRARY_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| EMXSHELL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| EPMLIST&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_PROXYPORT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_PROXYSERVER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_SENDERADDRESS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_ALLOC_COUNT_MAX&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_ALLOC_TOTAL_MAX&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_DEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_DEBUG_MEMORY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FTP_PROXY&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ftp_proxy_password&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ftp_proxy_user&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GAI&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GNOME_DESKTOP_SESSION_ID&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GTK_MODULES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GUISTDIO_KEEPRUNNING&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| HelpEx&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| http_proxy&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| HTTP_PROXY&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ICU_DATA&lt;br /&gt;
|| &lt;br /&gt;
|| OOo&lt;br /&gt;
|| libicu related&lt;br /&gt;
|-&lt;br /&gt;
| INCLUDE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| JAVA_HOME&lt;br /&gt;
|| all&lt;br /&gt;
|| java&lt;br /&gt;
|| Path to java installation.&lt;br /&gt;
|-&lt;br /&gt;
| JPEGMEM&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| KDE_FULL_SESSION&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LANGUAGE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LC_PAPER&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LD_LIBRARY_PATH&lt;br /&gt;
|| unix &lt;br /&gt;
|| system&lt;br /&gt;
|| usage of [[LD_LIBRARY_PATH]] is a bad idea&lt;br /&gt;
|-&lt;br /&gt;
| LIBRARY_PATH&lt;br /&gt;
|| unix &lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LOCALINI&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LOCPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MAKE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_CKCHAIN&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_ERRFILE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_FATAL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_WARN&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MIXERDEV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NAS_EMPTY_SIZE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NETPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| no_proxy&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NO_PROXY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NPX_PLUGIN_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OLDSLOTHANDLING&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OOO_PRINT_PS_DIRECTLY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OPENOFFICE_MOZILLA_FIVE_HOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_LATENCY_ENV_NAME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_MIN_LATENCY_MSEC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_MIN_LATEWNCY_MSEC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PATH&lt;br /&gt;
|| all&lt;br /&gt;
|| system&lt;br /&gt;
|| Directories searched for finding programs and depending on OS also shared libraries.&lt;br /&gt;
|-&lt;br /&gt;
| POSIXLY_CORRECT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PRODUCTNAME&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PRODUCTVERSION&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ProgramFiles&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PSPRINT_ENABLE_TTF_COPYRIGHTAWARENESS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONCASEOK&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONDUMPREFS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONEXECUTABLE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONHOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONINSPECT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONMALLOCSTATS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONOPTIMIZE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONSTARTUP&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONUNBUFFERED&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONVERBOSE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONY2K&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RESOURCE_NAME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RPMDIR&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RSC_LANG_ISO&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_ACCESSIBILITY_ENABLE_MENU_SELECTED&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIAS_DISABLE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature&lt;br /&gt;
|-&lt;br /&gt;
| SAL_AUTOHINTING_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature (prefer hinted scan-converted glyph shapes)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_EMBEDDED_BITMAP_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo &lt;br /&gt;
|| font related debugging feature (prefer embedded glyph bitmaps if available)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIASED_TEXT_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature (allows embedded glyph bitmap for monochrome text, hinted glyph for grayscaled text)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_CHANGENOTIFIER_UPDATEINTERVAL&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_DEBUG_UPDATES&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_CUPS&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disable CUPS printing support&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_FLOATGRAB&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Prevent grabbing the X pointer and keyboard when showing a float window (e.g. a menu)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DO_NOT_USE_INVERT50&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Graphics card related (maybe S3 Virge) workaround for a bug triggered by card drivers, do not use the 50 percent pattern used to show docking window positions&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_FILE_LOCKING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related (a lockd must be running)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_FONTPATH&lt;br /&gt;
|| unix&lt;br /&gt;
|| ooo&lt;br /&gt;
|| the SAL_FONTPATH is added to X fontpath at application start. This allows the usage of private fonts&lt;br /&gt;
|-&lt;br /&gt;
| SAL_MAXFONTHEIGHT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| some X11 servers have problems with huge native X11 fonts. Setting this environment variable can prevent the problems.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_MOUNTPROG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_SU_DO&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_UMOUNTPROG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOEXPANDFPICKER&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_TRANSPARENT_FLOATS&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_XKEYBOARDGROUP&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SESSION_MANAGER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SGML_CATALOG_FILES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SHELL&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| Command shell to use&lt;br /&gt;
|-&lt;br /&gt;
| SOLAR_JAVA&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SOLARSRC&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SOLAR_USER_RTL_TEXTENCODING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SRC_ROOT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_BSERVERROOT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_ENABLE_FILE_LOCKING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related&lt;br /&gt;
|-&lt;br /&gt;
| STAR_INIROOT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_INIROOTOLD&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_OVERRIDE_DOMAINNAME&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_PROFILE_LOCKING_DISABLED&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related&lt;br /&gt;
|-&lt;br /&gt;
| STAR_RESOURCE_LOGGING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_SSCOMMON&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_SSOLARINI&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_STANDLST&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SWITCHAR&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SW_NOBEEP&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SYSTEM_REGISTRY_NAME_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TCP_DEVICE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TCP_SERVER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| temp&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TEMP&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files.&lt;br /&gt;
|-&lt;br /&gt;
| TempFolder&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TERM&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| The kind of terminal for which output is to be prepared.&lt;br /&gt;
|-&lt;br /&gt;
| THREADDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| tmp&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TMP&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files.&lt;br /&gt;
|-&lt;br /&gt;
| TMPDIR&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files&lt;br /&gt;
|-&lt;br /&gt;
| UPDATER&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| USER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| USER_REGISTRY_NAME_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| UTAUDIODEV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| VERBOSE_RUNTESTS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XENVIRONMENT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XLOCAL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_CATALOG_FILES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_DEBUG_CATALOG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XMLLINT_INDENT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_MEM_BREAKPOINT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_MEM_TRACE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XMODIFIERS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Deprecated environment variables ==&lt;br /&gt;
&lt;br /&gt;
Were used, but should not be used anymore.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| SAL_WM&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to force recognition of a certain window manager. Nowadays not used anymore.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOSEGV&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to continue after fatal errors. Not in use anymore.&lt;br /&gt;
|-&lt;br /&gt;
| XPDISPLAY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to set the display of the Xprint server. Today this is not functional anymore.&lt;br /&gt;
|-&lt;br /&gt;
| XPRINTER&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to set the display of the Xprint server, taking priority over XPRINTER. Today this is not functional anymore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Feedback and Explanation ==&lt;br /&gt;
&lt;br /&gt;
This list is under construction. If you have information about the role of some environment variable(s), please modify this page (using &amp;quot;Edit&amp;quot; tab at the very top of this page).&lt;br /&gt;
&lt;br /&gt;
To add information about some environment variable that is listed here, please move it from the &amp;quot;not classified yet&amp;quot; table to the &amp;quot;user&amp;quot; or &amp;quot;developer&amp;quot; table (use cut and paste). Try respecting the alphabetical order. Do not hesitate to add missing environment variables nor to remove any &amp;quot;variable&amp;quot; that appears here by mistake.&lt;br /&gt;
&lt;br /&gt;
Reminder: these are runtime environment variables. Not build system ones.&lt;br /&gt;
&lt;br /&gt;
Categories tables are:&lt;br /&gt;
&lt;br /&gt;
* [[#Environment variables for users]] = users could use them or should know about them&lt;br /&gt;
* [[#Environment variables for OOo developpers]] = for developpers only (testing, debugging, getting system information, ...)&lt;br /&gt;
* [[#Environment variables not classified yet]] = remaining to be done&lt;br /&gt;
* [[#Deprecated environment variables]] = were used, but should not be used anymore&lt;br /&gt;
&lt;br /&gt;
Operating System (&amp;quot;OS&amp;quot;) field is:&lt;br /&gt;
&lt;br /&gt;
* (empty) = not known yet&lt;br /&gt;
* linux = GNU/Linux&lt;br /&gt;
* mac = Mac OS X&lt;br /&gt;
* solaris = Solaris&lt;br /&gt;
* other = other UNIX-like system&lt;br /&gt;
* win = Microsoft Windows&lt;br /&gt;
* unx = linux + mac + solaris + other&lt;br /&gt;
* all = unx + win&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Belongs to&amp;quot; field is:&lt;br /&gt;
&lt;br /&gt;
* (empty) = not known yet&lt;br /&gt;
* ooo = introduced by OOo&lt;br /&gt;
* system = belongs to the underlying operating system(s)&lt;br /&gt;
&lt;br /&gt;
The original list of the environment variables was extracted from the OOo sources.&lt;br /&gt;
&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Environment_Variables&amp;diff=237457</id>
		<title>Environment Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Environment_Variables&amp;diff=237457"/>
		<updated>2016-04-05T16:48:42Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: /* Environment variables not classified yet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OpenOffice.org runtime environment variables ==&lt;br /&gt;
&lt;br /&gt;
This page documents environment variables you can export in your environment to change the OpenOffice.org behaviour at runtime. It does not include variables used by the configuration system, or by the build system in general.&lt;br /&gt;
&lt;br /&gt;
==What&amp;#039;s an environment variable and how do I edit them?==&lt;br /&gt;
&lt;br /&gt;
Environment variables tell your operating system how things should act or look. A user can change the values of those variables, undefine them, or define new ones.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to set or change variables in Linux &amp;amp; Windows XP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(When typing, replace &amp;quot;varname&amp;quot; with the environment variable.)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Linux Terminal/Console&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Display all set variables: &amp;#039;export&amp;#039;&lt;br /&gt;
** Set the variable&amp;#039;s value (put &amp;quot; around value if it has 1+ spaces): &amp;#039;export varname=&amp;quot;value&amp;quot;&amp;#039;&lt;br /&gt;
** Make sure it&amp;#039;s right: &amp;#039;echo $varname&amp;#039; (&amp;#039;&amp;#039;Echo&amp;#039;&amp;#039; shows what varname contains; &amp;#039;&amp;#039;$&amp;#039;&amp;#039; tells Linux it&amp;#039;s a variable.)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Windows XP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Display all set variables: &amp;#039;set&amp;#039;&lt;br /&gt;
** Set the variable&amp;#039;s value: &amp;#039;set varname=&amp;quot;its new value&amp;quot;&lt;br /&gt;
** Make sure it&amp;#039;s right: &amp;#039;echo %varname%&amp;#039;&lt;br /&gt;
** Set variable through XP&amp;#039;s graphical interface:&lt;br /&gt;
*** Start -&amp;gt; Settings -&amp;gt; Control Panel -&amp;gt; System -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
*** You can change user &amp;amp; system variables separately.&lt;br /&gt;
&lt;br /&gt;
== Environment variables for users ==&lt;br /&gt;
&lt;br /&gt;
Variables that users could use or should know about.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Users&amp;quot; includes people developing macros or UNO applications based on OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| AUDIODEV&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Tells which audio device to use if your sound support is of type /dev/audio.&lt;br /&gt;
|-&lt;br /&gt;
| AUDIOSERVER&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Tells the server to connect to if your sound support is of type rptp.&lt;br /&gt;
|-&lt;br /&gt;
| AVOID_BURN_IN_FOR_GALLERY_THEME&lt;br /&gt;
||all &lt;br /&gt;
||gallery&lt;br /&gt;
||When putting shapes into the gallery, normally style-governed attributes are converted to hard attributes and stored at the gallery object. If you want to create your own custom gallery, whose objects should adapt to style changes, use this variable. &lt;br /&gt;
|-&lt;br /&gt;
| DISPLAY&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| X11 display string (ex &amp;quot;localhost:0&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_ENABLE_ID_DIALOG&lt;br /&gt;
||all &lt;br /&gt;
||gallery &lt;br /&gt;
||Adds a new menu elemet to the Gallery context menu to assing themes with IDs. IDs are added in the source when you want to create localized gallery in build time.&lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_SHOW_HIDDEN_THEMES&lt;br /&gt;
||all &lt;br /&gt;
||gallery &lt;br /&gt;
||Show the hidden gallery element like AutoShape, Web, Fontwork gallery. You can add more element by selecting the object, press CTRL + click and drag it into gallery. &lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_SHOW_PRIVATE_TITLE&lt;br /&gt;
||all &lt;br /&gt;
||gallery&lt;br /&gt;
||Shows the internal gallery title, instead of the translated UI name. &lt;br /&gt;
|-&lt;br /&gt;
| HOME&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| User&amp;#039;s personal directory&lt;br /&gt;
|-&lt;br /&gt;
| LANG&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for native language, local customs and coded character set in the absence of the LC_ALL and other LC_* (LC_COLLATE, LC_CTYPE, LC_MESSAGES, ...) environment variables. This can be used by applications to determine the language to use for error messages and instructions, collating sequences, date formats, and so forth. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_ALL&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the values for all locale categories. The value of the LC_ALL environment variable has precedence over any of the other environment variables starting with LC_ (LC_COLLATE, LC_CTYPE, LC_MESSAGES, ...) and the LANG environment variable. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_COLLATE&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for character collation. It determines collation information for regular expressions and sorting, including equivalence classes and multi-character collating elements. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_CTYPE&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for character handling functions, such as tolower(), toupper() and isalpha(). This environment variable determines the interpretation of sequences of bytes of text data as characters (for example, single- as opposed to multi-byte characters), the classification of characters (for example, alpha, digit, graph) and the behaviour of character classes. See environ(5) for details.&lt;br /&gt;
|- &lt;br /&gt;
| LC_MESSAGES&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for processing affirmative and negative responses and the language and cultural conventions in which messages should be written. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| MOZILLA_CERTIFICATE_FOLDER&lt;br /&gt;
|| unx &lt;br /&gt;
|| system&lt;br /&gt;
|| Specify where digital certificates detection should look for, override auto detection in mozilla/firefox/thunderbird&amp;#039;s user profile path.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_CALC_USE_ENGLISH_FORMULAS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| &amp;#039;&amp;#039;&amp;#039;Experimental (!)&amp;#039;&amp;#039;&amp;#039; If set to &amp;#039;&amp;#039;1&amp;#039;&amp;#039; or &amp;#039;&amp;#039;Yes&amp;#039;&amp;#039; (or any other value starting with &amp;#039;&amp;#039;y&amp;#039;&amp;#039;) the UI uses English function names and decimal separator in spreadsheet formulas, and only in formulas, cell input and displayed values are not affected. Since milestone DEV300_m2.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_FORCE_DESKTOP&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Override the desktop detection (also implies usage of the appropriate plugin, see SAL_USE_VCLPLUGIN).  Possible values: &amp;quot;kde&amp;quot; (KDE), &amp;quot;gnome&amp;quot; (Gnome), &amp;quot;none&amp;quot; (other)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ACCESSIBILITY_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value enforce accessibility bridging.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_OWN_IM_STATUS&lt;br /&gt;
|| solaris&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to disable OOo displaying an input method status window.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_NATIVE_XFONTS&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| 0 will disable OOo&amp;#039;s use of native X11 fonts&lt;br /&gt;
|-&lt;br /&gt;
| SAL_USE_VCLPLUGIN&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| The VCL plugin to use.  Possible values: &amp;quot;kde&amp;quot; (KDE) or &amp;quot;gtk&amp;quot; (Gnome) or &amp;quot;gen&amp;quot; (generic X11)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_NATIVE_ALPHA&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| When set, disables usage of the new system-level alpha rendering. Use this if e.g. your Xrender implementation is flaky.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set to nonempty value disables synchronous printer detection. This can help on startup e.g. if your CUPS server is very slow.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DECIMALSEP_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to any value to force localized decimal separator in vcl settings.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOOPENGL&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables usage of OpenGL if set to &amp;quot;true&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_VISUAL&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Explicitly set the X11 visual id to use. See xdpyinfo(1) for information on available X11 visuals and the current default visual. There are only some very rare cases where an X11 server would offer multiple visuals and the default visual would not be suitable for use with OOo. But in these cases this variable provides a method to override the default visual for OOo.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_WHEELLINES&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Specifies the number of lines a wheel mouse event will scroll. Default is 3 lines. Setting this to something larger than 10 results in page-wise scrolling.&lt;br /&gt;
|-&lt;br /&gt;
| SystemRoot&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| OS specific variable pointing to OS System Directory. If not set external UNO communication to the OOo process will not work. This is relevant when using OOo as component in other applications, for example.&lt;br /&gt;
|-&lt;br /&gt;
| USE_XOPENIM&lt;br /&gt;
|| Solaris &lt;br /&gt;
|| ooo&lt;br /&gt;
|| Force use of XOpenIM instead of XvaOpenIM. Changes behaviour of X11 input method (used in generic and kde vcl plugin).&lt;br /&gt;
|-&lt;br /&gt;
| SAL_USEINPUTMETHOD&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| set to empty value to disable internationalized input (used in generic and kde vcl plugin).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Environment variables for OOo developers == &lt;br /&gt;
&lt;br /&gt;
For testing, debugging, getting system information, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;CFG_LOGFILE&amp;quot;&amp;gt;CFG_LOGFILE&amp;lt;/div&amp;gt;&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Is used by the sample configuration logger implementation from [[Source code directories#configmgr|configmgr]]/source/workben/logger. This logger service can be used to get diagnostic output from the configuration services. By default that logger logs to stderr. If CFG_LOGFILE is set to a file name or path, the log output is redirected there.&lt;br /&gt;
|-&lt;br /&gt;
| CFG_LOGLEVEL&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Is used by the sample configuration logger implementation (see [[#CFG_LOGFILE|CFG_LOGFILE]]) to control how much detail should be logged. See API documentation for com.sun.star.util.logging.LogLevel [http://api.openoffice.org/docs/common/ref/com/sun/star/util/logging/LogLevel.html] for available values. Only numeric values are accepted. Default is to log messages from WARNING(=900) and up. Use lower numbers for more detail.&lt;br /&gt;
|-&lt;br /&gt;
| DISABLE_SAL_DBGBOX&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disable the OSL assertion dialogs for the non-product builds&lt;br /&gt;
|-&lt;br /&gt;
| ENVCFGFLAGS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Will be deprecated or obsoleted soon! Controls an older trace output facility in [[Source code directories#configmgr|configmgr]] that is active only in non-product builds or debug versions of the library. Has a rather obscure syntax. &lt;br /&gt;
|-&lt;br /&gt;
| HELP_DEBUG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Enables additional debug facilities of the help system. In particular, if you press Shift-F1 and hover over an element in the OOo UI, the tooltip will now show you the help id of the element, and the help module where its help text is looked up.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_CALC_GENPARCLASSDOC&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If Calc&amp;#039;s sc/source/core/tool/parclass.cxx was compiled with OSL_DEBUG_LEVEL defined &amp;gt; 1 and this variable is set, generate Calc&amp;#039;s parameter classification documentation to stdout, similar to what&amp;#039;s available at http://specs.openoffice.org/calc/compatibility/cac/parameter_classification.txt  Available since SRC680_m67.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;b&amp;gt;OOO_DISABLE_RECOVERY&amp;lt;/b&amp;gt;&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo-build&lt;br /&gt;
|| If set this stops the recovery dialog prompting you as OO.o starts up - instead the recovery files are just silently accumulated.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_ENABLE_LOCALE_DATA_CHECKS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Check locale data in product builds. For a full description see comment in i18npool/source/localedata/data/locale.dtd  Available since SRC680_m109.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_FORCE_SYSALLOC&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo-build&lt;br /&gt;
|| If set this disables the internal OO.o allocators, in favour of the system allocators - this means it is possible to get useful valgrind data out of a production build.&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set the file name prefix for logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE_FAST&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Keep the logging file always open for logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE_ACTIVATE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If existing in env activate logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| RTL_LOGFILE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Path to RTL log file name, see [http://tools.openoffice.org/profiling/profiling-howto.html profiling how-to]&lt;br /&gt;
|-&lt;br /&gt;
| UNO_ENV_LOG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| List of UNO components to be logged, see [[Uno/Spec/Log_Environment]]. Available as of {{CWS|dba32e|DEV300}}.&lt;br /&gt;
|-&lt;br /&gt;
| U_RBBIDEBUG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| For testing the &amp;quot;rule based break iterator&amp;quot; for ICU&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIAS_DISABLE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables all AA - useful for debugging&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_BITMAPS_OPTS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables a relatively new templatized fast-path for outputting bitmaps (setting the variable reverts to the old, slow method)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_STACKING_CHECK&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables selecting events on the window manager&amp;#039;s window.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_GLX_XFREE4&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set enables usage of OpenGL extension on XFree &amp;gt;= 4.0 servers &lt;br /&gt;
|-&lt;br /&gt;
| SAL_FLOATWIN_NOAPPFOCUSCLOSE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to prevent floating windows from closing if the application loses focus.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_HIGHPRIORITY_REPAINT&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo &lt;br /&gt;
|| Forces quasi-synchronous paints if set. Only known use case: automated screenshots.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_IGNOREXERRORS&lt;br /&gt;
|| unix&lt;br /&gt;
|| ooo &lt;br /&gt;
|| if set X window system errors are ignored by soffice.bin (Use only if you know what you do. Handle with care!)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NO_NWF&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to disable native widget rendering. Widgets will be painted with the generic vcl methods.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_PROPERTIES&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set contains a bitfield activating various bug Xserver bug workarounds. Not very useful nowadays.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_RTL_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo &lt;br /&gt;
|| Unconditionally enable Right-To-Left layout of UI elements independently from language/script used.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_SYNCHRONIZE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Reports X server errors on the calls that made them rather than asynchronously - vital for X debugging.&lt;br /&gt;
|-&lt;br /&gt;
| STAR_RESOURCEPATH&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| resource files are searched in ${STAR_RESOURCEPATH} instead of the &amp;quot;resource&amp;quot; subdirectory next to the tools library&lt;br /&gt;
|-&lt;br /&gt;
| STAROFFICE_USERTYPE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used in crash report handling. Valid values are &amp;quot;qa&amp;quot;, &amp;quot;developer&amp;quot; and &amp;quot;internal&amp;quot;. Will be included in crash report if set and marks the report as belonging to a certain usertype group. The only usage of that setting is that the crash report database can be asked afterwards how many reports there where of those groups as opposed to normal users.&lt;br /&gt;
|-&lt;br /&gt;
| XLSDUMPER&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Path to the configuration file of the XLS file dumper. The XLS file dumper is built into debug versions of OOo Calc and allows to create text dumps of every MS Excel file loaded into OOo Calc. The configuration file is part of the sc module and can be found in the CVS repository: /sc/sc/source/filter/excel/xldumper.dat. If this environment variable is set and points to an existing configuration file, the file dumper is enabled (also dependent from the settings in the configuration file). Effective from SRC680m164.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Environment variables not classified yet ==&lt;br /&gt;
&lt;br /&gt;
Remaining to be done&lt;br /&gt;
&lt;br /&gt;
An authoritative version of this list can easily be generated from [[LXR]] by searching for &amp;#039;getenv&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| all_proxy&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ALL_PROXY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| AUDIOHOST&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BMP_COLLECT_FILE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BMP_FSYS_RESOURCES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BOOST_PRG_MON_CONFIRM&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BOOST_TEST_CATCH_SYSTEM_ERRORS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CHARSET&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| C_INCLUDE_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CLASSPATH&lt;br /&gt;
|| all&lt;br /&gt;
|| java &lt;br /&gt;
|| Path with Directories and jar files to search for .class files.&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMMAND_SHELL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMP_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMSPEC&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| Path to the batch file command interpreter eg. command.com or 4nt.exe.&lt;br /&gt;
|-&lt;br /&gt;
| CPLD_ACCESSPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_CA_BUNDLE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_DEBUG_NETRC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_MEMDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_MEMLIMIT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_TRACE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_TRACE &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DBGSV_INIT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DBGSV_LOG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| debugging logfile (can be used within debug versions of OOo)&lt;br /&gt;
|-&lt;br /&gt;
| DB_HOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DESKTOP_LAUNCH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DYLD_LIBRARY_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| EMXSHELL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| EPMLIST&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_PROXYPORT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_PROXYSERVER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_SENDERADDRESS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_ALLOC_COUNT_MAX&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_ALLOC_TOTAL_MAX&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_DEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_DEBUG_MEMORY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FTP_PROXY&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ftp_proxy_password&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ftp_proxy_user&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GAI&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GNOME_DESKTOP_SESSION_ID&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GTK_MODULES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GUISTDIO_KEEPRUNNING&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| HelpEx&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| http_proxy&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| HTTP_PROXY&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ICU_DATA&lt;br /&gt;
|| &lt;br /&gt;
|| OOo&lt;br /&gt;
|| libicu related&lt;br /&gt;
|-&lt;br /&gt;
| INCLUDE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| JAVA_HOME&lt;br /&gt;
|| all&lt;br /&gt;
|| java&lt;br /&gt;
|| Path to java installation.&lt;br /&gt;
|-&lt;br /&gt;
| JPEGMEM&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| KDE_FULL_SESSION&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LANGUAGE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LC_PAPER&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LD_LIBRARY_PATH&lt;br /&gt;
|| unix &lt;br /&gt;
|| system&lt;br /&gt;
|| usage of [[LD_LIBRARY_PATH]] is a bad idea&lt;br /&gt;
|-&lt;br /&gt;
| LIBRARY_PATH&lt;br /&gt;
|| unix &lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LOCALINI&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LOCPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MAKE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_CKCHAIN&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_ERRFILE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_FATAL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_WARN&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MIXERDEV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NAS_EMPTY_SIZE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NETPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| no_proxy&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NO_PROXY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NPX_PLUGIN_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OLDSLOTHANDLING&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OOO_PRINT_PS_DIRECTLY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OPENOFFICE_MOZILLA_FIVE_HOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_LATENCY_ENV_NAME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_MIN_LATENCY_MSEC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_MIN_LATEWNCY_MSEC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PATH&lt;br /&gt;
|| all&lt;br /&gt;
|| system&lt;br /&gt;
|| Directories searched for finding programs and depending on OS also shared libraries.&lt;br /&gt;
|-&lt;br /&gt;
| POSIXLY_CORRECT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PRODUCTNAME&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PRODUCTVERSION&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ProgramFiles&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PSPRINT_ENABLE_TTF_COPYRIGHTAWARENESS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONCASEOK&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONDUMPREFS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONEXECUTABLE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONHOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONINSPECT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONMALLOCSTATS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONOPTIMIZE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONSTARTUP&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONUNBUFFERED&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONVERBOSE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONY2K&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RESOURCE_NAME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RPMDIR&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RSC_LANG_ISO&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_ACCESSIBILITY_ENABLE_MENU_SELECTED&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIAS_DISABLE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature&lt;br /&gt;
|-&lt;br /&gt;
| SAL_AUTOHINTING_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature (prefer hinted scan-converted glyph shapes)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_EMBEDDED_BITMAP_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo &lt;br /&gt;
|| font related debugging feature (prefer embedded glyph bitmaps if available)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIASED_TEXT_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature (allows embedded glyph bitmap for monochrome text, hinted glyph for grayscaled text)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_CHANGENOTIFIER_UPDATEINTERVAL&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_DEBUG_UPDATES&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_CUPS&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disable CUPS printing support&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_FLOATGRAB&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Prevent grabbing the X pointer and keyboard when showing a float window (e.g. a menu)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DO_NOT_USE_INVERT50&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Graphics card related (maybe S3 Virge) workaround for a bug triggered by card drivers, do not use the 50 percent pattern used to show docking window positions&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_FILE_LOCKING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related (a lockd must be running)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_FONTPATH&lt;br /&gt;
|| unix&lt;br /&gt;
|| ooo&lt;br /&gt;
|| the SAL_FONTPATH is added to X fontpath at application start. This allows the usage of private fonts&lt;br /&gt;
|-&lt;br /&gt;
| SAL_MAXFONTHEIGHT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| some X11 servers have problems with huge native X11 fonts. Setting this environment variable can prevent the problems.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_MOUNTPROG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_SU_DO&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_UMOUNTPROG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOEXPANDFPICKER&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_TRANSPARENT_FLOATS&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_XKEYBOARDGROUP&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SESSION_MANAGER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SGML_CATALOG_FILES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SHELL&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| Command shell to use&lt;br /&gt;
|-&lt;br /&gt;
| SOLAR_JAVA&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SOLARSRC&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SOLAR_USER_RTL_TEXTENCODING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SRC_ROOT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_BSERVERROOT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_ENABLE_FILE_LOCKING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related&lt;br /&gt;
|-&lt;br /&gt;
| STAR_INIROOT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_INIROOTOLD&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_OVERRIDE_DOMAINNAME&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_PROFILE_LOCKING_DISABLED&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related&lt;br /&gt;
|-&lt;br /&gt;
| STAR_RESOURCE_LOGGING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_SSCOMMON&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_SSOLARINI&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_STANDLST&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SWITCHAR&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SW_NOBEEP&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SYSTEM_REGISTRY_NAME_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TCP_DEVICE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TCP_SERVER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| temp&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TEMP&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files.&lt;br /&gt;
|-&lt;br /&gt;
| TempFolder&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TERM&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| The kind of terminal for which output is to be prepared.&lt;br /&gt;
|-&lt;br /&gt;
| THREADDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| tmp&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TMP&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files.&lt;br /&gt;
|-&lt;br /&gt;
| TMPDIR&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files&lt;br /&gt;
|-&lt;br /&gt;
| UPDATER&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| USER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| USER_REGISTRY_NAME_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| UTAUDIODEV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| VERBOSE_RUNTESTS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XENVIRONMENT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XLOCAL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_CATALOG_FILES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_DEBUG_CATALOG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XMLLINT_INDENT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_MEM_BREAKPOINT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_MEM_TRACE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XMODIFIERS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Deprecated environment variables ==&lt;br /&gt;
&lt;br /&gt;
Were used, but should not be used anymore.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| SAL_WM&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to force recognition of a certain window manager. Nowadays not used anymore.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOSEGV&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to continue after fatal errors. Not in use anymore.&lt;br /&gt;
|-&lt;br /&gt;
| XPDISPLAY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to set the display of the Xprint server. Today this is not functional anymore.&lt;br /&gt;
|-&lt;br /&gt;
| XPRINTER&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to set the display of the Xprint server, taking priority over XPRINTER. Today this is not functional anymore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Feedback and Explanation ==&lt;br /&gt;
&lt;br /&gt;
This list is under construction. If you have information about the role of some environment variable(s), please modify this page (using &amp;quot;Edit&amp;quot; tab at the very top of this page).&lt;br /&gt;
&lt;br /&gt;
To add information about some environment variable that is listed here, please move it from the &amp;quot;not classified yet&amp;quot; table to the &amp;quot;user&amp;quot; or &amp;quot;developer&amp;quot; table (use cut and paste). Try respecting the alphabetical order. Do not hesitate to add missing environment variables nor to remove any &amp;quot;variable&amp;quot; that appears here by mistake.&lt;br /&gt;
&lt;br /&gt;
Reminder: these are runtime environment variables. Not build system ones.&lt;br /&gt;
&lt;br /&gt;
Categories tables are:&lt;br /&gt;
&lt;br /&gt;
* [[#Environment variables for users]] = users could use them or should know about them&lt;br /&gt;
* [[#Environment variables for OOo developpers]] = for developpers only (testing, debugging, getting system information, ...)&lt;br /&gt;
* [[#Environment variables not classified yet]] = remaining to be done&lt;br /&gt;
* [[#Deprecated environment variables]] = were used, but should not be used anymore&lt;br /&gt;
&lt;br /&gt;
Operating System (&amp;quot;OS&amp;quot;) field is:&lt;br /&gt;
&lt;br /&gt;
* (empty) = not known yet&lt;br /&gt;
* linux = GNU/Linux&lt;br /&gt;
* mac = Mac OS X&lt;br /&gt;
* solaris = Solaris&lt;br /&gt;
* other = other UNIX-like system&lt;br /&gt;
* win = Microsoft Windows&lt;br /&gt;
* unx = linux + mac + solaris + other&lt;br /&gt;
* all = unx + win&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Belongs to&amp;quot; field is:&lt;br /&gt;
&lt;br /&gt;
* (empty) = not known yet&lt;br /&gt;
* ooo = introduced by OOo&lt;br /&gt;
* system = belongs to the underlying operating system(s)&lt;br /&gt;
&lt;br /&gt;
The original list of the environment variables was extracted from the OOo sources.&lt;br /&gt;
&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Environment_Variables&amp;diff=237456</id>
		<title>Environment Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Environment_Variables&amp;diff=237456"/>
		<updated>2016-04-05T16:48:05Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: /* Environment variables for OOo developers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OpenOffice.org runtime environment variables ==&lt;br /&gt;
&lt;br /&gt;
This page documents environment variables you can export in your environment to change the OpenOffice.org behaviour at runtime. It does not include variables used by the configuration system, or by the build system in general.&lt;br /&gt;
&lt;br /&gt;
==What&amp;#039;s an environment variable and how do I edit them?==&lt;br /&gt;
&lt;br /&gt;
Environment variables tell your operating system how things should act or look. A user can change the values of those variables, undefine them, or define new ones.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to set or change variables in Linux &amp;amp; Windows XP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(When typing, replace &amp;quot;varname&amp;quot; with the environment variable.)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Linux Terminal/Console&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Display all set variables: &amp;#039;export&amp;#039;&lt;br /&gt;
** Set the variable&amp;#039;s value (put &amp;quot; around value if it has 1+ spaces): &amp;#039;export varname=&amp;quot;value&amp;quot;&amp;#039;&lt;br /&gt;
** Make sure it&amp;#039;s right: &amp;#039;echo $varname&amp;#039; (&amp;#039;&amp;#039;Echo&amp;#039;&amp;#039; shows what varname contains; &amp;#039;&amp;#039;$&amp;#039;&amp;#039; tells Linux it&amp;#039;s a variable.)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Windows XP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Display all set variables: &amp;#039;set&amp;#039;&lt;br /&gt;
** Set the variable&amp;#039;s value: &amp;#039;set varname=&amp;quot;its new value&amp;quot;&lt;br /&gt;
** Make sure it&amp;#039;s right: &amp;#039;echo %varname%&amp;#039;&lt;br /&gt;
** Set variable through XP&amp;#039;s graphical interface:&lt;br /&gt;
*** Start -&amp;gt; Settings -&amp;gt; Control Panel -&amp;gt; System -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
*** You can change user &amp;amp; system variables separately.&lt;br /&gt;
&lt;br /&gt;
== Environment variables for users ==&lt;br /&gt;
&lt;br /&gt;
Variables that users could use or should know about.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Users&amp;quot; includes people developing macros or UNO applications based on OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| AUDIODEV&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Tells which audio device to use if your sound support is of type /dev/audio.&lt;br /&gt;
|-&lt;br /&gt;
| AUDIOSERVER&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Tells the server to connect to if your sound support is of type rptp.&lt;br /&gt;
|-&lt;br /&gt;
| AVOID_BURN_IN_FOR_GALLERY_THEME&lt;br /&gt;
||all &lt;br /&gt;
||gallery&lt;br /&gt;
||When putting shapes into the gallery, normally style-governed attributes are converted to hard attributes and stored at the gallery object. If you want to create your own custom gallery, whose objects should adapt to style changes, use this variable. &lt;br /&gt;
|-&lt;br /&gt;
| DISPLAY&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| X11 display string (ex &amp;quot;localhost:0&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_ENABLE_ID_DIALOG&lt;br /&gt;
||all &lt;br /&gt;
||gallery &lt;br /&gt;
||Adds a new menu elemet to the Gallery context menu to assing themes with IDs. IDs are added in the source when you want to create localized gallery in build time.&lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_SHOW_HIDDEN_THEMES&lt;br /&gt;
||all &lt;br /&gt;
||gallery &lt;br /&gt;
||Show the hidden gallery element like AutoShape, Web, Fontwork gallery. You can add more element by selecting the object, press CTRL + click and drag it into gallery. &lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_SHOW_PRIVATE_TITLE&lt;br /&gt;
||all &lt;br /&gt;
||gallery&lt;br /&gt;
||Shows the internal gallery title, instead of the translated UI name. &lt;br /&gt;
|-&lt;br /&gt;
| HOME&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| User&amp;#039;s personal directory&lt;br /&gt;
|-&lt;br /&gt;
| LANG&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for native language, local customs and coded character set in the absence of the LC_ALL and other LC_* (LC_COLLATE, LC_CTYPE, LC_MESSAGES, ...) environment variables. This can be used by applications to determine the language to use for error messages and instructions, collating sequences, date formats, and so forth. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_ALL&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the values for all locale categories. The value of the LC_ALL environment variable has precedence over any of the other environment variables starting with LC_ (LC_COLLATE, LC_CTYPE, LC_MESSAGES, ...) and the LANG environment variable. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_COLLATE&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for character collation. It determines collation information for regular expressions and sorting, including equivalence classes and multi-character collating elements. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_CTYPE&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for character handling functions, such as tolower(), toupper() and isalpha(). This environment variable determines the interpretation of sequences of bytes of text data as characters (for example, single- as opposed to multi-byte characters), the classification of characters (for example, alpha, digit, graph) and the behaviour of character classes. See environ(5) for details.&lt;br /&gt;
|- &lt;br /&gt;
| LC_MESSAGES&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for processing affirmative and negative responses and the language and cultural conventions in which messages should be written. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| MOZILLA_CERTIFICATE_FOLDER&lt;br /&gt;
|| unx &lt;br /&gt;
|| system&lt;br /&gt;
|| Specify where digital certificates detection should look for, override auto detection in mozilla/firefox/thunderbird&amp;#039;s user profile path.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_CALC_USE_ENGLISH_FORMULAS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| &amp;#039;&amp;#039;&amp;#039;Experimental (!)&amp;#039;&amp;#039;&amp;#039; If set to &amp;#039;&amp;#039;1&amp;#039;&amp;#039; or &amp;#039;&amp;#039;Yes&amp;#039;&amp;#039; (or any other value starting with &amp;#039;&amp;#039;y&amp;#039;&amp;#039;) the UI uses English function names and decimal separator in spreadsheet formulas, and only in formulas, cell input and displayed values are not affected. Since milestone DEV300_m2.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_FORCE_DESKTOP&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Override the desktop detection (also implies usage of the appropriate plugin, see SAL_USE_VCLPLUGIN).  Possible values: &amp;quot;kde&amp;quot; (KDE), &amp;quot;gnome&amp;quot; (Gnome), &amp;quot;none&amp;quot; (other)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ACCESSIBILITY_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value enforce accessibility bridging.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_OWN_IM_STATUS&lt;br /&gt;
|| solaris&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to disable OOo displaying an input method status window.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_NATIVE_XFONTS&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| 0 will disable OOo&amp;#039;s use of native X11 fonts&lt;br /&gt;
|-&lt;br /&gt;
| SAL_USE_VCLPLUGIN&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| The VCL plugin to use.  Possible values: &amp;quot;kde&amp;quot; (KDE) or &amp;quot;gtk&amp;quot; (Gnome) or &amp;quot;gen&amp;quot; (generic X11)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_NATIVE_ALPHA&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| When set, disables usage of the new system-level alpha rendering. Use this if e.g. your Xrender implementation is flaky.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set to nonempty value disables synchronous printer detection. This can help on startup e.g. if your CUPS server is very slow.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DECIMALSEP_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to any value to force localized decimal separator in vcl settings.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOOPENGL&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables usage of OpenGL if set to &amp;quot;true&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_VISUAL&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Explicitly set the X11 visual id to use. See xdpyinfo(1) for information on available X11 visuals and the current default visual. There are only some very rare cases where an X11 server would offer multiple visuals and the default visual would not be suitable for use with OOo. But in these cases this variable provides a method to override the default visual for OOo.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_WHEELLINES&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Specifies the number of lines a wheel mouse event will scroll. Default is 3 lines. Setting this to something larger than 10 results in page-wise scrolling.&lt;br /&gt;
|-&lt;br /&gt;
| SystemRoot&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| OS specific variable pointing to OS System Directory. If not set external UNO communication to the OOo process will not work. This is relevant when using OOo as component in other applications, for example.&lt;br /&gt;
|-&lt;br /&gt;
| USE_XOPENIM&lt;br /&gt;
|| Solaris &lt;br /&gt;
|| ooo&lt;br /&gt;
|| Force use of XOpenIM instead of XvaOpenIM. Changes behaviour of X11 input method (used in generic and kde vcl plugin).&lt;br /&gt;
|-&lt;br /&gt;
| SAL_USEINPUTMETHOD&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| set to empty value to disable internationalized input (used in generic and kde vcl plugin).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Environment variables for OOo developers == &lt;br /&gt;
&lt;br /&gt;
For testing, debugging, getting system information, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;CFG_LOGFILE&amp;quot;&amp;gt;CFG_LOGFILE&amp;lt;/div&amp;gt;&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Is used by the sample configuration logger implementation from [[Source code directories#configmgr|configmgr]]/source/workben/logger. This logger service can be used to get diagnostic output from the configuration services. By default that logger logs to stderr. If CFG_LOGFILE is set to a file name or path, the log output is redirected there.&lt;br /&gt;
|-&lt;br /&gt;
| CFG_LOGLEVEL&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Is used by the sample configuration logger implementation (see [[#CFG_LOGFILE|CFG_LOGFILE]]) to control how much detail should be logged. See API documentation for com.sun.star.util.logging.LogLevel [http://api.openoffice.org/docs/common/ref/com/sun/star/util/logging/LogLevel.html] for available values. Only numeric values are accepted. Default is to log messages from WARNING(=900) and up. Use lower numbers for more detail.&lt;br /&gt;
|-&lt;br /&gt;
| DISABLE_SAL_DBGBOX&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disable the OSL assertion dialogs for the non-product builds&lt;br /&gt;
|-&lt;br /&gt;
| ENVCFGFLAGS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Will be deprecated or obsoleted soon! Controls an older trace output facility in [[Source code directories#configmgr|configmgr]] that is active only in non-product builds or debug versions of the library. Has a rather obscure syntax. &lt;br /&gt;
|-&lt;br /&gt;
| HELP_DEBUG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Enables additional debug facilities of the help system. In particular, if you press Shift-F1 and hover over an element in the OOo UI, the tooltip will now show you the help id of the element, and the help module where its help text is looked up.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_CALC_GENPARCLASSDOC&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If Calc&amp;#039;s sc/source/core/tool/parclass.cxx was compiled with OSL_DEBUG_LEVEL defined &amp;gt; 1 and this variable is set, generate Calc&amp;#039;s parameter classification documentation to stdout, similar to what&amp;#039;s available at http://specs.openoffice.org/calc/compatibility/cac/parameter_classification.txt  Available since SRC680_m67.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;b&amp;gt;OOO_DISABLE_RECOVERY&amp;lt;/b&amp;gt;&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo-build&lt;br /&gt;
|| If set this stops the recovery dialog prompting you as OO.o starts up - instead the recovery files are just silently accumulated.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_ENABLE_LOCALE_DATA_CHECKS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Check locale data in product builds. For a full description see comment in i18npool/source/localedata/data/locale.dtd  Available since SRC680_m109.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_FORCE_SYSALLOC&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo-build&lt;br /&gt;
|| If set this disables the internal OO.o allocators, in favour of the system allocators - this means it is possible to get useful valgrind data out of a production build.&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set the file name prefix for logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE_FAST&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Keep the logging file always open for logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE_ACTIVATE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If existing in env activate logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| RTL_LOGFILE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Path to RTL log file name, see [http://tools.openoffice.org/profiling/profiling-howto.html profiling how-to]&lt;br /&gt;
|-&lt;br /&gt;
| UNO_ENV_LOG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| List of UNO components to be logged, see [[Uno/Spec/Log_Environment]]. Available as of {{CWS|dba32e|DEV300}}.&lt;br /&gt;
|-&lt;br /&gt;
| U_RBBIDEBUG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| For testing the &amp;quot;rule based break iterator&amp;quot; for ICU&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIAS_DISABLE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables all AA - useful for debugging&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_BITMAPS_OPTS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables a relatively new templatized fast-path for outputting bitmaps (setting the variable reverts to the old, slow method)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_STACKING_CHECK&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables selecting events on the window manager&amp;#039;s window.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_GLX_XFREE4&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set enables usage of OpenGL extension on XFree &amp;gt;= 4.0 servers &lt;br /&gt;
|-&lt;br /&gt;
| SAL_FLOATWIN_NOAPPFOCUSCLOSE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to prevent floating windows from closing if the application loses focus.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_HIGHPRIORITY_REPAINT&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo &lt;br /&gt;
|| Forces quasi-synchronous paints if set. Only known use case: automated screenshots.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_IGNOREXERRORS&lt;br /&gt;
|| unix&lt;br /&gt;
|| ooo &lt;br /&gt;
|| if set X window system errors are ignored by soffice.bin (Use only if you know what you do. Handle with care!)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NO_NWF&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to disable native widget rendering. Widgets will be painted with the generic vcl methods.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_PROPERTIES&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set contains a bitfield activating various bug Xserver bug workarounds. Not very useful nowadays.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_RTL_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo &lt;br /&gt;
|| Unconditionally enable Right-To-Left layout of UI elements independently from language/script used.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_SYNCHRONIZE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Reports X server errors on the calls that made them rather than asynchronously - vital for X debugging.&lt;br /&gt;
|-&lt;br /&gt;
| STAR_RESOURCEPATH&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| resource files are searched in ${STAR_RESOURCEPATH} instead of the &amp;quot;resource&amp;quot; subdirectory next to the tools library&lt;br /&gt;
|-&lt;br /&gt;
| STAROFFICE_USERTYPE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used in crash report handling. Valid values are &amp;quot;qa&amp;quot;, &amp;quot;developer&amp;quot; and &amp;quot;internal&amp;quot;. Will be included in crash report if set and marks the report as belonging to a certain usertype group. The only usage of that setting is that the crash report database can be asked afterwards how many reports there where of those groups as opposed to normal users.&lt;br /&gt;
|-&lt;br /&gt;
| XLSDUMPER&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Path to the configuration file of the XLS file dumper. The XLS file dumper is built into debug versions of OOo Calc and allows to create text dumps of every MS Excel file loaded into OOo Calc. The configuration file is part of the sc module and can be found in the CVS repository: /sc/sc/source/filter/excel/xldumper.dat. If this environment variable is set and points to an existing configuration file, the file dumper is enabled (also dependent from the settings in the configuration file). Effective from SRC680m164.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Environment variables not classified yet ==&lt;br /&gt;
&lt;br /&gt;
Remaining to be done&lt;br /&gt;
&lt;br /&gt;
An authoritative version of this list can easily be generated from [[LXR]] by searching for &amp;#039;getenv&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| all_proxy&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ALL_PROXY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| AUDIOHOST&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BMP_COLLECT_FILE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BMP_FSYS_RESOURCES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BOOST_PRG_MON_CONFIRM&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BOOST_TEST_CATCH_SYSTEM_ERRORS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CHARSET&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| C_INCLUDE_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CLASSPATH&lt;br /&gt;
|| all&lt;br /&gt;
|| java &lt;br /&gt;
|| Path with Directories and jar files to search for .class files.&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMMAND_SHELL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMP_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMSPEC&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| Path to the batch file command interpreter eg. command.com or 4nt.exe.&lt;br /&gt;
|-&lt;br /&gt;
| CPLD_ACCESSPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_CA_BUNDLE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_DEBUG_NETRC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_MEMDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_MEMLIMIT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_TRACE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_TRACE &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DBGSV_INIT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DBGSV_LOG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| debugging logfile (can be used within debug versions of OOo)&lt;br /&gt;
|-&lt;br /&gt;
| DB_HOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DESKTOP_LAUNCH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DYLD_LIBRARY_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| EMXSHELL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| EPMLIST&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_PROXYPORT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_PROXYSERVER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_SENDERADDRESS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_ALLOC_COUNT_MAX&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_ALLOC_TOTAL_MAX&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_DEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_DEBUG_MEMORY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FTP_PROXY&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ftp_proxy_password&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ftp_proxy_user&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GAI&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GNOME_DESKTOP_SESSION_ID&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GTK_MODULES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GUISTDIO_KEEPRUNNING&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| HelpEx&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| http_proxy&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| HTTP_PROXY&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ICU_DATA&lt;br /&gt;
|| &lt;br /&gt;
|| OOo&lt;br /&gt;
|| libicu related&lt;br /&gt;
|-&lt;br /&gt;
| INCLUDE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| JAVA_HOME&lt;br /&gt;
|| all&lt;br /&gt;
|| java&lt;br /&gt;
|| Path to java installation.&lt;br /&gt;
|-&lt;br /&gt;
| JPEGMEM&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| KDE_FULL_SESSION&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LANGUAGE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LC_PAPER&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LD_LIBRARY_PATH&lt;br /&gt;
|| unix &lt;br /&gt;
|| system&lt;br /&gt;
|| usage of [[LD_LIBRARY_PATH]] is a bad idea&lt;br /&gt;
|-&lt;br /&gt;
| LIBRARY_PATH&lt;br /&gt;
|| unix &lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LOCALINI&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LOCPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MAKE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_CKCHAIN&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_ERRFILE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_FATAL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_WARN&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MIXERDEV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NAS_EMPTY_SIZE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NETPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| no_proxy&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NO_PROXY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NPX_PLUGIN_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OLDSLOTHANDLING&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OOO_PRINT_PS_DIRECTLY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OPENOFFICE_MOZILLA_FIVE_HOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_LATENCY_ENV_NAME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_MIN_LATENCY_MSEC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_MIN_LATEWNCY_MSEC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PATH&lt;br /&gt;
|| all&lt;br /&gt;
|| system&lt;br /&gt;
|| Directories searched for finding programs and depending on OS also shared libraries.&lt;br /&gt;
|-&lt;br /&gt;
| POSIXLY_CORRECT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PRODUCTNAME&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PRODUCTVERSION&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ProgramFiles&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PSPRINT_ENABLE_TTF_COPYRIGHTAWARENESS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONCASEOK&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONDUMPREFS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONEXECUTABLE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONHOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONINSPECT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONMALLOCSTATS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONOPTIMIZE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONSTARTUP&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONUNBUFFERED&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONVERBOSE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONY2K&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RESOURCE_NAME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RPMDIR&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RSC_LANG_ISO&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_ACCESSIBILITY_ENABLE_MENU_SELECTED&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIAS_DISABLE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature&lt;br /&gt;
|-&lt;br /&gt;
| SAL_AUTOHINTING_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature (prefer hinted scan-converted glyph shapes)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_EMBEDDED_BITMAP_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo &lt;br /&gt;
|| font related debugging feature (prefer embedded glyph bitmaps if available)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIASED_TEXT_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature (allows embedded glyph bitmap for monochrome text, hinted glyph for grayscaled text)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_CHANGENOTIFIER_UPDATEINTERVAL&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_DEBUG_UPDATES&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_CUPS&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disable CUPS printing support&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_FLOATGRAB&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Prevent grabbing the X pointer and keyboard when showing a float window (e.g. a menu)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DO_NOT_USE_INVERT50&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Graphics card related (maybe S3 Virge) workaround for a bug triggered by card drivers, do not use the 50 percent pattern used to show docking window positions&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_FILE_LOCKING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related (a lockd must be running)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_FONTPATH&lt;br /&gt;
|| unix&lt;br /&gt;
|| ooo&lt;br /&gt;
|| the SAL_FONTPATH is added to X fontpath at application start. This allows the usage of private fonts&lt;br /&gt;
|-&lt;br /&gt;
| SAL_MAXFONTHEIGHT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| some X11 servers have problems with huge native X11 fonts. Setting this environment variable can prevent the problems.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_MOUNTPROG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_SU_DO&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_UMOUNTPROG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOEXPANDFPICKER&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_TRANSPARENT_FLOATS&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_XKEYBOARDGROUP&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SESSION_MANAGER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SGML_CATALOG_FILES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SHELL&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| Command shell to use&lt;br /&gt;
|-&lt;br /&gt;
| SOLAR_JAVA&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SOLARSRC&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SOLAR_USER_RTL_TEXTENCODING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SRC_ROOT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_BSERVERROOT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_ENABLE_FILE_LOCKING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related&lt;br /&gt;
|-&lt;br /&gt;
| STAR_INIROOT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_INIROOTOLD&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_OVERRIDE_DOMAINNAME&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_PROFILE_LOCKING_DISABLED&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related&lt;br /&gt;
|-&lt;br /&gt;
| STAR_RESOURCE_LOGGING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_SSCOMMON&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_SSOLARINI&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_STANDLST&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SWITCHAR&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SW_NOBEEP&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SYSTEM_REGISTRY_NAME_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TCP_DEVICE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TCP_SERVER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| temp&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TEMP&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files.&lt;br /&gt;
|-&lt;br /&gt;
| TempFolder&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TERM&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| The kind of terminal for which output is to be prepared.&lt;br /&gt;
|-&lt;br /&gt;
| THREADDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| tmp&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TMP&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files.&lt;br /&gt;
|-&lt;br /&gt;
| TMPDIR&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files&lt;br /&gt;
|-&lt;br /&gt;
| UPDATER&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| USER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| USER_REGISTRY_NAME_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| UTAUDIODEV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| VERBOSE_RUNTESTS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XENVIRONMENT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XLOCAL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_CATALOG_FILES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_DEBUG_CATALOG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XMLLINT_INDENT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_MEM_BREAKPOINT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_MEM_TRACE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XMODIFIERS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Deprecated environment variables ==&lt;br /&gt;
&lt;br /&gt;
Were used, but should not be used anymore.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| SAL_WM&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to force recognition of a certain window manager. Nowadays not used anymore.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOSEGV&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to continue after fatal errors. Not in use anymore.&lt;br /&gt;
|-&lt;br /&gt;
| XPDISPLAY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to set the display of the Xprint server. Today this is not functional anymore.&lt;br /&gt;
|-&lt;br /&gt;
| XPRINTER&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to set the display of the Xprint server, taking priority over XPRINTER. Today this is not functional anymore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Feedback and Explanation ==&lt;br /&gt;
&lt;br /&gt;
This list is under construction. If you have information about the role of some environment variable(s), please modify this page (using &amp;quot;Edit&amp;quot; tab at the very top of this page).&lt;br /&gt;
&lt;br /&gt;
To add information about some environment variable that is listed here, please move it from the &amp;quot;not classified yet&amp;quot; table to the &amp;quot;user&amp;quot; or &amp;quot;developer&amp;quot; table (use cut and paste). Try respecting the alphabetical order. Do not hesitate to add missing environment variables nor to remove any &amp;quot;variable&amp;quot; that appears here by mistake.&lt;br /&gt;
&lt;br /&gt;
Reminder: these are runtime environment variables. Not build system ones.&lt;br /&gt;
&lt;br /&gt;
Categories tables are:&lt;br /&gt;
&lt;br /&gt;
* [[#Environment variables for users]] = users could use them or should know about them&lt;br /&gt;
* [[#Environment variables for OOo developpers]] = for developpers only (testing, debugging, getting system information, ...)&lt;br /&gt;
* [[#Environment variables not classified yet]] = remaining to be done&lt;br /&gt;
* [[#Deprecated environment variables]] = were used, but should not be used anymore&lt;br /&gt;
&lt;br /&gt;
Operating System (&amp;quot;OS&amp;quot;) field is:&lt;br /&gt;
&lt;br /&gt;
* (empty) = not known yet&lt;br /&gt;
* linux = GNU/Linux&lt;br /&gt;
* mac = Mac OS X&lt;br /&gt;
* solaris = Solaris&lt;br /&gt;
* other = other UNIX-like system&lt;br /&gt;
* win = Microsoft Windows&lt;br /&gt;
* unx = linux + mac + solaris + other&lt;br /&gt;
* all = unx + win&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Belongs to&amp;quot; field is:&lt;br /&gt;
&lt;br /&gt;
* (empty) = not known yet&lt;br /&gt;
* ooo = introduced by OOo&lt;br /&gt;
* system = belongs to the underlying operating system(s)&lt;br /&gt;
&lt;br /&gt;
The original list of the environment variables was extracted from the OOo sources.&lt;br /&gt;
&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Environment_Variables&amp;diff=237455</id>
		<title>Environment Variables</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Environment_Variables&amp;diff=237455"/>
		<updated>2016-04-05T16:47:25Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: /* Environment variables for users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OpenOffice.org runtime environment variables ==&lt;br /&gt;
&lt;br /&gt;
This page documents environment variables you can export in your environment to change the OpenOffice.org behaviour at runtime. It does not include variables used by the configuration system, or by the build system in general.&lt;br /&gt;
&lt;br /&gt;
==What&amp;#039;s an environment variable and how do I edit them?==&lt;br /&gt;
&lt;br /&gt;
Environment variables tell your operating system how things should act or look. A user can change the values of those variables, undefine them, or define new ones.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to set or change variables in Linux &amp;amp; Windows XP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
(When typing, replace &amp;quot;varname&amp;quot; with the environment variable.)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Linux Terminal/Console&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Display all set variables: &amp;#039;export&amp;#039;&lt;br /&gt;
** Set the variable&amp;#039;s value (put &amp;quot; around value if it has 1+ spaces): &amp;#039;export varname=&amp;quot;value&amp;quot;&amp;#039;&lt;br /&gt;
** Make sure it&amp;#039;s right: &amp;#039;echo $varname&amp;#039; (&amp;#039;&amp;#039;Echo&amp;#039;&amp;#039; shows what varname contains; &amp;#039;&amp;#039;$&amp;#039;&amp;#039; tells Linux it&amp;#039;s a variable.)&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Windows XP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
** Display all set variables: &amp;#039;set&amp;#039;&lt;br /&gt;
** Set the variable&amp;#039;s value: &amp;#039;set varname=&amp;quot;its new value&amp;quot;&lt;br /&gt;
** Make sure it&amp;#039;s right: &amp;#039;echo %varname%&amp;#039;&lt;br /&gt;
** Set variable through XP&amp;#039;s graphical interface:&lt;br /&gt;
*** Start -&amp;gt; Settings -&amp;gt; Control Panel -&amp;gt; System -&amp;gt; Advanced -&amp;gt; Environment Variables&lt;br /&gt;
*** You can change user &amp;amp; system variables separately.&lt;br /&gt;
&lt;br /&gt;
== Environment variables for users ==&lt;br /&gt;
&lt;br /&gt;
Variables that users could use or should know about.&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Users&amp;quot; includes people developing macros or UNO applications based on OpenOffice.org.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| AUDIODEV&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Tells which audio device to use if your sound support is of type /dev/audio.&lt;br /&gt;
|-&lt;br /&gt;
| AUDIOSERVER&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Tells the server to connect to if your sound support is of type rptp.&lt;br /&gt;
|-&lt;br /&gt;
| AVOID_BURN_IN_FOR_GALLERY_THEME&lt;br /&gt;
||all &lt;br /&gt;
||gallery&lt;br /&gt;
||When putting shapes into the gallery, normally style-governed attributes are converted to hard attributes and stored at the gallery object. If you want to create your own custom gallery, whose objects should adapt to style changes, use this variable. &lt;br /&gt;
|-&lt;br /&gt;
| DISPLAY&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| X11 display string (ex &amp;quot;localhost:0&amp;quot;)&lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_ENABLE_ID_DIALOG&lt;br /&gt;
||all &lt;br /&gt;
||gallery &lt;br /&gt;
||Adds a new menu elemet to the Gallery context menu to assing themes with IDs. IDs are added in the source when you want to create localized gallery in build time.&lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_SHOW_HIDDEN_THEMES&lt;br /&gt;
||all &lt;br /&gt;
||gallery &lt;br /&gt;
||Show the hidden gallery element like AutoShape, Web, Fontwork gallery. You can add more element by selecting the object, press CTRL + click and drag it into gallery. &lt;br /&gt;
|-&lt;br /&gt;
| GALLERY_SHOW_PRIVATE_TITLE&lt;br /&gt;
||all &lt;br /&gt;
||gallery&lt;br /&gt;
||Shows the internal gallery title, instead of the translated UI name. &lt;br /&gt;
|-&lt;br /&gt;
| HOME&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| User&amp;#039;s personal directory&lt;br /&gt;
|-&lt;br /&gt;
| LANG&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for native language, local customs and coded character set in the absence of the LC_ALL and other LC_* (LC_COLLATE, LC_CTYPE, LC_MESSAGES, ...) environment variables. This can be used by applications to determine the language to use for error messages and instructions, collating sequences, date formats, and so forth. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_ALL&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the values for all locale categories. The value of the LC_ALL environment variable has precedence over any of the other environment variables starting with LC_ (LC_COLLATE, LC_CTYPE, LC_MESSAGES, ...) and the LANG environment variable. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_COLLATE&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for character collation. It determines collation information for regular expressions and sorting, including equivalence classes and multi-character collating elements. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| LC_CTYPE&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for character handling functions, such as tolower(), toupper() and isalpha(). This environment variable determines the interpretation of sequences of bytes of text data as characters (for example, single- as opposed to multi-byte characters), the classification of characters (for example, alpha, digit, graph) and the behaviour of character classes. See environ(5) for details.&lt;br /&gt;
|- &lt;br /&gt;
| LC_MESSAGES&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| This variable determines the locale category for processing affirmative and negative responses and the language and cultural conventions in which messages should be written. See environ(5) for details.&lt;br /&gt;
|-&lt;br /&gt;
| MOZILLA_CERTIFICATE_FOLDER&lt;br /&gt;
|| unx &lt;br /&gt;
|| system&lt;br /&gt;
|| Specify where digital certificates detection should look for, override auto detection in mozilla/firefox/thunderbird&amp;#039;s user profile path.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_CALC_USE_ENGLISH_FORMULAS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| &amp;#039;&amp;#039;&amp;#039;Experimental (!)&amp;#039;&amp;#039;&amp;#039; If set to &amp;#039;&amp;#039;1&amp;#039;&amp;#039; or &amp;#039;&amp;#039;Yes&amp;#039;&amp;#039; (or any other value starting with &amp;#039;&amp;#039;y&amp;#039;&amp;#039;) the UI uses English function names and decimal separator in spreadsheet formulas, and only in formulas, cell input and displayed values are not affected. Since milestone DEV300_m2.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_FORCE_DESKTOP&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Override the desktop detection (also implies usage of the appropriate plugin, see SAL_USE_VCLPLUGIN).  Possible values: &amp;quot;kde&amp;quot; (KDE), &amp;quot;gnome&amp;quot; (Gnome), &amp;quot;none&amp;quot; (other)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ACCESSIBILITY_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value enforce accessibility bridging.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_OWN_IM_STATUS&lt;br /&gt;
|| solaris&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to disable OOo displaying an input method status window.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_NATIVE_XFONTS&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| 0 will disable OOo&amp;#039;s use of native X11 fonts&lt;br /&gt;
|-&lt;br /&gt;
| SAL_USE_VCLPLUGIN&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| The VCL plugin to use.  Possible values: &amp;quot;kde&amp;quot; (KDE) or &amp;quot;gtk&amp;quot; (Gnome) or &amp;quot;gen&amp;quot; (generic X11)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_NATIVE_ALPHA&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| When set, disables usage of the new system-level alpha rendering. Use this if e.g. your Xrender implementation is flaky.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_SYNCHRONOUS_PRINTER_DETECTION&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set to nonempty value disables synchronous printer detection. This can help on startup e.g. if your CUPS server is very slow.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DECIMALSEP_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to any value to force localized decimal separator in vcl settings.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOOPENGL&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables usage of OpenGL if set to &amp;quot;true&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_VISUAL&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Explicitly set the X11 visual id to use. See xdpyinfo(1) for information on available X11 visuals and the current default visual. There are only some very rare cases where an X11 server would offer multiple visuals and the default visual would not be suitable for use with OOo. But in these cases this variable provides a method to override the default visual for OOo.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_WHEELLINES&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Specifies the number of lines a wheel mouse event will scroll. Default is 3 lines. Setting this to something larger than 10 results in page-wise scrolling.&lt;br /&gt;
|-&lt;br /&gt;
| SystemRoot&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| OS specific variable pointing to OS System Directory. If not set external UNO communication to the OOo process will not work. This is relevant when using OOo as component in other applications, for example.&lt;br /&gt;
|-&lt;br /&gt;
| USE_XOPENIM&lt;br /&gt;
|| Solaris &lt;br /&gt;
|| ooo&lt;br /&gt;
|| Force use of XOpenIM instead of XvaOpenIM. Changes behaviour of X11 input method (used in generic and kde vcl plugin).&lt;br /&gt;
|-&lt;br /&gt;
| SAL_USEINPUTMETHOD&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| set to empty value to disable internationalized input (used in generic and kde vcl plugin).&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Environment variables for OOo developers == &lt;br /&gt;
&lt;br /&gt;
For testing, debugging, getting system information, etc.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;CFG_LOGFILE&amp;quot;&amp;gt;CFG_LOGFILE&amp;lt;/div&amp;gt;&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Is used by the sample configuration logger implementation from [[Source code directories#configmgr|configmgr]]/source/workben/logger. This logger service can be used to get diagnostic output from the configuration services. By default that logger logs to stderr. If CFG_LOGFILE is set to a file name or path, the log output is redirected there.&lt;br /&gt;
|-&lt;br /&gt;
| CFG_LOGLEVEL&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Is used by the sample configuration logger implementation (see [[#CFG_LOGFILE|CFG_LOGFILE]]) to control how much detail should be logged. See API documentation for com.sun.star.util.logging.LogLevel [http://api.openoffice.org/docs/common/ref/com/sun/star/util/logging/LogLevel.html] for available values. Only numeric values are accepted. Default is to log messages from WARNING(=900) and up. Use lower numbers for more detail.&lt;br /&gt;
|-&lt;br /&gt;
| DISABLE_SAL_DBGBOX&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disable the OSL assertion dialogs for the non-product builds&lt;br /&gt;
|-&lt;br /&gt;
| ENVCFGFLAGS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Will be deprecated or obsoleted soon! Controls an older trace output facility in [[Source code directories#configmgr|configmgr]] that is active only in non-product builds or debug versions of the library. Has a rather obscure syntax. &lt;br /&gt;
|-&lt;br /&gt;
| HELP_DEBUG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Enables additional debug facilities of the help system. In particular, if you press Shift-F1 and hover over an element in the OOo UI, the tooltip will now show you the help id of the element, and the help module where its help text is looked up.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_CALC_GENPARCLASSDOC&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If Calc&amp;#039;s sc/source/core/tool/parclass.cxx was compiled with OSL_DEBUG_LEVEL defined &amp;gt; 1 and this variable is set, generate Calc&amp;#039;s parameter classification documentation to stdout, similar to what&amp;#039;s available at http://specs.openoffice.org/calc/compatibility/cac/parameter_classification.txt  Available since SRC680_m67.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;b&amp;gt;OOO_DISABLE_RECOVERY&amp;lt;/b&amp;gt;&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo-build&lt;br /&gt;
|| If set this stops the recovery dialog prompting you as OO.o starts up - instead the recovery files are just silently accumulated.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_ENABLE_LOCALE_DATA_CHECKS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Check locale data in product builds. For a full description see comment in i18npool/source/localedata/data/locale.dtd  Available since SRC680_m109.&lt;br /&gt;
|-&lt;br /&gt;
| OOO_FORCE_SYSALLOC&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo-build&lt;br /&gt;
|| If set this disables the internal OO.o allocators, in favour of the system allocators - this means it is possible to get useful valgrind data out of a production build.&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set the file name prefix for logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE_FAST&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Keep the logging file always open for logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| PROT_REMOTE_ACTIVATE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If existing in env activate logging in bridges/remote modules&lt;br /&gt;
|-&lt;br /&gt;
| RTL_LOGFILE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Path to RTL log file name, see [http://tools.openoffice.org/profiling/profiling-howto.html profiling how-to]&lt;br /&gt;
|-&lt;br /&gt;
| UNO_ENV_LOG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| List of UNO components to be logged, see [[Uno/Spec/Log_Environment]]. Available as of {{CWS|dba32e|DEV300}}.&lt;br /&gt;
|-&lt;br /&gt;
| U_RBBIDEBUG&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| For testing the &amp;quot;rule based break iterator&amp;quot; for ICU&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIAS_DISABLE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables all AA - useful for debugging&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_BITMAPS_OPTS&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables a relatively new templatized fast-path for outputting bitmaps (setting the variable reverts to the old, slow method)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_STACKING_CHECK&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disables selecting events on the window manager&amp;#039;s window.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_GLX_XFREE4&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set enables usage of OpenGL extension on XFree &amp;gt;= 4.0 servers &lt;br /&gt;
|-&lt;br /&gt;
| SAL_FLOATWIN_NOAPPFOCUSCLOSE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to prevent floating windows from closing if the application loses focus.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_HIGHPRIORITY_REPAINT&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo &lt;br /&gt;
|| Forces quasi-synchronous paints if set. Only known use case: automated screenshots.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_IGNOREXERRORS&lt;br /&gt;
|| unix&lt;br /&gt;
|| ooo &lt;br /&gt;
|| if set X window system errors are ignored by soffice.bin (Use only if you know what you do. Handle with care!)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NO_NWF&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Set to nonempty value to disable native widget rendering. Widgets will be painted with the generic vcl methods.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_PROPERTIES&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| If set contains a bitfield activating various bug Xserver bug workarounds. Not very useful nowadays.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_RTL_ENABLED&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo &lt;br /&gt;
|| Unconditionally enable Right-To-Left layout of UI elements independently from language/script used.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_SYNCHRONIZE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Reports X server errors on the calls that made them rather than asynchronously - vital for X debugging.&lt;br /&gt;
|-&lt;br /&gt;
| STAR_RESOURCEPATH&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| resource files are searched in ${STAR_RESOURCEPATH} instead of the &amp;quot;resource&amp;quot; subdirectory next to the tools library&lt;br /&gt;
|-&lt;br /&gt;
| STAROFFICE_USERTYPE&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used in crash report handling. Valid values are &amp;quot;qa&amp;quot;, &amp;quot;developer&amp;quot; and &amp;quot;internal&amp;quot;. Will be included in crash report if set and marks the report as belonging to a certain usertype group. The only usage of that setting is that the crash report database can be asked afterwards how many reports there where of those groups as opposed to normal users.&lt;br /&gt;
|-&lt;br /&gt;
| XLSDUMPER&lt;br /&gt;
|| all&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Path to the configuration file of the XLS file dumper. The XLS file dumper is built into debug versions of OOo Calc and allows to create text dumps of every MS Excel file loaded into OOo Calc. The configuration file is part of the sc module and can be found in the CVS repository: /sc/sc/source/filter/excel/xldumper.dat. If this environment variable is set and points to an existing configuration file, the file dumper is enabled (also dependent from the settings in the configuration file). Effective from SRC680m164.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Environment variables not classified yet ==&lt;br /&gt;
&lt;br /&gt;
Remaining to be done&lt;br /&gt;
&lt;br /&gt;
An authoritative version of this list can easily be generated from [[LXR]] by searching for &amp;#039;getenv&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| all_proxy&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ALL_PROXY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| AUDIOHOST&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BMP_COLLECT_FILE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BMP_FSYS_RESOURCES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BOOST_PRG_MON_CONFIRM&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| BOOST_TEST_CATCH_SYSTEM_ERRORS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CHARSET&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| C_INCLUDE_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CLASSPATH&lt;br /&gt;
|| all&lt;br /&gt;
|| java &lt;br /&gt;
|| Path with Directories and jar files to search for .class files.&lt;br /&gt;
|-&lt;br /&gt;
| COLUMNS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMMAND_SHELL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMP_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| COMSPEC&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| Path to the batch file command interpreter eg. command.com or 4nt.exe.&lt;br /&gt;
|-&lt;br /&gt;
| CPLD_ACCESSPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_CA_BUNDLE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_DEBUG_NETRC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_MEMDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_MEMLIMIT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_TRACE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| CURL_TRACE &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DBGSV_INIT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DBGSV_LOG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| debugging logfile (can be used within debug versions of OOo)&lt;br /&gt;
|-&lt;br /&gt;
| DB_HOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DESKTOP_LAUNCH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| DYLD_LIBRARY_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| EMXSHELL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| EPMLIST&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_PROXYPORT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_PROXYSERVER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ERRORREPORT_SENDERADDRESS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_ALLOC_COUNT_MAX&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_ALLOC_TOTAL_MAX&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_DEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FT2_DEBUG_MEMORY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| FTP_PROXY&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ftp_proxy_password&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ftp_proxy_user&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GAI&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GNOME_DESKTOP_SESSION_ID&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GTK_MODULES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| GUISTDIO_KEEPRUNNING&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| HelpEx&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| http_proxy&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| HTTP_PROXY&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ICU_DATA&lt;br /&gt;
|| &lt;br /&gt;
|| OOo&lt;br /&gt;
|| libicu related&lt;br /&gt;
|-&lt;br /&gt;
| INCLUDE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| JAVA_HOME&lt;br /&gt;
|| all&lt;br /&gt;
|| java&lt;br /&gt;
|| Path to java installation.&lt;br /&gt;
|-&lt;br /&gt;
| JPEGMEM&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| KDE_FULL_SESSION&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LANGUAGE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LC_PAPER&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LD_LIBRARY_PATH&lt;br /&gt;
|| unix &lt;br /&gt;
|| system&lt;br /&gt;
|| usage of [[LD_LIBRARY_PATH]] is a bad idea&lt;br /&gt;
|-&lt;br /&gt;
| LIBRARY_PATH&lt;br /&gt;
|| unix &lt;br /&gt;
|| system&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LOCALINI&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| LOCPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MAKE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_CKCHAIN&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_ERRFILE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_FATAL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MALLOC_WARN&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| MIXERDEV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NAS_EMPTY_SIZE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NETPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| no_proxy&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NO_PROXY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| NPX_PLUGIN_PATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OLDSLOTHANDLING&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OOO_PRINT_PS_DIRECTLY&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| OPENOFFICE_MOZILLA_FIVE_HOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_LATENCY_ENV_NAME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_MIN_LATENCY_MSEC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PA_MIN_LATEWNCY_MSEC&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PATH&lt;br /&gt;
|| all&lt;br /&gt;
|| system&lt;br /&gt;
|| Directories searched for finding programs and depending on OS also shared libraries.&lt;br /&gt;
|-&lt;br /&gt;
| POSIXLY_CORRECT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PRODUCTNAME&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PRODUCTVERSION&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| ProgramFiles&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PSPRINT_ENABLE_TTF_COPYRIGHTAWARENESS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONCASEOK&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONDUMPREFS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONEXECUTABLE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONHOME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONINSPECT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONMALLOCSTATS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONOPTIMIZE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONPATH&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONSTARTUP&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONUNBUFFERED&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONVERBOSE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| PYTHONY2K&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RESOURCE_NAME&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RPMDIR&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| RSC_LANG_ISO&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_ACCESSIBILITY_ENABLE_MENU_SELECTED&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIAS_DISABLE&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature&lt;br /&gt;
|-&lt;br /&gt;
| SAL_AUTOHINTING_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature (prefer hinted scan-converted glyph shapes)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_EMBEDDED_BITMAP_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo &lt;br /&gt;
|| font related debugging feature (prefer embedded glyph bitmaps if available)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ANTIALIASED_TEXT_PRIORITY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| font related debugging feature (allows embedded glyph bitmap for monochrome text, hinted glyph for grayscaled text)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_CHANGENOTIFIER_UPDATEINTERVAL&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_DEBUG_UPDATES&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_CUPS&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Disable CUPS printing support&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DISABLE_FLOATGRAB&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Prevent grabbing the X pointer and keyboard when showing a float window (e.g. a menu)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_DO_NOT_USE_INVERT50&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Graphics card related (maybe S3 Virge) workaround for a bug triggered by card drivers, do not use the 50 percent pattern used to show docking window positions&lt;br /&gt;
|-&lt;br /&gt;
| SAL_ENABLE_FILE_LOCKING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related (a lockd must be running)&lt;br /&gt;
|-&lt;br /&gt;
| SAL_FONTPATH&lt;br /&gt;
|| unix&lt;br /&gt;
|| ooo&lt;br /&gt;
|| the SAL_FONTPATH is added to X fontpath at application start. This allows the usage of private fonts&lt;br /&gt;
|-&lt;br /&gt;
| SAL_MAXFONTHEIGHT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| some X11 servers have problems with huge native X11 fonts. Setting this environment variable can prevent the problems.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_MOUNTPROG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_SU_DO&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_MOUNT_UMOUNTPROG&lt;br /&gt;
|| &lt;br /&gt;
|| ooo &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOEXPANDFPICKER&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_TRANSPARENT_FLOATS&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SAL_XKEYBOARDGROUP&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SESSION_MANAGER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SGML_CATALOG_FILES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SHELL&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| Command shell to use&lt;br /&gt;
|-&lt;br /&gt;
| SOLAR_JAVA&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SOLARSRC&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SOLAR_USER_RTL_TEXTENCODING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SRC_ROOT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_BSERVERROOT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_ENABLE_FILE_LOCKING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related&lt;br /&gt;
|-&lt;br /&gt;
| STAR_INIROOT&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_INIROOTOLD&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_OVERRIDE_DOMAINNAME&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_PROFILE_LOCKING_DISABLED&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| file locking related&lt;br /&gt;
|-&lt;br /&gt;
| STAR_RESOURCE_LOGGING&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_SSCOMMON&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_SSOLARINI&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| STAR_STANDLST&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SWITCHAR&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SW_NOBEEP&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| SYSTEM_REGISTRY_NAME_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TCP_DEVICE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TCP_SERVER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| temp&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TEMP&lt;br /&gt;
|| win&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files.&lt;br /&gt;
|-&lt;br /&gt;
| TempFolder&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TERM&lt;br /&gt;
|| unix&lt;br /&gt;
|| system&lt;br /&gt;
|| The kind of terminal for which output is to be prepared.&lt;br /&gt;
|-&lt;br /&gt;
| THREADDEBUG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| tmp&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| TMP&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files.&lt;br /&gt;
|-&lt;br /&gt;
| TMPDIR&lt;br /&gt;
|| unx&lt;br /&gt;
|| system&lt;br /&gt;
|| A pathname of a directory made available for programs that need a place to create temporary files&lt;br /&gt;
|-&lt;br /&gt;
| UPDATER&lt;br /&gt;
|| &lt;br /&gt;
|| ooo&lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| USER&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| USER_REGISTRY_NAME_ENV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| UTAUDIODEV&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| VERBOSE_RUNTESTS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XENVIRONMENT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XLOCAL&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_CATALOG_FILES&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_DEBUG_CATALOG&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XMLLINT_INDENT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_MEM_BREAKPOINT&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XML_MEM_TRACE&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|-&lt;br /&gt;
| XMODIFIERS&lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
|| &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Deprecated environment variables ==&lt;br /&gt;
&lt;br /&gt;
Were used, but should not be used anymore.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name &lt;br /&gt;
!| OS&lt;br /&gt;
!| Belongs to&lt;br /&gt;
!| Description&lt;br /&gt;
|-&lt;br /&gt;
| SAL_WM&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to force recognition of a certain window manager. Nowadays not used anymore.&lt;br /&gt;
|-&lt;br /&gt;
| SAL_NOSEGV&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to continue after fatal errors. Not in use anymore.&lt;br /&gt;
|-&lt;br /&gt;
| XPDISPLAY&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to set the display of the Xprint server. Today this is not functional anymore.&lt;br /&gt;
|-&lt;br /&gt;
| XPRINTER&lt;br /&gt;
|| unx&lt;br /&gt;
|| ooo&lt;br /&gt;
|| Used to set the display of the Xprint server, taking priority over XPRINTER. Today this is not functional anymore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Feedback and Explanation ==&lt;br /&gt;
&lt;br /&gt;
This list is under construction. If you have information about the role of some environment variable(s), please modify this page (using &amp;quot;Edit&amp;quot; tab at the very top of this page).&lt;br /&gt;
&lt;br /&gt;
To add information about some environment variable that is listed here, please move it from the &amp;quot;not classified yet&amp;quot; table to the &amp;quot;user&amp;quot; or &amp;quot;developer&amp;quot; table (use cut and paste). Try respecting the alphabetical order. Do not hesitate to add missing environment variables nor to remove any &amp;quot;variable&amp;quot; that appears here by mistake.&lt;br /&gt;
&lt;br /&gt;
Reminder: these are runtime environment variables. Not build system ones.&lt;br /&gt;
&lt;br /&gt;
Categories tables are:&lt;br /&gt;
&lt;br /&gt;
* [[#Environment variables for users]] = users could use them or should know about them&lt;br /&gt;
* [[#Environment variables for OOo developpers]] = for developpers only (testing, debugging, getting system information, ...)&lt;br /&gt;
* [[#Environment variables not classified yet]] = remaining to be done&lt;br /&gt;
* [[#Deprecated environment variables]] = were used, but should not be used anymore&lt;br /&gt;
&lt;br /&gt;
Operating System (&amp;quot;OS&amp;quot;) field is:&lt;br /&gt;
&lt;br /&gt;
* (empty) = not known yet&lt;br /&gt;
* linux = GNU/Linux&lt;br /&gt;
* mac = Mac OS X&lt;br /&gt;
* solaris = Solaris&lt;br /&gt;
* other = other UNIX-like system&lt;br /&gt;
* win = Microsoft Windows&lt;br /&gt;
* unx = linux + mac + solaris + other&lt;br /&gt;
* all = unx + win&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Belongs to&amp;quot; field is:&lt;br /&gt;
&lt;br /&gt;
* (empty) = not known yet&lt;br /&gt;
* ooo = introduced by OOo&lt;br /&gt;
* system = belongs to the underlying operating system(s)&lt;br /&gt;
&lt;br /&gt;
The original list of the environment variables was extracted from the OOo sources.&lt;br /&gt;
&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=236658</id>
		<title>Source code directories</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=236658"/>
		<updated>2015-09-01T20:44:40Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes the various directories in the source code for OpenOffice.org till version 3.3. &lt;br /&gt;
&lt;br /&gt;
Please note that only the current directory structure are described. &lt;br /&gt;
&lt;br /&gt;
If you want to know the build order of the modules see the [[Module Build Order]]. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Project &amp;lt;ref&amp;gt;Project hosting this module.&amp;lt;/ref&amp;gt;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Agg]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| antigrain geometry lib (from http://www.antigrain.com/), a software renderer used in canvas&lt;br /&gt;
|-&lt;br /&gt;
| [[Animations]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Containers for the css::animation UNO API, used in slideshow and sd&lt;br /&gt;
|-&lt;br /&gt;
| [[Apple remote]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| Does contain the low level code for the Apple Remote on Mac OS X. See [http://wiki.services.openoffice.org/wiki/Mac_OS_X_Porting_-_Apple_Remote_implementation Apple Remote Implementation ]&lt;br /&gt;
|-&lt;br /&gt;
| [[Autodoc]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| html pages from c++, java, idl inline documentation&lt;br /&gt;
|-&lt;br /&gt;
| [[Automation]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Hook for QA automation (TestTool)&lt;br /&gt;
|-&lt;br /&gt;
| [[Avmedia]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Audio/Video media implementation - requires a working Java Media Framework (JMF) &lt;br /&gt;
*currently can&amp;#039;t play streams only file-system URIs anyway.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Basctl]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| controls and dialogs - basic&lt;br /&gt;
|-&lt;br /&gt;
| [[Basebmp]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| algorithms and data types for bitmap graphics (e.g. line and fill polygon scan conversion, bitmap format iterators, and a SalGraphics-compatible software renderer)&lt;br /&gt;
|-&lt;br /&gt;
| [[Basegfx]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| algorithms and data types for graphics (e.g. polygons, vectors, matrices and the like - see that used in canvas)&lt;br /&gt;
|-&lt;br /&gt;
| [[Basic]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| basic interpreter and TestTool GUI&lt;br /&gt;
|-&lt;br /&gt;
| [[OOoBean|bean]] &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| office bean&lt;br /&gt;
|-&lt;br /&gt;
| [[Beanshell]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| java interpreter - so you can write java in command shell, &lt;br /&gt;
*interactive java -- good for prototyping /macros &lt;br /&gt;
*from http://www.beanshell.org/ with some patches&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Berkeleydb]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library. http://www.sleepycat.com/products/db.shtml simple db - used for search in help and galleries&lt;br /&gt;
|-&lt;br /&gt;
| [[Framework/Modules/binfilter|binfilter]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| [[StarOffice]] 5.2 file format filters, stripped down (not perfectly) from the SO 5.2 code base. This is huge - avoid building it by giving &amp;#039;--disable-binfilter&amp;#039; on the configure line.&lt;br /&gt;
|-&lt;br /&gt;
| [[Boost]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external (C++ template) library: http://boost.org/native&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/bridges|bridges]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| Bridges from various C++ ABIs, Java JNI, MS .Net to [[Uno/Binary|Binary Uno]]. Also implementation of the [[Uno]] Remote Protocol. And in ooo-build a bridge from Mono to [[Uno]] and back.&lt;br /&gt;
|-&lt;br /&gt;
| [[Canvas]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| new canvas implementation to improve rendering, various backends implement the new XCanvas API eg. cairo / DirectX&lt;br /&gt;
|-&lt;br /&gt;
| [[Chart2]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| new, improved chart implementation, arrived in OO.o 2.3&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/CLI/Modules/cli ure|cli_ure]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ommon &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;nfrastructure &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;untime &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;nvironment -- support assemblies and tools for the MS .Net (and Mono) [[Uno]] binding.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/codemaker|codemaker]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno]] interface declaration/stub generators for [[Uno/Cpp|C++ Uno]] (headers), [[Uno/Java|Java Uno]] (class files), [[Uno/CLI|CLI (.Net / Mono) Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;configmgr&amp;quot;&amp;gt;[[Configmgr]]&amp;lt;/div&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| the configuration database - UNO services and some tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Connectivity]] &lt;br /&gt;
| [http://dba.openoffice.org/ dba] &lt;br /&gt;
| database pieces, drivers, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Cosv]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| &amp;quot;Common Services,&amp;quot; part of [[Autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Cppcanvas]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| helper C++ classes for canvas, plus a GDIMetaFile-to-XCanvas converter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/CPPU|cppu]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno/Binary|Binary (read &amp;#039;C&amp;#039;) Uno]] runtime.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Modules/CPPUhelper|cppuhelper]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno/Cpp|C++ Uno]] runtime, additionally helpers e.g. templates for implementing Uno components, bootstrapping stuff etc. - get Uno up &amp;amp;amp; running.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/CPPUtools|cpputools]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno/Binary|Binary Uno]] tools, like uno.exe, regcomp etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Crashrep]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Crash reporting tool&lt;br /&gt;
|-&lt;br /&gt;
| [[Curl]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library [http://curl.haxx.se curl] (a URL manipulation engine)&lt;br /&gt;
|-&lt;br /&gt;
| [[Dbaccess]] &lt;br /&gt;
| [http://dba.openoffice.org/ dba] &lt;br /&gt;
| data base access tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Default images]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| all images and resources&lt;br /&gt;
|-&lt;br /&gt;
| [[Desktop]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| what used to be the desktop in SO5 - now the binary&lt;br /&gt;
|-&lt;br /&gt;
| [[Dmake]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| the dmake tool itself, built by running &amp;#039;bootstrap&amp;#039; after configure&lt;br /&gt;
|-&lt;br /&gt;
| [[Dtrans]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| clipboard abstraction - data transfer&lt;br /&gt;
|-&lt;br /&gt;
| [[Embeddedobj]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| Embedding objects&lt;br /&gt;
|-&lt;br /&gt;
| [[Embedserv]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| Embed OOo through OLE2&lt;br /&gt;
|-&lt;br /&gt;
| [[Epm]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| enhanced package manager- nasty hack for packaging &lt;br /&gt;
*not useful - but default build uses, every linux packager disables this&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Eventattacher]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| how basic handles events -&lt;br /&gt;
|-&lt;br /&gt;
| [[Expat]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library with added UCS2 support, ... simple SAX parser&lt;br /&gt;
|-&lt;br /&gt;
| [[Extensions (source code module)|extensions]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| browser plugin, activex control, scanner bits, OOo Improvement program and more&lt;br /&gt;
|-&lt;br /&gt;
| [[External]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| placeholder for extra code needed to build&lt;br /&gt;
|-&lt;br /&gt;
| [[Extras]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| templates, clipart galleries, palettes, symbol font etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Fileaccess]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| tiny: implements XSimpleFileAccess interface - that makes the UCB interfaces actually usable (via [[Uno]]) and more intuitive.&lt;br /&gt;
|-&lt;br /&gt;
| [[Filter]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| filter registration and configuration, some graphics filters, XML based filters, basic code for Worxelpoint filters&lt;br /&gt;
|-&lt;br /&gt;
| [[Forms]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| embedded forms control and pieces (design forms in documents, fields and database driven)&lt;br /&gt;
|-&lt;br /&gt;
| [[Fpicker]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| native file pickers for Unix and Windows (file open dialog) GTK+, KDE, Windows&lt;br /&gt;
|-&lt;br /&gt;
| [[Framework]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| UI rewrite, toolbars, menus, [[Uno]] stuff, including accelerators &amp;amp;amp; interaction, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Goodies]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| graphics filters, 3d and 2d graqphics pieces - removed after OOo 3.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Helpcontent2]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| for OpenOffice.org 2 - english + other languages help content&lt;br /&gt;
|-&lt;br /&gt;
| [[Hsqldb]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library. http://hsqldb.org/ Java database engine. Default database format for OpenOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| [[Hwpfilter]] &lt;br /&gt;
| [http://sw.openoffice.org/ sw] &lt;br /&gt;
| filter for a word processor file format popular in Korea. (Hangul Word Processor)&lt;br /&gt;
|-&lt;br /&gt;
| [[I18npool]] &lt;br /&gt;
| [http://l10n.openoffice.org/ l10n] &lt;br /&gt;
| internationalization, counting, calendaring, complex text layout&lt;br /&gt;
|-&lt;br /&gt;
| [[I18nutil]] &lt;br /&gt;
| [http://l10n.openoffice.org/ l10n] &lt;br /&gt;
| small bits of internationalization&lt;br /&gt;
|-&lt;br /&gt;
| [[Icc]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| External library used to build the sRGB profile for PDF/A-1a export. http://www.color.org/ with patches. Generated and used at build time only. More details can be found in icc/README.&lt;br /&gt;
|-&lt;br /&gt;
| [[ICU|icu]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library. International Components for Unicode, http://www.icu-project.org/ with patches.&lt;br /&gt;
|-&lt;br /&gt;
| [[Idl]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| SvIDL Compiler&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/idlc|idlc]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| The [[Uno/Specifications/IDL|Uno IDL]] compiler.&lt;br /&gt;
|-&lt;br /&gt;
| [[Instsetoo native]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| install set for oo, native installers -&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Modules/IO|io]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Provides socket and pipe acceptors / connectors, as well as text input / output streams.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Modules/javaunohelper|javaunohelper]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno/Java|Java Uno]] components implementation helpers.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Modules/JURT|jurt]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;un&amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;ime - Basically [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Jvmaccess]], [[Jvmfwk]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| wrappers so you can use all the Java Runtime Environments with their slightly incompatible APIs with ease. Hah.&lt;br /&gt;
|-&lt;br /&gt;
| [[Libwpd]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library. Not modified. http://libwpd.sourceforge.net/ wordperfect filter - SAX api - emits callbacks when things happen&lt;br /&gt;
|-&lt;br /&gt;
| [[Libxmlsec]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library. (Still) heavily patched. http://www.aleksey.com/xmlsec/ to do XML signing, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Lingucomponent]] &lt;br /&gt;
| [http://lingucomponent.openoffice.org/ lingucomponent] &lt;br /&gt;
| spellcheck, hyphenator, thesaurus, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[Linguistic]] &lt;br /&gt;
| [http://sw.openoffice.org/ sw] &lt;br /&gt;
| This component manages all registered linguistic module implementations for spellchecker, hyphenator and thesaurus.&lt;br /&gt;
|-&lt;br /&gt;
| [[Lpsolve]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library that provides a mixed integer linear programming (MILP) solver, see http://lpsolve.sourceforge.net&lt;br /&gt;
|-&lt;br /&gt;
| [[MathMLDTD]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| MathMLDTD to implement XML Math format, see http://www.w3.org/TR/REC-MathML&lt;br /&gt;
|-&lt;br /&gt;
| [[Msfontextract]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library. http://www.kyz.uklinux.net/libmspack/ for use in FontOOo (unpacking the downloaded Microsoft fonts (webfont); removed after 3.&lt;br /&gt;
|-&lt;br /&gt;
| [[Nas]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| The Network Audio System (NAS), An Audio Protocol For Networks. See http://radscan.com/nas.html&lt;br /&gt;
|-&lt;br /&gt;
| [[Neon]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| web library to help deal with WebDAV or other protocols&lt;br /&gt;
|-&lt;br /&gt;
| [[Np sdk]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| Netscape Plugin SDK. Header to build Mozilla plugins.&lt;br /&gt;
|-&lt;br /&gt;
| [[Odk]] &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| office development kit - implements the first step on the way to the OpenOffice.org SDK tarball&lt;br /&gt;
|-&lt;br /&gt;
| [[Offapi]] &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| all of the [[Uno/Specification/IDL|Uno IDL]] files except those in [[#udkapi|udkapi]] - i.e. the interfaces that are specific to the OpenOffice.org application.&lt;br /&gt;
|-&lt;br /&gt;
| [[Officecfg]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| the schema and default settings for the [[#configmgr|OpenOffice.org configuration database]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Offuh]] &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| Tiny module to build the generate the [[Uno/Cpp|C++ Uno]] headers.&lt;br /&gt;
|-&lt;br /&gt;
| [[Ooo custom images]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| themes, custom themes&lt;br /&gt;
|-&lt;br /&gt;
| [[OOX|oox]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [[OpenXML]] parser&lt;br /&gt;
|-&lt;br /&gt;
| [[Package]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| Reading and writing zips&lt;br /&gt;
|-&lt;br /&gt;
| [[Padmin]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| printer administration dialog - used lpr - obsolete with CUPS and fontconfig, but still used for some things&lt;br /&gt;
|-&lt;br /&gt;
| [[Postprocess]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Postprocessing and checking of files delivered by other modules. This module has to be the last one before creating install sets in module &amp;#039;instset_native&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Psprint]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| postscript print - unix only - implements font discovery, interface to CUPS / lpr, query and basic PS - dump PS on print - actual PS rendering inside vcl&amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| [[Psprint config]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| ppds for use by psprint when not using CUPS&lt;br /&gt;
|-&lt;br /&gt;
| [[Pyuno]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno]] binding for python&lt;br /&gt;
|-&lt;br /&gt;
| [[QadevOOo]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| qa testsuite&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/rdbmaker|rdbmaker]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| makes registries for openoffice for storing type data, etc./?&lt;br /&gt;
|-&lt;br /&gt;
| [[Readlicense oo]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| reading oo license when starting up&lt;br /&gt;
|-&lt;br /&gt;
| [[Regexp]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| regular expression matching&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/registry|registry]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| UNO services and types registry access&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/remotebridges|remotebridges]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno]] services dealing with interprocess bridges.&lt;br /&gt;
|-&lt;br /&gt;
| [[Rhino]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| java script engine/interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Modules/ridljar|ridljar]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| Generators [[Uno/Java|Java Uno]] types (like [[Offuh]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[Rsc]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| resource compiler - turns resource descriptions src and hrc files scattered throughout.&lt;br /&gt;
|-&lt;br /&gt;
| [[Porting/Modules/SAL|sal]] &lt;br /&gt;
| [http://porting.openoffice.org porting] &lt;br /&gt;
| system abstraction layer - rtl, osl and sal (rtl - platform independent strings, osl - platform specific stuff, threads, dynamic loading, process, ipc, etc.). Exports only C API and some inline-methods-only C++ API&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Modules/SALhelper|salhelper]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| C++ helpers to make use of sal easier&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Modules/sandbox|sandbox]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Generic sandboxing, e.g. used for Java applet embedding stuff. Totally useless without a Sun JDK. Removed after 3.2.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Sane]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external scanner library&lt;br /&gt;
|-&lt;br /&gt;
| [[Sax]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| wrapper around expat using [[Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Sc]] &lt;br /&gt;
| [http://sc.openoffice.org/ sc] &lt;br /&gt;
| calc - the Spreadsheet core&lt;br /&gt;
|-&lt;br /&gt;
| [[Scaddins]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| extra functions for calc&lt;br /&gt;
|-&lt;br /&gt;
| [[Scp2]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| script particles - being rewritten for oo2. all of installation was driven by starbasic - this is now in instsetoo-native&lt;br /&gt;
|-&lt;br /&gt;
| [[Scripting]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| scripting framework - for java, python, etc. to play together and uses UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[Sd]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Impress and Draw components. Think of Impress as hack on top of Draw.&lt;br /&gt;
|-&lt;br /&gt;
| [[Sdext]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Extensions for the Impress and Draw applications.&lt;br /&gt;
|-&lt;br /&gt;
| [[Setup-native]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| &amp;amp;nbsp; ?&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Sfx2]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| Some gui code; list of documents open would be tracked - raw C++ code; gutsy core of document management and loading.&lt;br /&gt;
|-&lt;br /&gt;
| [[Shell]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| system helpers - launching URI, recently used files, system integration, external mailer support, gconf integration etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Slideshow]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| new impress slideshow engine in OO.o 2.0&lt;br /&gt;
|-&lt;br /&gt;
| [[Smoketestoo native]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| Test code to launch each component for a smoke test.&lt;br /&gt;
|-&lt;br /&gt;
| [[Sndfile]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| soundfile - library for loading all kinds of sound - external lib&amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| [[Solenv]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| make and build infrastructure - solar (think: Sun or Star Division) environment&lt;br /&gt;
|-&lt;br /&gt;
| [[Soltools]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| all sorts of build tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Sot]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Code to access files based on OLE&amp;amp;nbsp;Storages and get the bits out of them&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Starmath]] &lt;br /&gt;
| [http://sw.openoffice.org/ sw] &lt;br /&gt;
| formula editor&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/stlport|stlport]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library. STL implementation, from the days when compilers had crappy implementations.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/STOC|stoc]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| Core Components for [[Uno/Binary|Binary Uno]] (e.g. registry access, reflection, introspection).&lt;br /&gt;
|-&lt;br /&gt;
| [[Store]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Storage implementations, used by [[Uno]] registries.&lt;br /&gt;
|-&lt;br /&gt;
| [[Svtools]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| Common dialogs, file and print dialogs, wizards, vcl filters, lots of helper code&lt;br /&gt;
|-&lt;br /&gt;
| [[Svx]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Graphics related helper code - xoutdev - rendering - This is where a lot of work would happen to move to the canvas. svdraw - transparent gradient stuff. Lot of the Draw and Impress code is in this module. Part if the PPT binary importer is in there too (moved to filter module after 3.2)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Writer|Sw]]&lt;br /&gt;
| [http://sw.openoffice.org/ sw] &lt;br /&gt;
| writer - the word processing core&lt;br /&gt;
|-&lt;br /&gt;
| [[Sysui]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| .desktop files for different distros&lt;br /&gt;
|-&lt;br /&gt;
| [[Toolkit]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| abstract windowing thing- [[Uno]] implementations of windows stuff - so can be used from basic&lt;br /&gt;
|-&lt;br /&gt;
| [[Tools]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| predates sal - string etc. functions, URL manipulation, stream stuff, polygons, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Transex3]] &lt;br /&gt;
| [http://l10n.openoffice.org/ l10n] &lt;br /&gt;
| translation tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Twain]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows scanner support&lt;br /&gt;
|-&lt;br /&gt;
| [[Ucb]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;niversal &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ontent &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;roker (has ucp) which do things like convert files to strings in content broker world.&lt;br /&gt;
|-&lt;br /&gt;
| [[Ucbhelper]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| C++ wrappers to help make using content providers easy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;udkapi&amp;quot;&amp;gt;[[Udkapi]]&amp;lt;/div&amp;gt; &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| URE API definition - [[Uno/Specification/IDL|Uno IDL]] files&lt;br /&gt;
|-&lt;br /&gt;
| [[Udm]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| part of [[Autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[UnixODBC]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[UnoControls]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| separate process and thread for progress bars, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Unoil]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk][http://api.openoffice.org/ api] &lt;br /&gt;
| Like offuh for [[Uno/Java|Java Uno]] - Generates Java class files from OOo application Uno types.&lt;br /&gt;
|-&lt;br /&gt;
| [[Unotools]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| helpers for C++ use of UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[Unoxml]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| [[Uno]] wrappers for XML services&lt;br /&gt;
|-&lt;br /&gt;
| [[Ure]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| beginnings of standalone UNO distribution foo.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uui]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| An Interaction Handler (not only) for the UCB. It uses VCL to visualize and handle interaction requests, for eg. authentication dialogs for file operations.&lt;br /&gt;
|-&lt;br /&gt;
| [[Vcl]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| base windowing toolkit abstraction Visual Class Libraries, and graphical output layer - includes backends for unix &amp;amp;amp; Win32&lt;br /&gt;
|-&lt;br /&gt;
| [[Vigra]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Template framework from [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ here]. VIGRA stands for &amp;quot;Vision with Generic Algorithms&amp;quot;. Used from [[Basebmp]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Vos]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| (Virtual Object System) - deprecated but still used, lots of sal like stuff&lt;br /&gt;
|-&lt;br /&gt;
| [[Wizards]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| java wizards for db setup, importing, tutorials, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Writerperfect]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| word perfect filter - wrapper for libwpd&lt;br /&gt;
|-&lt;br /&gt;
| [[X11 extensions]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| headers for XRender support&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmerge]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| The XMerge SDK provides a Java-based framework for converting documents between different formats using conversion plugins to read and write each format. See http://xml.openoffice.org/xmerge&lt;br /&gt;
|-&lt;br /&gt;
| [[Xml2cmp]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Comes with the OO SDK. xml2cmp is launched in general by a makefile to extract types from a xml file&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmlhelp]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Help reader and viewer for online help&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmloff]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| OpenDocument import / export filter.&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmlscript]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Implements XML dialogs serialization.&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmlsecurity]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| Document signing&lt;br /&gt;
|-&lt;br /&gt;
| [[Accessibility]] &lt;br /&gt;
| [http://ui.openoffice.org/accessibility/ Accessibility] &lt;br /&gt;
| Accessibility for OpenOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| [[Afms]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Apache-commons]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External Java libraries; used for logging and http/https access in Extensions&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Bitstream vera fonts]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Cairo]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Comphelper]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Some helper classes for low level work&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Cppunit]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Obsolete: unit testing now using Googletest. [https://wiki.openoffice.org/wiki/Googletest Info]&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Dictionaries]] &lt;br /&gt;
| [http://lingucomponent.openoffice.org/ Lingucomponent] &lt;br /&gt;
| Default installed dictionaries in extension format&lt;br /&gt;
|-&lt;br /&gt;
| [[Drawinglayer]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[External images]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Fondu]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Formula]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Graphite]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Guw]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Obsolete&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Hunspell]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Hunspell as dictionary support (external library)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Hyphen]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Hyphenator (external library)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Javainstaller2]] &lt;br /&gt;
| [http://installation.openoffice.org/ Installation] &lt;br /&gt;
| The Java installer for UNIX and Linux&lt;br /&gt;
|-&lt;br /&gt;
| [[Jfreereport]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External Java library providing basic functionality for the report builder&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Jpeg]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[L10n]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Module containing all localization content&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Libegg]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Libtextcat]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External library providing functionality to guess the language of a text&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Libxml2]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Libxslt]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Lucene]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Migrationanalysis]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Moz]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Nss]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Containes the security libraries which are also part of moz. However nss is meant to be more current.&lt;br /&gt;
|-&lt;br /&gt;
| [[O3tl]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Oovbaapi]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Oowintool]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Openssl]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Packimages]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Module that generates packed images lists according to the lists generated from the source code&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Python]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Redland]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Reportbuilder]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Reportdesign]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Saxon]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Sccomp]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Soldep]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External tool that can generate dependency diagrams from the various build.lst files&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Stax]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Swext]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Writer extensions (currently only MediaWiki Extension)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Testautomation]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| All test scripts for the GUI Testtool&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Testshl2]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Library utilizing cppunit to implement a unit test framework&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Testtools]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Some tests for UNO&amp;amp;nbsp;bridges and language bindings&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Tomcat]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External Java library, used by Apache-Commons&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Unodevtools]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Writer|Writerfilter]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Library containing the docx import filter (and later also doc and rtf import filters)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Xpdf]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Xsltml]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Zlib]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;solver&amp;lt;/code&amp;gt; is not a module, it is the output tree of the build that is created automatically once a build is started. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Source_directories]] [[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=236657</id>
		<title>Source code directories</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Source_code_directories&amp;diff=236657"/>
		<updated>2015-09-01T20:43:10Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes the various directories in the source code for OpenOffice.org till version 3.3. &lt;br /&gt;
&lt;br /&gt;
Please note that only the current directory structure are described. &lt;br /&gt;
&lt;br /&gt;
If you want to know the build order of the modules see the [[Module Build Order]]. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable sortable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Project &amp;lt;ref&amp;gt;Project hosting this module.&amp;lt;/ref&amp;gt;&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| [[Agg]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| antigrain geometry lib (from http://www.antigrain.com/), a software renderer used in canvas&lt;br /&gt;
|-&lt;br /&gt;
| [[Animations]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Containers for the css::animation UNO API, used in slideshow and sd&lt;br /&gt;
|-&lt;br /&gt;
| [[Apple remote]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| Does contain the low level code for the Apple Remote on Mac OS X. See [http://wiki.services.openoffice.org/wiki/Mac_OS_X_Porting_-_Apple_Remote_implementation Apple Remote Implementation ]&lt;br /&gt;
|-&lt;br /&gt;
| [[Autodoc]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| html pages from c++, java, idl inline documentation&lt;br /&gt;
|-&lt;br /&gt;
| [[Automation]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Hook for QA automation (TestTool)&lt;br /&gt;
|-&lt;br /&gt;
| [[Avmedia]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Audio/Video media implementation - requires a working Java Media Framework (JMF) &lt;br /&gt;
*currently can&amp;#039;t play streams only file-system URIs anyway.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Basctl]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| controls and dialogs - basic&lt;br /&gt;
|-&lt;br /&gt;
| [[Basebmp]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| algorithms and data types for bitmap graphics (e.g. line and fill polygon scan conversion, bitmap format iterators, and a SalGraphics-compatible software renderer)&lt;br /&gt;
|-&lt;br /&gt;
| [[Basegfx]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| algorithms and data types for graphics (e.g. polygons, vectors, matrices and the like - see that used in canvas)&lt;br /&gt;
|-&lt;br /&gt;
| [[Basic]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| basic interpreter and TestTool GUI&lt;br /&gt;
|-&lt;br /&gt;
| [[OOoBean|bean]] &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| office bean&lt;br /&gt;
|-&lt;br /&gt;
| [[Beanshell]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| java interpreter - so you can write java in command shell, &lt;br /&gt;
*interactive java -- good for prototyping /macros &lt;br /&gt;
*from http://www.beanshell.org/ with some patches&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Berkeleydb]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library. http://www.sleepycat.com/products/db.shtml simple db - used for search in help and galleries&lt;br /&gt;
|-&lt;br /&gt;
| [[Framework/Modules/binfilter|binfilter]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| [[StarOffice]] 5.2 file format filters, stripped down (not perfectly) from the SO 5.2 code base. This is huge - avoid building it by giving &amp;#039;--disable-binfilter&amp;#039; on the configure line.&lt;br /&gt;
|-&lt;br /&gt;
| [[Boost]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external (C++ template) library: http://boost.org/native&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/bridges|bridges]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| Bridges from various C++ ABIs, Java JNI, MS .Net to [[Uno/Binary|Binary Uno]]. Also implementation of the [[Uno]] Remote Protocol. And in ooo-build a bridge from Mono to [[Uno]] and back.&lt;br /&gt;
|-&lt;br /&gt;
| [[Canvas]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| new canvas implementation to improve rendering, various backends implement the new XCanvas API eg. cairo / DirectX&lt;br /&gt;
|-&lt;br /&gt;
| [[Chart2]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| new, improved chart implementation, arrived in OO.o 2.3&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/CLI/Modules/cli ure|cli_ure]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ommon &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;nfrastructure &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;untime &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;nvironment -- support assemblies and tools for the MS .Net (and Mono) [[Uno]] binding.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/codemaker|codemaker]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno]] interface declaration/stub generators for [[Uno/Cpp|C++ Uno]] (headers), [[Uno/Java|Java Uno]] (class files), [[Uno/CLI|CLI (.Net / Mono) Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;configmgr&amp;quot;&amp;gt;[[Configmgr]]&amp;lt;/div&amp;gt; &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| the configuration database - UNO services and some tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Connectivity]] &lt;br /&gt;
| [http://dba.openoffice.org/ dba] &lt;br /&gt;
| database pieces, drivers, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Cosv]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| &amp;quot;Common Services,&amp;quot; part of [[Autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Cppcanvas]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| helper C++ classes for canvas, plus a GDIMetaFile-to-XCanvas converter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/CPPU|cppu]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno/Binary|Binary (read &amp;#039;C&amp;#039;) Uno]] runtime.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Modules/CPPUhelper|cppuhelper]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno/Cpp|C++ Uno]] runtime, additionally helpers e.g. templates for implementing Uno components, bootstrapping stuff etc. - get Uno up &amp;amp;amp; running.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/CPPUtools|cpputools]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno/Binary|Binary Uno]] tools, like uno.exe, regcomp etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Crashrep]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Crash reporting tool&lt;br /&gt;
|-&lt;br /&gt;
| [[Curl]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library [http://curl.haxx.se curl] (a URL manipulation engine)&lt;br /&gt;
|-&lt;br /&gt;
| [[Dbaccess]] &lt;br /&gt;
| [http://dba.openoffice.org/ dba] &lt;br /&gt;
| data base access tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Default images]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| all images and resources&lt;br /&gt;
|-&lt;br /&gt;
| [[Desktop]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| what used to be the desktop in SO5 - now the binary&lt;br /&gt;
|-&lt;br /&gt;
| [[Dmake]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| the dmake tool itself, built by running &amp;#039;bootstrap&amp;#039; after configure&lt;br /&gt;
|-&lt;br /&gt;
| [[Dtrans]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| clipboard abstraction - data transfer&lt;br /&gt;
|-&lt;br /&gt;
| [[Embeddedobj]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| Embedding objects&lt;br /&gt;
|-&lt;br /&gt;
| [[Embedserv]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| Embed OOo through OLE2&lt;br /&gt;
|-&lt;br /&gt;
| [[Epm]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| enhanced package manager- nasty hack for packaging &lt;br /&gt;
*not useful - but default build uses, every linux packager disables this&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| [[Eventattacher]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| how basic handles events -&lt;br /&gt;
|-&lt;br /&gt;
| [[Expat]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library with added UCS2 support, ... simple SAX parser&lt;br /&gt;
|-&lt;br /&gt;
| [[Extensions (source code module)|extensions]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| browser plugin, activex control, scanner bits, OOo Improvement program and more&lt;br /&gt;
|-&lt;br /&gt;
| [[External]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| placeholder for extra code needed to build&lt;br /&gt;
|-&lt;br /&gt;
| [[Extras]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| templates, clipart galleries, palettes, symbol font etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Fileaccess]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| tiny: implements XSimpleFileAccess interface - that makes the UCB interfaces actually usable (via [[Uno]]) and more intuitive.&lt;br /&gt;
|-&lt;br /&gt;
| [[Filter]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| filter registration and configuration, some graphics filters, XML based filters, basic code for Worxelpoint filters&lt;br /&gt;
|-&lt;br /&gt;
| [[Forms]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| embedded forms control and pieces (design forms in documents, fields and database driven)&lt;br /&gt;
|-&lt;br /&gt;
| [[Fpicker]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| native file pickers for Unix and Windows (file open dialog) GTK+, KDE, Windows&lt;br /&gt;
|-&lt;br /&gt;
| [[Framework]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| UI rewrite, toolbars, menus, [[Uno]] stuff, including accelerators &amp;amp;amp; interaction, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Goodies]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| graphics filters, 3d and 2d graqphics pieces - removed after OOo 3.2&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Helpcontent2]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| for OpenOffice.org 2 - english + other languages help content&lt;br /&gt;
|-&lt;br /&gt;
| [[Hsqldb]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library. http://hsqldb.org/ Java database engine. Default database format for OpenOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| [[Hwpfilter]] &lt;br /&gt;
| [http://sw.openoffice.org/ sw] &lt;br /&gt;
| filter for a word processor file format popular in Korea. (Hangul Word Processor)&lt;br /&gt;
|-&lt;br /&gt;
| [[I18npool]] &lt;br /&gt;
| [http://l10n.openoffice.org/ l10n] &lt;br /&gt;
| internationalization, counting, calendaring, complex text layout&lt;br /&gt;
|-&lt;br /&gt;
| [[I18nutil]] &lt;br /&gt;
| [http://l10n.openoffice.org/ l10n] &lt;br /&gt;
| small bits of internationalization&lt;br /&gt;
|-&lt;br /&gt;
| [[Icc]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| External library used to build the sRGB profile for PDF/A-1a export. http://www.color.org/ with patches. Generated and used at build time only. More details can be found in icc/README.&lt;br /&gt;
|-&lt;br /&gt;
| [[ICU|icu]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external library. International Components for Unicode, http://www.icu-project.org/ with patches.&lt;br /&gt;
|-&lt;br /&gt;
| [[Idl]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| SvIDL Compiler&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/idlc|idlc]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| The [[Uno/Specifications/IDL|Uno IDL]] compiler.&lt;br /&gt;
|-&lt;br /&gt;
| [[Instsetoo native]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| install set for oo, native installers -&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Modules/IO|io]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Provides socket and pipe acceptors / connectors, as well as text input / output streams.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Modules/javaunohelper|javaunohelper]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno/Java|Java Uno]] components implementation helpers.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Modules/JURT|jurt]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;J&amp;#039;&amp;#039;&amp;#039;ava &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;no &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;un&amp;#039;&amp;#039;&amp;#039;t&amp;#039;&amp;#039;&amp;#039;ime - Basically [[Uno/Java|Java Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Jvmaccess]], [[Jvmfwk]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| wrappers so you can use all the Java Runtime Environments with their slightly incompatible APIs with ease. Hah.&lt;br /&gt;
|-&lt;br /&gt;
| [[Libwpd]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library. Not modified. http://libwpd.sourceforge.net/ wordperfect filter - SAX api - emits callbacks when things happen&lt;br /&gt;
|-&lt;br /&gt;
| [[Libxmlsec]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library. (Still) heavily patched. http://www.aleksey.com/xmlsec/ to do XML signing, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Lingucomponent]] &lt;br /&gt;
| [http://lingucomponent.openoffice.org/ lingucomponent] &lt;br /&gt;
| spellcheck, hyphenator, thesaurus, ...&lt;br /&gt;
|-&lt;br /&gt;
| [[Linguistic]] &lt;br /&gt;
| [http://sw.openoffice.org/ sw] &lt;br /&gt;
| This component manages all registered linguistic module implementations for spellchecker, hyphenator and thesaurus.&lt;br /&gt;
|-&lt;br /&gt;
| [[Lpsolve]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library that provides a mixed integer linear programming (MILP) solver, see http://lpsolve.sourceforge.net&lt;br /&gt;
|-&lt;br /&gt;
| [[MathMLDTD]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| MathMLDTD to implement XML Math format, see http://www.w3.org/TR/REC-MathML&lt;br /&gt;
|-&lt;br /&gt;
| [[Msfontextract]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library. http://www.kyz.uklinux.net/libmspack/ for use in FontOOo (unpacking the downloaded Microsoft fonts (webfont); removed after 3.&lt;br /&gt;
|-&lt;br /&gt;
| [[Nas]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| The Network Audio System (NAS), An Audio Protocol For Networks. See http://radscan.com/nas.html&lt;br /&gt;
|-&lt;br /&gt;
| [[Neon]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| web library to help deal with WebDAV or other protocols&lt;br /&gt;
|-&lt;br /&gt;
| [[Np sdk]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| Netscape Plugin SDK. Header to build Mozilla plugins.&lt;br /&gt;
|-&lt;br /&gt;
| [[Odk]] &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| office development kit - implements the first step on the way to the OpenOffice.org SDK tarball&lt;br /&gt;
|-&lt;br /&gt;
| [[Offapi]] &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| all of the [[Uno/Specification/IDL|Uno IDL]] files except those in [[#udkapi|udkapi]] - i.e. the interfaces that are specific to the OpenOffice.org application.&lt;br /&gt;
|-&lt;br /&gt;
| [[Officecfg]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| the schema and default settings for the [[#configmgr|OpenOffice.org configuration database]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Offuh]] &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| Tiny module to build the generate the [[Uno/Cpp|C++ Uno]] headers.&lt;br /&gt;
|-&lt;br /&gt;
| [[Ooo custom images]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| themes, custom themes&lt;br /&gt;
|-&lt;br /&gt;
| [[OOX|oox]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| [[OpenXML]] parser&lt;br /&gt;
|-&lt;br /&gt;
| [[Package]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| Reading and writing zips&lt;br /&gt;
|-&lt;br /&gt;
| [[Padmin]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| printer administration dialog - used lpr - obsolete with CUPS and fontconfig, but still used for some things&lt;br /&gt;
|-&lt;br /&gt;
| [[Postprocess]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Postprocessing and checking of files delivered by other modules. This module has to be the last one before creating install sets in module &amp;#039;instset_native&amp;#039;.&lt;br /&gt;
|-&lt;br /&gt;
| [[Psprint]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| postscript print - unix only - implements font discovery, interface to CUPS / lpr, query and basic PS - dump PS on print - actual PS rendering inside vcl&amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| [[Psprint config]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| ppds for use by psprint when not using CUPS&lt;br /&gt;
|-&lt;br /&gt;
| [[Pyuno]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno]] binding for python&lt;br /&gt;
|-&lt;br /&gt;
| [[QadevOOo]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| qa testsuite&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/rdbmaker|rdbmaker]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| makes registries for openoffice for storing type data, etc./?&lt;br /&gt;
|-&lt;br /&gt;
| [[Readlicense oo]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| reading oo license when starting up&lt;br /&gt;
|-&lt;br /&gt;
| [[Regexp]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| regular expression matching&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/registry|registry]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| UNO services and types registry access&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/remotebridges|remotebridges]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| [[Uno]] services dealing with interprocess bridges.&lt;br /&gt;
|-&lt;br /&gt;
| [[Rhino]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| java script engine/interpreter&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Java/Modules/ridljar|ridljar]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| Generators [[Uno/Java|Java Uno]] types (like [[Offuh]]).&lt;br /&gt;
|-&lt;br /&gt;
| [[Rsc]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| resource compiler - turns resource descriptions src and hrc files scattered throughout.&lt;br /&gt;
|-&lt;br /&gt;
| [[Porting/Modules/SAL|sal]] &lt;br /&gt;
| [http://porting.openoffice.org porting] &lt;br /&gt;
| system abstraction layer - rtl, osl and sal (rtl - platform independent strings, osl - platform specific stuff, threads, dynamic loading, process, ipc, etc.). Exports only C API and some inline-methods-only C++ API&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Cpp/Modules/SALhelper|salhelper]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| C++ helpers to make use of sal easier&lt;br /&gt;
|-&lt;br /&gt;
| [[Util/Modules/sandbox|sandbox]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Generic sandboxing, e.g. used for Java applet embedding stuff. Totally useless without a Sun JDK. Removed after 3.2.&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Sane]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| external scanner library&lt;br /&gt;
|-&lt;br /&gt;
| [[Sax]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| wrapper around expat using [[Uno]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Sc]] &lt;br /&gt;
| [http://sc.openoffice.org/ sc] &lt;br /&gt;
| calc - the Spreadsheet core&lt;br /&gt;
|-&lt;br /&gt;
| [[Scaddins]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| extra functions for calc&lt;br /&gt;
|-&lt;br /&gt;
| [[Scp2]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| script particles - being rewritten for oo2. all of installation was driven by starbasic - this is now in instsetoo-native&lt;br /&gt;
|-&lt;br /&gt;
| [[Scripting]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| scripting framework - for java, python, etc. to play together and uses UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[Sd]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Impress and Draw components. Think of Impress as hack on top of Draw.&lt;br /&gt;
|-&lt;br /&gt;
| [[Sdext]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Extensions for the Impress and Draw applications.&lt;br /&gt;
|-&lt;br /&gt;
| [[Setup-native]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| &amp;amp;nbsp; ?&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Sfx2]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| Some gui code; list of documents open would be tracked - raw C++ code; gutsy core of document management and loading.&lt;br /&gt;
|-&lt;br /&gt;
| [[Shell]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| system helpers - launching URI, recently used files, system integration, external mailer support, gconf integration etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Slideshow]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| new impress slideshow engine in OO.o 2.0&lt;br /&gt;
|-&lt;br /&gt;
| [[Smoketestoo native]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| Test code to launch each component for a smoke test.&lt;br /&gt;
|-&lt;br /&gt;
| [[Sndfile]] &lt;br /&gt;
| [http://external.openoffice.org/ external] &lt;br /&gt;
| soundfile - library for loading all kinds of sound - external lib&amp;amp;nbsp;???&lt;br /&gt;
|-&lt;br /&gt;
| [[Solenv]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| make and build infrastructure - solar (think: Sun or Star Division) environment&lt;br /&gt;
|-&lt;br /&gt;
| [[Soltools]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| all sorts of build tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Sot]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Code to access files based on OLE&amp;amp;nbsp;Storages and get the bits out of them&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Starmath]] &lt;br /&gt;
| [http://sw.openoffice.org/ sw] &lt;br /&gt;
| formula editor&lt;br /&gt;
|-&lt;br /&gt;
| [[External/Modules/stlport|stlport]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external library. STL implementation, from the days when compilers had crappy implementations.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uno/Binary/Modules/STOC|stoc]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| Core Components for [[Uno/Binary|Binary Uno]] (e.g. registry access, reflection, introspection).&lt;br /&gt;
|-&lt;br /&gt;
| [[Store]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Storage implementations, used by [[Uno]] registries.&lt;br /&gt;
|-&lt;br /&gt;
| [[Svtools]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| Common dialogs, file and print dialogs, wizards, vcl filters, lots of helper code&lt;br /&gt;
|-&lt;br /&gt;
| [[Svx]] &lt;br /&gt;
| [http://graphics.openoffice.org/ graphics] &lt;br /&gt;
| Graphics related helper code - xoutdev - rendering - This is where a lot of work would happen to move to the canvas. svdraw - transparent gradient stuff. Lot of the Draw and Impress code is in this module. Part if the PPT binary importer is in there too (moved to filter module after 3.2)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Writer|Sw]]&lt;br /&gt;
| [http://sw.openoffice.org/ sw] &lt;br /&gt;
| writer - the word processing core&lt;br /&gt;
|-&lt;br /&gt;
| [[Sysui]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| .desktop files for different distros&lt;br /&gt;
|-&lt;br /&gt;
| [[Toolkit]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| abstract windowing thing- [[Uno]] implementations of windows stuff - so can be used from basic&lt;br /&gt;
|-&lt;br /&gt;
| [[Tools]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| predates sal - string etc. functions, URL manipulation, stream stuff, polygons, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Transex3]] &lt;br /&gt;
| [http://l10n.openoffice.org/ l10n] &lt;br /&gt;
| translation tools&lt;br /&gt;
|-&lt;br /&gt;
| [[Twain]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Windows scanner support&lt;br /&gt;
|-&lt;br /&gt;
| [[Ucb]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;U&amp;#039;&amp;#039;&amp;#039;niversal &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ontent &amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;roker (has ucp) which do things like convert files to strings in content broker world.&lt;br /&gt;
|-&lt;br /&gt;
| [[Ucbhelper]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| C++ wrappers to help make using content providers easy&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;div id=&amp;quot;udkapi&amp;quot;&amp;gt;[[Udkapi]]&amp;lt;/div&amp;gt; &lt;br /&gt;
| [http://api.openoffice.org/ api] &lt;br /&gt;
| URE API definition - [[Uno/Specification/IDL|Uno IDL]] files&lt;br /&gt;
|-&lt;br /&gt;
| [[Udm]] &lt;br /&gt;
| [http://tools.openoffice.org/ tools] &lt;br /&gt;
| part of [[Autodoc]]&lt;br /&gt;
|-&lt;br /&gt;
| [[UnixODBC]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| external lib&lt;br /&gt;
|-&lt;br /&gt;
| [[UnoControls]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| separate process and thread for progress bars, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Unoil]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk][http://api.openoffice.org/ api] &lt;br /&gt;
| Like offuh for [[Uno/Java|Java Uno]] - Generates Java class files from OOo application Uno types.&lt;br /&gt;
|-&lt;br /&gt;
| [[Unotools]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| helpers for C++ use of UNO&lt;br /&gt;
|-&lt;br /&gt;
| [[Unoxml]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| [[Uno]] wrappers for XML services&lt;br /&gt;
|-&lt;br /&gt;
| [[Ure]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| beginnings of standalone UNO distribution foo.&lt;br /&gt;
|-&lt;br /&gt;
| [[Uui]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| An Interaction Handler (not only) for the UCB. It uses VCL to visualize and handle interaction requests, for eg. authentication dialogs for file operations.&lt;br /&gt;
|-&lt;br /&gt;
| [[Vcl]] &lt;br /&gt;
| [http://gsl.openoffice.org gsl] &lt;br /&gt;
| base windowing toolkit abstraction Visual Class Libraries, and graphical output layer - includes backends for unix &amp;amp;amp; Win32&lt;br /&gt;
|-&lt;br /&gt;
| [[Vigra]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Template framework from [http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/ here]. VIGRA stands for &amp;quot;Vision with Generic Algorithms&amp;quot;. Used from [[Basebmp]].&lt;br /&gt;
|-&lt;br /&gt;
| [[Vos]] &lt;br /&gt;
| [http://udk.openoffice.org/ udk] &lt;br /&gt;
| (Virtual Object System) - deprecated but still used, lots of sal like stuff&lt;br /&gt;
|-&lt;br /&gt;
| [[Wizards]] &lt;br /&gt;
| [http://installation.openoffice.org/ installation] &lt;br /&gt;
| java wizards for db setup, importing, tutorials, etc.&lt;br /&gt;
|-&lt;br /&gt;
| [[Writerperfect]] &lt;br /&gt;
| [http://framework.openoffice.org/ framework] &lt;br /&gt;
| word perfect filter - wrapper for libwpd&lt;br /&gt;
|-&lt;br /&gt;
| [[X11 extensions]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| headers for XRender support&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmerge]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| The XMerge SDK provides a Java-based framework for converting documents between different formats using conversion plugins to read and write each format. See http://xml.openoffice.org/xmerge&lt;br /&gt;
|-&lt;br /&gt;
| [[Xml2cmp]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Comes with the OO SDK. xml2cmp is launched in general by a makefile to extract types from a xml file&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmlhelp]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Help reader and viewer for online help&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmloff]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| OpenDocument import / export filter.&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmlscript]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Implements XML dialogs serialization.&lt;br /&gt;
|-&lt;br /&gt;
| [[Xmlsecurity]] &lt;br /&gt;
| [http://xml.openoffice.org/ xml] &lt;br /&gt;
| Document signing&lt;br /&gt;
|-&lt;br /&gt;
| [[Accessibility]] &lt;br /&gt;
| [http://ui.openoffice.org/accessibility/ Accessibility] &lt;br /&gt;
| Accessibility for OpenOffice.org&lt;br /&gt;
|-&lt;br /&gt;
| [[Afms]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Apache-commons]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External Java libraries; used for logging and http/https access in Extensions&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Bitstream vera fonts]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Cairo]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Comphelper]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Some helper classes for low level work&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Cppunit]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Obsolete directory: unit testing now using Googletest. [https://wiki.openoffice.org/wiki/Googletest Info]&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Dictionaries]] &lt;br /&gt;
| [http://lingucomponent.openoffice.org/ Lingucomponent] &lt;br /&gt;
| Default installed dictionaries in extension format&lt;br /&gt;
|-&lt;br /&gt;
| [[Drawinglayer]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[External images]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Fondu]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Formula]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Graphite]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Guw]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Obsolete&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Hunspell]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Hunspell as dictionary support (external library)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Hyphen]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Hyphenator (external library)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Javainstaller2]] &lt;br /&gt;
| [http://installation.openoffice.org/ Installation] &lt;br /&gt;
| The Java installer for UNIX and Linux&lt;br /&gt;
|-&lt;br /&gt;
| [[Jfreereport]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External Java library providing basic functionality for the report builder&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Jpeg]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[L10n]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Module containing all localization content&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Libegg]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Libtextcat]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External library providing functionality to guess the language of a text&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Libxml2]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Libxslt]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Lucene]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Migrationanalysis]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Moz]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Nss]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Containes the security libraries which are also part of moz. However nss is meant to be more current.&lt;br /&gt;
|-&lt;br /&gt;
| [[O3tl]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Oovbaapi]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Oowintool]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Openssl]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Packimages]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Module that generates packed images lists according to the lists generated from the source code&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Python]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Redland]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Reportbuilder]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Reportdesign]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Saxon]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Sccomp]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Soldep]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External tool that can generate dependency diagrams from the various build.lst files&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Stax]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Swext]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Writer extensions (currently only MediaWiki Extension)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Testautomation]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| All test scripts for the GUI Testtool&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Testshl2]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Library utilizing cppunit to implement a unit test framework&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Testtools]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Some tests for UNO&amp;amp;nbsp;bridges and language bindings&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Tomcat]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| External Java library, used by Apache-Commons&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Unodevtools]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Writer|Writerfilter]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| Library containing the docx import filter (and later also doc and rtf import filters)&amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Xpdf]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Xsltml]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| [[Zlib]] &lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
| &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The directory &amp;lt;code&amp;gt;solver&amp;lt;/code&amp;gt; is not a module, it is the output tree of the build that is created automatically once a build is started. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Source_directories]] [[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=236452</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=236452"/>
		<updated>2015-07-04T23:32:50Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/ pre-built unowinreg.dll] (see NOTE)&lt;br /&gt;
Required for building the ODK which is included in the build unless disabled. This file is required for non-Windows builds. Without this file, configure will try to set up cross-compiling with windows. &lt;br /&gt;
NOTE: Not for windows. Required on all non-windows platforms. Download by directly saving unowinreg.dll into /main/external from the link provided above, or by using wget: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
Another useful option for interactive debugging features is dbgutil. Add option,&lt;br /&gt;
        --enable-dbgutil&lt;br /&gt;
for this feature. Also see the Debugging information on this page. &lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Using &amp;#039;installed&amp;#039; for package format puts OpenOffice into your &amp;#039;&amp;#039;installset&amp;#039;&amp;#039; directory (browse down ../installed/install). This will save you time for testing since you can then directly run OpenOffice from this area. &lt;br /&gt;
&lt;br /&gt;
Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation. &amp;#039;&amp;#039;&amp;#039;NOTE:&amp;#039;&amp;#039;&amp;#039; Additional package format options will be ignored with the &amp;quot;installed&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Debugging|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=236088</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=236088"/>
		<updated>2015-04-30T23:38:15Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/ pre-built unowinreg.dll] (see NOTE)&lt;br /&gt;
Required for building the ODK which is included in the build unless disabled. This file is required for non-Windows builds. Without this file, configure will try to set up cross-compiling with windows. &lt;br /&gt;
NOTE: Not for windows. Required on all non-windows platforms. Download by directly saving unowinreg.dll into /main/external from the link provided above, or by using wget: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
Another useful option for interactive debugging features is dbgutil. Add option,&lt;br /&gt;
        --enable-dbgutil&lt;br /&gt;
for this feature. Also see the Debugging information on this page. &lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Using &amp;#039;installed&amp;#039; for package format puts OpenOffice into your &amp;#039;&amp;#039;installset&amp;#039;&amp;#039; directory (browse down ../installed/install). This will save you time for testing since you can then directly run OpenOffice from this area. &lt;br /&gt;
&lt;br /&gt;
Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Debugging|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=236087</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=236087"/>
		<updated>2015-04-30T23:27:12Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/ pre-built unowinreg.dll] (see NOTE)&lt;br /&gt;
Required for building the ODK which is included in the build unless disabled. This file is required for non-Windows builds. Without this file, configure will try to set up cross-compiling with windows. &lt;br /&gt;
NOTE: Not for windows. Required on all non-windows platforms. Download by directly saving unowinreg.dll into /main/external from the link provided above, or by using wget: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
Another useful option for interactive debugging features is dbgutil. Add option,&lt;br /&gt;
        --enable-dbgutil&lt;br /&gt;
for this feature. Also see the Debugging information on this page. &lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Using &amp;#039;installed&amp;#039; for package format puts OpenOffice into your &amp;#039;&amp;#039;installset&amp;#039;&amp;#039; directory (browse down ../installed/install). This will save you time for testing since you can then directly run OpenOffice from this area. &lt;br /&gt;
&lt;br /&gt;
Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Debugging|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Issue_lifecycle&amp;diff=235928</id>
		<title>Issue lifecycle</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Issue_lifecycle&amp;diff=235928"/>
		<updated>2015-03-03T22:13:14Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Writing an issue (Everyone)==&lt;br /&gt;
For a detailed guide on how to create an issue, see [[QA/HowToFileIssue]]. Here are some brief notes, though:&amp;lt;br&amp;gt;&lt;br /&gt;
; No support requests : Ask on the [http://incubator.apache.org/openofficeorg/mailing-lists.html#users-mailing-list user mailing list] or [http://ooo-forums.apache.org/en/forum/index.php community forum] to make sure that you do not miss something in handling of AOO. &amp;#039;&amp;#039;ToDo: Add link to support information&amp;#039;&amp;#039;&lt;br /&gt;
; No duplicates : [https://issues.apache.org/ooo/query.cgi Search in Bugzilla] whether your problem is already reported.&lt;br /&gt;
; Reproducible : Write a short and precise description on how to reproduce your problem. In short, document only the essential parts needed to reproduce the problem, in a helpful way. Preferably, attach a screen-shot.&lt;br /&gt;
&lt;br /&gt;
Newly written issues should always have the state &amp;quot;Unconfirmed&amp;quot;, if you are the only person, that has worked on it so far, even if you have the rights to set it to &amp;quot;Confirmed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
More info about submitting a bug:&amp;lt;br&amp;gt;http://forum.openoffice.org/en/forum/viewtopic.php?f=74&amp;amp;t=13490&lt;br /&gt;
&lt;br /&gt;
== Make sure it is a valid issue (QA + Developer)==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Is the description suitable to understand and reproduce the problem?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If not, ask the reporter and set keyword &amp;quot;needmoreinfo&amp;quot;. If no answer after fourteen days, set the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to RESOLVED and the reason to &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Comment like &amp;quot;Feel free to reopen the issue, when you can provide the needed information.&amp;quot; Submit changes and then set the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to CLOSED.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Make sure AOO is affected.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Is it a support request? Then resolve the issue as &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039; and point the submitter to mailing list and forum.&lt;br /&gt;
* Does AOO works as designed, but the reporter expects something different? Set the status to RESOLVED and reason to &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Point the reporter to the UX group to discuss, how AOO can be improved to meet user expectations. The reason WONTFIX might be appropriate, if the problem has been discussed recently, and the request was rejected. Point the reporter to the thread. &amp;#039;&amp;#039;ToDo: Add mailing list address or home page of UX on Wiki&amp;#039;&amp;#039;&lt;br /&gt;
* Is the bug only in a special distribution but not in AOO? In that case resolve the issue with reason &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Point the reporter to a suitable issue tracker.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Has the problem already been reported?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Search not only in field &amp;quot;Summary&amp;quot; but in field &amp;quot;Comment&amp;quot; as well.&lt;br /&gt;
* Include closed issues in your search, they might lead you to an active duplicate one.&lt;br /&gt;
* The existing issues might have wrong components. Therefor restrict your search only, if you get too many hits.&lt;br /&gt;
* Be aware that graphic, image, and picture are used interchangeable by issue reporters. Find other synonymous keywords on [[Synonymous_keywords]].&lt;br /&gt;
&lt;br /&gt;
If you find a duplicate, set field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to RESOLVED and reason to DUPLICATE. Then you get another field. Enter the number of the duplicate issue there. The other issue gets automatically a link. Submit the changes. Then close the issue.&lt;br /&gt;
&lt;br /&gt;
You are likely to find more than one duplicate. Look, which one has the most votes and/or the best description and close the others with setting &amp;quot;Duplicate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. Is it a feature request?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Set the the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to CONFIRMED and the issue type to ENHANCEMANT or FEATURE.&lt;br /&gt;
* Does the feature request contradict the ODF specification? Put this info into your comment and point the reporter to OASIS. Such requests need additional work.&lt;br /&gt;
* Examine the fields &amp;#039;&amp;#039;Product&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Component&amp;#039;&amp;#039; and correct them if necessary.&lt;br /&gt;
* Has the feature request been discussed or does a specification exists in the Wiki? Put a link to it in the field URL.&lt;br /&gt;
&lt;br /&gt;
In case of a bug report further work is needed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5. Can you reproduce the bug?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* If you can reproduce the bug, then examine the fields &amp;#039;&amp;#039;Product&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Component&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039;, and correct them if necessary.&lt;br /&gt;
* If your test version is newer than the reported version, select your version from the field &amp;#039;&amp;#039;Latest confirmation on&amp;#039;&amp;#039;. Or if you use a developer build, add the revision number in your comment.&lt;br /&gt;
* Examine the field &amp;#039;&amp;#039;Platform&amp;#039;&amp;#039;. If the reporter has set it to &amp;#039;&amp;#039;all&amp;#039;&amp;#039; but has not mentioned in his description on what platforms (plural!) he has tested, then set the operating system to your system. If you have reproduced the bug on a total different system than the reporter (e.g. reporter WinXP, you MacOS), then set the operating system to &amp;#039;&amp;#039;all&amp;#039;&amp;#039; and mention the systems in your comment.&lt;br /&gt;
* Examine the description. Could you reproduce the bug with that description, or could you only reproduce it with playing around? Have you reproduced it with less steps? Give an improved description if necessary.&lt;br /&gt;
* If a test document is attached, look whether it is suitable. Often test documents contain much more as needed to reproduce the bug. Remove all things, that not needed. If no test document is attached, but a test document would be helpful, then produce a test document (as small as possible!) and attach it.&lt;br /&gt;
* Would a screen shot or a video clip help to understand, what is wrong? Then try to produce them and attach it.&lt;br /&gt;
*If you cannot reproduce the bug, the error might depend on the operating system or other environment conditions. Resolve issue with reason &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;, but leave issue open and set keyword &amp;quot;needhelp&amp;quot;. If you cannot reproduce the bug using the same environment as the reporter, close the issue.&lt;br /&gt;
*In case of import, is AOO able to reflect the mentioned property of the alien document format? Exists this property already in the ODF specification? In case of export, is the alien document format able to reflect the mentioned property of AOO? Include this informations in your comment. Close the bug or made it an enhancement.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6. How important is the issue?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Examine the field &amp;quot;Importance&amp;quot;. Reporters tend to set it to inappropriate values.&lt;br /&gt;
*Does the bug fulfill the criteria for a &amp;quot;release blocker&amp;quot;, then not only select &amp;quot;Blocker&amp;quot; but inform the ooo-dev mailing list in addition.&lt;br /&gt;
*Crashes and scenarios with data loss in common user actions get at least the importance &amp;#039;&amp;#039;P2 major&amp;#039;&amp;#039;.&lt;br /&gt;
If unsure about this, use the setting &amp;#039;&amp;#039;P3 normal&amp;#039;&amp;#039;.  &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7. Help the developer with additional informations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Minimize the scenario to reproduce the bug. &lt;br /&gt;
*Try to reproduce the bug with an older version of AOO or OOo. If you find, that it works there, add the keyword &amp;#039;&amp;#039;regression&amp;#039;&amp;#039;.&lt;br /&gt;
*If you work on an older, unconfirmed OOo bug and have reproduced it with a new AOO version, select the version in the field &amp;#039;&amp;#039;Latest confirmation on&amp;#039;&amp;#039;.&lt;br /&gt;
*Do you get additional information by using a debug build?&lt;br /&gt;
*In case of a crash, can you produce a backtrace?&lt;br /&gt;
*Use keywords and tags in summary to classify the bug. For example for import and export to the Microsoft Office 97 formats the tag WW8: in the summary is used. Also the keyword &amp;#039;&amp;#039;ms_interoperability&amp;#039;&amp;#039; is likely suitable for such import/export problems.  &lt;br /&gt;
&lt;br /&gt;
If the issue is still open after all the previous steps, set the status to CONFIRMED.&lt;br /&gt;
&lt;br /&gt;
If you have not the rights to do the suggested changes, then write it as suggestion into the comment.&lt;br /&gt;
&lt;br /&gt;
== Work on the issue (Developer)==&lt;br /&gt;
# If you want to fix the issue, set the status to ACCEPTED and assign it to yourself by clicking on &amp;quot;take&amp;quot; in the line &amp;quot;Assigned to&amp;quot;.&lt;br /&gt;
# You found the root cause, but fixing it may take a while? Then write an intermediate comment. Does the fix depend on the fix for another issue? Then enter the issue number in the field &amp;quot;Depends on&amp;quot;.&lt;br /&gt;
# You have a fix for the issue but no commit rights or want a review before committing? Generate a patch and attach it to the issue. Make sure you use the type &amp;quot;Patch&amp;quot; in the upload. Set the issue type to PATCH. In most cases, you will need review of the patch. When you attache the patch in Bugzilla, use &amp;#039;&amp;#039;&amp;#039;Flags/review&amp;#039;&amp;#039;&amp;#039; and set to &amp;quot;?&amp;quot; to alert the issues mailing list that a review is needed. You may also want to inform the ooo-dev list. In this case, the patch will be reviewed and/or discussed further or committed.&lt;br /&gt;
# The patch is submitted (committed)? Write a comment to the issue, where you reference the revision number. Set the status to RESOLVED with reason FIXED. Do not close the issue.&lt;br /&gt;
# In case of a feature request: If you think, it should not be implemented, discuss this on the development mailing list and if your opinion gets consensus, set the status to RESOLVED with reason WONTFIX. Explain the reason in the comment and put the link to the discussion in field URL. Close the issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Verify the fix (QA + Developer)==&lt;br /&gt;
Use a developer version or a released version which contains the fix and try to reproduce the bug.&lt;br /&gt;
&lt;br /&gt;
If you can no longer reproduce it, comment with &amp;quot;Verified in version &amp;lt;revision number&amp;gt;&amp;quot;. If you know areas which might be affected by the fix, test them too. Close the issue.&lt;br /&gt;
&lt;br /&gt;
If you still can reproduce the bug, set the status to REOPEN and explain why.&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Issue_lifecycle&amp;diff=235927</id>
		<title>Issue lifecycle</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Issue_lifecycle&amp;diff=235927"/>
		<updated>2015-03-03T22:10:53Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Writing an issue (Everyone)==&lt;br /&gt;
For a detailed guide on how to create an issue, see [[QA/HowToFileIssue]]. Here are some brief notes, though:&amp;lt;br&amp;gt;&lt;br /&gt;
; No support requests : Ask on the [http://incubator.apache.org/openofficeorg/mailing-lists.html#users-mailing-list user mailing list] or [http://ooo-forums.apache.org/en/forum/index.php community forum] to make sure that you do not miss something in handling of AOO. &amp;#039;&amp;#039;ToDo: Add link to support information&amp;#039;&amp;#039;&lt;br /&gt;
; No duplicates : [https://issues.apache.org/ooo/query.cgi Search in Bugzilla] whether your problem is already reported.&lt;br /&gt;
; Reproducible : Write a short and precise description on how to reproduce your problem. In short, document only the essential parts needed to reproduce the problem, in a helpful way. Preferably, attach a screen-shot.&lt;br /&gt;
&lt;br /&gt;
Newly written issues should always have the state &amp;quot;Unconfirmed&amp;quot;, if you are the only person, that has worked on it so far, even if you have the rights to set it to &amp;quot;Confirmed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
More info about submitting a bug:&amp;lt;br&amp;gt;http://forum.openoffice.org/en/forum/viewtopic.php?f=74&amp;amp;t=13490&lt;br /&gt;
&lt;br /&gt;
== Make sure it is a valid issue (QA + Developer)==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Is the description suitable to understand and reproduce the problem?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If not, ask the reporter and set keyword &amp;quot;needmoreinfo&amp;quot;. If no answer after fourteen days, set the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to RESOLVED and the reason to &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Comment like &amp;quot;Feel free to reopen the issue, when you can provide the needed information.&amp;quot; Submit changes and then set the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to CLOSED.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Make sure AOO is affected.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Is it a support request? Then resolve the issue as &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039; and point the submitter to mailing list and forum.&lt;br /&gt;
* Does AOO works as designed, but the reporter expects something different? Set the status to RESOLVED and reason to &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Point the reporter to the UX group to discuss, how AOO can be improved to meet user expectations. The reason WONTFIX might be appropriate, if the problem has been discussed recently, and the request was rejected. Point the reporter to the thread. &amp;#039;&amp;#039;ToDo: Add mailing list address or home page of UX on Wiki&amp;#039;&amp;#039;&lt;br /&gt;
* Is the bug only in a special distribution but not in AOO? In that case resolve the issue with reason &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Point the reporter to a suitable issue tracker.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Has the problem already been reported?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Search not only in field &amp;quot;Summary&amp;quot; but in field &amp;quot;Comment&amp;quot; as well.&lt;br /&gt;
* Include closed issues in your search, they might lead you to an active duplicate one.&lt;br /&gt;
* The existing issues might have wrong components. Therefor restrict your search only, if you get too many hits.&lt;br /&gt;
* Be aware that graphic, image, and picture are used interchangeable by issue reporters. Find other synonymous keywords on [[Synonymous_keywords]].&lt;br /&gt;
&lt;br /&gt;
If you find a duplicate, set field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to RESOLVED and reason to DUPLICATE. Then you get another field. Enter the number of the duplicate issue there. The other issue gets automatically a link. Submit the changes. Then close the issue.&lt;br /&gt;
&lt;br /&gt;
You are likely to find more than one duplicate. Look, which one has the most votes and/or the best description and close the others with setting &amp;quot;Duplicate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. Is it a feature request?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Set the the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to CONFIRMED and the issue type to ENHANCEMANT or FEATURE.&lt;br /&gt;
* Does the feature request contradict the ODF specification? Put this info into your comment and point the reporter to OASIS. Such requests need additional work.&lt;br /&gt;
* Examine the fields &amp;#039;&amp;#039;Product&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Component&amp;#039;&amp;#039; and correct them if necessary.&lt;br /&gt;
* Has the feature request been discussed or does a specification exists in the Wiki? Put a link to it in the field URL.&lt;br /&gt;
&lt;br /&gt;
In case of a bug report further work is needed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5. Can you reproduce the bug?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* If you can reproduce the bug, then examine the fields &amp;#039;&amp;#039;Product&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Component&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039;, and correct them if necessary.&lt;br /&gt;
* If your test version is newer than the reported version, select your version from the field &amp;#039;&amp;#039;Latest confirmation on&amp;#039;&amp;#039;. Or if you use a developer build, add the revision number in your comment.&lt;br /&gt;
* Examine the field &amp;#039;&amp;#039;Platform&amp;#039;&amp;#039;. If the reporter has set it to &amp;#039;&amp;#039;all&amp;#039;&amp;#039; but has not mentioned in his description on what platforms (plural!) he has tested, then set the operating system to your system. If you have reproduced the bug on a total different system than the reporter (e.g. reporter WinXP, you MacOS), then set the operating system to &amp;#039;&amp;#039;all&amp;#039;&amp;#039; and mention the systems in your comment.&lt;br /&gt;
* Examine the description. Could you reproduce the bug with that description, or could you only reproduce it with playing around? Have you reproduced it with less steps? Give an improved description if necessary.&lt;br /&gt;
* If a test document is attached, look whether it is suitable. Often test documents contain much more as needed to reproduce the bug. Remove all things, that not needed. If no test document is attached, but a test document would be helpful, then produce a test document (as small as possible!) and attach it.&lt;br /&gt;
* Would a screen shot or a video clip help to understand, what is wrong? Then try to produce them and attach it.&lt;br /&gt;
*If you cannot reproduce the bug, the error might depend on the operating system or other environment conditions. Resolve issue with reason &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;, but leave issue open and set keyword &amp;quot;needhelp&amp;quot;. If you cannot reproduce the bug using the same environment as the reporter, close the issue.&lt;br /&gt;
*In case of import, is AOO able to reflect the mentioned property of the alien document format? Exists this property already in the ODF specification? In case of export, is the alien document format able to reflect the mentioned property of AOO? Include this informations in your comment. Close the bug or made it an enhancement.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6. How important is the issue?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Examine the field &amp;quot;Importance&amp;quot;. Reporters tend to set it to inappropriate values.&lt;br /&gt;
*Does the bug fulfill the criteria for a &amp;quot;release blocker&amp;quot;, then not only select &amp;quot;Blocker&amp;quot; but inform the ooo-dev mailing list in addition.&lt;br /&gt;
*Crashes and scenarios with data loss in common user actions get at least the importance &amp;#039;&amp;#039;P2 major&amp;#039;&amp;#039;.&lt;br /&gt;
If unsure about this, use the setting &amp;#039;&amp;#039;P3 normal&amp;#039;&amp;#039;.  &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7. Help the developer with additional informations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Minimize the scenario to reproduce the bug. &lt;br /&gt;
*Try to reproduce the bug with an older version of AOO or OOo. If you find, that it works there, add the keyword &amp;#039;&amp;#039;regression&amp;#039;&amp;#039;.&lt;br /&gt;
*If you work on an older, unconfirmed OOo bug and have reproduced it with a new AOO version, select the version in the field &amp;#039;&amp;#039;Latest confirmation on&amp;#039;&amp;#039;.&lt;br /&gt;
*Do you get additional information by using a debug build?&lt;br /&gt;
*In case of a crash, can you produce a backtrace?&lt;br /&gt;
*Use keywords and tags in summary to classify the bug. For example for import and export to the Microsoft Office 97 formats the tag WW8: in the summary is used. Also the keyword &amp;#039;&amp;#039;ms_interoperability&amp;#039;&amp;#039; is likely suitable for such import/export problems.  &lt;br /&gt;
&lt;br /&gt;
If the issue is still open after all the previous steps, set the status to CONFIRMED.&lt;br /&gt;
&lt;br /&gt;
If you have not the rights to do the suggested changes, then write it as suggestion into the comment.&lt;br /&gt;
&lt;br /&gt;
== Work on the issue (Developer)==&lt;br /&gt;
# If you want to fix the issue, set the status to ACCEPTED and assign it to yourself by clicking on &amp;quot;take&amp;quot; in the line &amp;quot;Assigned to&amp;quot;.&lt;br /&gt;
# You found the root cause, but fixing it may take a while? Then write an intermediate comment. Does the fix depend on the fix for another issue? Then enter the issue number in the field &amp;quot;Depends on&amp;quot;.&lt;br /&gt;
# You have a fix for the issue but no commit rights or want a review before committing? Generate a patch and attach it to the issue. Make sure you use the type &amp;quot;Patch&amp;quot; in the upload. Set the issue type to PATCH. In most cases, you will need review of the patch. When you attache the patch in Bugzilla, use Flag/review and set to &amp;quot;?&amp;quot; to alert the issues mailing list that a review is needed. You may also want to inform the ooo-dev list. In this case, the patch will be reviewed and/or discussed further or committed.&lt;br /&gt;
# The patch is submitted (committed)? Write a comment to the issue, where you reference the revision number. Set the status to RESOLVED with reason FIXED. Do not close the issue.&lt;br /&gt;
# In case of a feature request: If you think, it should not be implemented, discuss this on the development mailing list and if your opinion gets consensus, set the status to RESOLVED with reason WONTFIX. Explain the reason in the comment and put the link to the discussion in field URL. Close the issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Verify the fix (QA + Developer)==&lt;br /&gt;
Use a developer version or a released version which contains the fix and try to reproduce the bug.&lt;br /&gt;
&lt;br /&gt;
If you can no longer reproduce it, comment with &amp;quot;Verified in version &amp;lt;revision number&amp;gt;&amp;quot;. If you know areas which might be affected by the fix, test them too. Close the issue.&lt;br /&gt;
&lt;br /&gt;
If you still can reproduce the bug, set the status to REOPEN and explain why.&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Issue_lifecycle&amp;diff=235926</id>
		<title>Issue lifecycle</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Issue_lifecycle&amp;diff=235926"/>
		<updated>2015-03-03T22:09:27Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Writing an issue (Everyone)==&lt;br /&gt;
For a detailed guide on how to create an issue, see [[QA/HowToFileIssue]]. Here are some brief notes, though:&amp;lt;br&amp;gt;&lt;br /&gt;
; No support requests : Ask on the [http://incubator.apache.org/openofficeorg/mailing-lists.html#users-mailing-list user mailing list] or [http://ooo-forums.apache.org/en/forum/index.php community forum] to make sure that you do not miss something in handling of AOO. &amp;#039;&amp;#039;ToDo: Add link to support information&amp;#039;&amp;#039;&lt;br /&gt;
; No duplicates : [https://issues.apache.org/ooo/query.cgi Search in Bugzilla] whether your problem is already reported.&lt;br /&gt;
; Reproducible : Write a short and precise description on how to reproduce your problem. In short, document only the essential parts needed to reproduce the problem, in a helpful way. Preferably, attach a screen-shot.&lt;br /&gt;
&lt;br /&gt;
Newly written issues should always have the state &amp;quot;Unconfirmed&amp;quot;, if you are the only person, that has worked on it so far, even if you have the rights to set it to &amp;quot;Confirmed&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
More info about submitting a bug:&amp;lt;br&amp;gt;http://forum.openoffice.org/en/forum/viewtopic.php?f=74&amp;amp;t=13490&lt;br /&gt;
&lt;br /&gt;
== Make sure it is a valid issue (QA + Developer)==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Is the description suitable to understand and reproduce the problem?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If not, ask the reporter and set keyword &amp;quot;needmoreinfo&amp;quot;. If no answer after fourteen days, set the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to RESOLVED and the reason to &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Comment like &amp;quot;Feel free to reopen the issue, when you can provide the needed information.&amp;quot; Submit changes and then set the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to CLOSED.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Make sure AOO is affected.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Is it a support request? Then resolve the issue as &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039; and point the submitter to mailing list and forum.&lt;br /&gt;
* Does AOO works as designed, but the reporter expects something different? Set the status to RESOLVED and reason to &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Point the reporter to the UX group to discuss, how AOO can be improved to meet user expectations. The reason WONTFIX might be appropriate, if the problem has been discussed recently, and the request was rejected. Point the reporter to the thread. &amp;#039;&amp;#039;ToDo: Add mailing list address or home page of UX on Wiki&amp;#039;&amp;#039;&lt;br /&gt;
* Is the bug only in a special distribution but not in AOO? In that case resolve the issue with reason &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;. Point the reporter to a suitable issue tracker.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Has the problem already been reported?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Search not only in field &amp;quot;Summary&amp;quot; but in field &amp;quot;Comment&amp;quot; as well.&lt;br /&gt;
* Include closed issues in your search, they might lead you to an active duplicate one.&lt;br /&gt;
* The existing issues might have wrong components. Therefor restrict your search only, if you get too many hits.&lt;br /&gt;
* Be aware that graphic, image, and picture are used interchangeable by issue reporters. Find other synonymous keywords on [[Synonymous_keywords]].&lt;br /&gt;
&lt;br /&gt;
If you find a duplicate, set field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to RESOLVED and reason to DUPLICATE. Then you get another field. Enter the number of the duplicate issue there. The other issue gets automatically a link. Submit the changes. Then close the issue.&lt;br /&gt;
&lt;br /&gt;
You are likely to find more than one duplicate. Look, which one has the most votes and/or the best description and close the others with setting &amp;quot;Duplicate&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. Is it a feature request?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Set the the field &amp;#039;&amp;#039;status&amp;#039;&amp;#039; to CONFIRMED and the issue type to ENHANCEMANT or FEATURE.&lt;br /&gt;
* Does the feature request contradict the ODF specification? Put this info into your comment and point the reporter to OASIS. Such requests need additional work.&lt;br /&gt;
* Examine the fields &amp;#039;&amp;#039;Product&amp;#039;&amp;#039; and &amp;#039;&amp;#039;Component&amp;#039;&amp;#039; and correct them if necessary.&lt;br /&gt;
* Has the feature request been discussed or does a specification exists in the Wiki? Put a link to it in the field URL.&lt;br /&gt;
&lt;br /&gt;
In case of a bug report further work is needed.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5. Can you reproduce the bug?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* If you can reproduce the bug, then examine the fields &amp;#039;&amp;#039;Product&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Component&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;Issue Type&amp;#039;&amp;#039;, and correct them if necessary.&lt;br /&gt;
* If your test version is newer than the reported version, select your version from the field &amp;#039;&amp;#039;Latest confirmation on&amp;#039;&amp;#039;. Or if you use a developer build, add the revision number in your comment.&lt;br /&gt;
* Examine the field &amp;#039;&amp;#039;Platform&amp;#039;&amp;#039;. If the reporter has set it to &amp;#039;&amp;#039;all&amp;#039;&amp;#039; but has not mentioned in his description on what platforms (plural!) he has tested, then set the operating system to your system. If you have reproduced the bug on a total different system than the reporter (e.g. reporter WinXP, you MacOS), then set the operating system to &amp;#039;&amp;#039;all&amp;#039;&amp;#039; and mention the systems in your comment.&lt;br /&gt;
* Examine the description. Could you reproduce the bug with that description, or could you only reproduce it with playing around? Have you reproduced it with less steps? Give an improved description if necessary.&lt;br /&gt;
* If a test document is attached, look whether it is suitable. Often test documents contain much more as needed to reproduce the bug. Remove all things, that not needed. If no test document is attached, but a test document would be helpful, then produce a test document (as small as possible!) and attach it.&lt;br /&gt;
* Would a screen shot or a video clip help to understand, what is wrong? Then try to produce them and attach it.&lt;br /&gt;
*If you cannot reproduce the bug, the error might depend on the operating system or other environment conditions. Resolve issue with reason &amp;#039;&amp;#039;IRREPRODUCIBLE&amp;#039;&amp;#039;, but leave issue open and set keyword &amp;quot;needhelp&amp;quot;. If you cannot reproduce the bug using the same environment as the reporter, close the issue.&lt;br /&gt;
*In case of import, is AOO able to reflect the mentioned property of the alien document format? Exists this property already in the ODF specification? In case of export, is the alien document format able to reflect the mentioned property of AOO? Include this informations in your comment. Close the bug or made it an enhancement.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6. How important is the issue?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Examine the field &amp;quot;Importance&amp;quot;. Reporters tend to set it to inappropriate values.&lt;br /&gt;
*Does the bug fulfill the criteria for a &amp;quot;release blocker&amp;quot;, then not only select &amp;quot;Blocker&amp;quot; but inform the ooo-dev mailing list in addition.&lt;br /&gt;
*Crashes and scenarios with data loss in common user actions get at least the importance &amp;#039;&amp;#039;P2 major&amp;#039;&amp;#039;.&lt;br /&gt;
If unsure about this, use the setting &amp;#039;&amp;#039;P3 normal&amp;#039;&amp;#039;.  &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7. Help the developer with additional informations&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Minimize the scenario to reproduce the bug. &lt;br /&gt;
*Try to reproduce the bug with an older version of AOO or OOo. If you find, that it works there, add the keyword &amp;#039;&amp;#039;regression&amp;#039;&amp;#039;.&lt;br /&gt;
*If you work on an older, unconfirmed OOo bug and have reproduced it with a new AOO version, select the version in the field &amp;#039;&amp;#039;Latest confirmation on&amp;#039;&amp;#039;.&lt;br /&gt;
*Do you get additional information by using a debug build?&lt;br /&gt;
*In case of a crash, can you produce a backtrace?&lt;br /&gt;
*Use keywords and tags in summary to classify the bug. For example for import and export to the Microsoft Office 97 formats the tag WW8: in the summary is used. Also the keyword &amp;#039;&amp;#039;ms_interoperability&amp;#039;&amp;#039; is likely suitable for such import/export problems.  &lt;br /&gt;
&lt;br /&gt;
If the issue is still open after all the previous steps, set the status to CONFIRMED.&lt;br /&gt;
&lt;br /&gt;
If you have not the rights to do the suggested changes, then write it as suggestion into the comment.&lt;br /&gt;
&lt;br /&gt;
== Work on the issue (Developer)==&lt;br /&gt;
# If you want to fix the issue, set the status to ACCEPTED and assign it to yourself by clicking on &amp;quot;take&amp;quot; in the line &amp;quot;Assigned to&amp;quot;.&lt;br /&gt;
# You found the root cause, but fixing it may take a while? &lt;br /&gt;
Then write an intermediate comment. Does the fix depend on the fix for another issue? Then enter the issue number in the field &amp;quot;Depends on&amp;quot;.&lt;br /&gt;
# You have a fix for the issue but no commit rights or want a review before committing?&lt;br /&gt;
Generate a patch and attach it to the issue. Make sure you use the type &amp;quot;Patch&amp;quot; in the upload. Set the issue type to PATCH. In most cases, you will need review of the patch. When you attache the patch in Bugzilla, use Flag/review and set to &amp;quot;?&amp;quot; to alert the issues mailing list that a review is needed. You may also want to inform the ooo-dev list. In this case, the patch will be reviewed and/or discussed further or committed.&lt;br /&gt;
# The patch is submitted (committed)? &lt;br /&gt;
Write a comment to the issue, where you reference the revision number. Set the status to RESOLVED with reason FIXED. Do not close the issue.&lt;br /&gt;
# In case of a feature request: If you think, it should not be implemented, discuss this on the development mailing list and if your opinion gets consensus, set the status to RESOLVED with reason WONTFIX. Explain the reason in the comment and put the link to the discussion in field URL. Close the issue.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Verify the fix (QA + Developer)==&lt;br /&gt;
Use a developer version or a released version which contains the fix and try to reproduce the bug.&lt;br /&gt;
&lt;br /&gt;
If you can no longer reproduce it, comment with &amp;quot;Verified in version &amp;lt;revision number&amp;gt;&amp;quot;. If you know areas which might be affected by the fix, test them too. Close the issue.&lt;br /&gt;
&lt;br /&gt;
If you still can reproduce the bug, set the status to REOPEN and explain why.&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_Linux&amp;diff=235884</id>
		<title>Documentation/Building Guide AOO/Building on Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Building_on_Linux&amp;diff=235884"/>
		<updated>2015-02-03T21:49:36Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Building Guide AOO TOC&lt;br /&gt;
|ShowNextPage=none&lt;br /&gt;
|ShowPrevPage=none&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Building on Linux}}&lt;br /&gt;
[[Category:Linux]][[Category:Documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= Overview =&lt;br /&gt;
&lt;br /&gt;
For general information on how to build Apache OpenOffice from source code, see the [[Documentation/Building_Guide_AOO|platform independent building guide]].&lt;br /&gt;
&lt;br /&gt;
{{Template:Documentation/Linux|This document contains the Linux specific details.}}&lt;br /&gt;
&lt;br /&gt;
=Build requirements=&lt;br /&gt;
&lt;br /&gt;
Additionally to the [[Documentation/Building Guide AOO#General_Build_Requirements|general build requirements]] you need. A number of libraries needed are provided in the source package. But some utilities and header files are not. (Installation depends on your distro).&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot; border=&amp;quot;1&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;width: 20%&amp;quot;|What&lt;br /&gt;
! Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|C/C++ Compiler&lt;br /&gt;
| gcc &amp;gt;= 3.3 &lt;br /&gt;
&lt;br /&gt;
gcc 4.2.3 is the current reference compiler&lt;br /&gt;
|-&lt;br /&gt;
|autoconf&lt;br /&gt;
|Used to process the main configure parameters and generate the configure script&lt;br /&gt;
|-&lt;br /&gt;
|patch&lt;br /&gt;
| patch utility&lt;br /&gt;
|-&lt;br /&gt;
|make&lt;br /&gt;
|GNU make utility&lt;br /&gt;
|-&lt;br /&gt;
|rpm-build&lt;br /&gt;
|Tools and scripts to create RPM packages &lt;br /&gt;
|-&lt;br /&gt;
| X11 development libraries and header files&lt;br /&gt;
| They should be in place on most Linux distributions with development support (eg have compilers installed).&lt;br /&gt;
|-&lt;br /&gt;
|PAM &lt;br /&gt;
|PAM should be installed by default on most linux distributions. You will also need to install  the development package.&lt;br /&gt;
|-&lt;br /&gt;
|cups&lt;br /&gt;
|cups is the backend printing system for Linux so you might already have this installed. You will also need to install the cups development package.&lt;br /&gt;
|-&lt;br /&gt;
| gtk2  &lt;br /&gt;
|(including the development headers).  The gtk2 libraries are required for Linux builds since the gtk plugin for vcl is automatically built for this environment unless specifically not built with configure option &amp;quot;--disable-gtk&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| libtiff&lt;br /&gt;
| (including development headers). The jpeg and tiff libraries are not required if &lt;br /&gt;
you disable the crash-reporter when running &amp;lt;CODE&amp;gt;./configure&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|bison&lt;br /&gt;
|GNU parser generator.&lt;br /&gt;
|-&lt;br /&gt;
| flex&lt;br /&gt;
|Fast lexical analyzer &lt;br /&gt;
|-&lt;br /&gt;
| (possibly) ORBit 2.0&lt;br /&gt;
| CORBA 2.4-compliant Object Request Broker (ORB)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The installation of required packages, mostly tools and development versions of libraries, depends on the distribution:&lt;br /&gt;
;Fedora:&lt;br /&gt;
    yum install GConf2-devel ant autoconf automake bison boost-devel    \&lt;br /&gt;
            cups-devel curl-devel db4-devel expat-devel firefox-devel   \&lt;br /&gt;
            flex freetype-devel gcc gcc-c++ gconf2-devel gnome-vfs2-devel gperf      \&lt;br /&gt;
            gstreamer-devel gstreamer-plugins-base-devel gtk2-devel     \&lt;br /&gt;
            java-1.6.0-openjdk-devel libIDL-devel libXaw-devel          \&lt;br /&gt;
            libxslt-devel make mono-devel openldap-devel openssl-devel pam-devel     \&lt;br /&gt;
            patch perl-Archive-Zip python-devel qt-devel rpm-build      \&lt;br /&gt;
            subversion tcsh unixODBC-devel xalan-j2                     \&lt;br /&gt;
            xml-commons-jaxp-1.3-apis xorg-x11-devel&lt;br /&gt;
;Gentoo:Usable gentoo packages:&lt;br /&gt;
    app-arch/rpm&lt;br /&gt;
    app-arch/dpkg &lt;br /&gt;
    dev-lang/python&lt;br /&gt;
    dev-libs/icu&lt;br /&gt;
    dev-java/lucene-analyzers&lt;br /&gt;
    dev-java/saxon&lt;br /&gt;
    dev-java/sun-jdk&lt;br /&gt;
    dev-perl/Archive-Zip&lt;br /&gt;
    dev-util/ccache&lt;br /&gt;
    media-gfx/xsane&lt;br /&gt;
    media-libs/vigra&lt;br /&gt;
&lt;br /&gt;
;OpenSUSE:You can use this information as a starting point for opensuse. One way to determine needed packages is to use the information provided by &amp;quot;configure&amp;quot;. See the config.log.&lt;br /&gt;
&lt;br /&gt;
You can start with this list (12.3 package names. It may need modifications depending on your config options): &lt;br /&gt;
   zypper install bison flex pam-devel cups-devel patch autoconf orbit2 orbit2-devel xorg-x11-devel&lt;br /&gt;
          libjpeg8 libjpeg8-devel libpng15-15 libpng15-devel libpng15-compat-devel rpm-build make&lt;br /&gt;
&lt;br /&gt;
;Ubuntu:Install packages with apt-get:&lt;br /&gt;
    sudo apt-get install g++ gcc bison flex libarchive-zip-perl libcups2-dev libpam0g-dev \&lt;br /&gt;
        gperf libfreetype6-dev libxaw7-dev libfontconfig1-dev libxrandr-dev patch \&lt;br /&gt;
        libgconf2-dev libgnomevfs2-dev ant libgtk2.0-dev junit junit4 libidl-dev liborbit2-dev&lt;br /&gt;
The java package depends on your Ubuntu version.&lt;br /&gt;
For 9.10 Karmic Koala and Ubuntu 10.04 Lucid Lynx you must activate the &amp;quot;ubuntu lucid partner&amp;quot; archive in the software sources and run&lt;br /&gt;
    sudo apt-get install sun-java6-jdk&lt;br /&gt;
For 11.04 run&lt;br /&gt;
    sudo apt-get install openjdk-6-jdk&lt;br /&gt;
To make sure that all packages are installed you could just simply run command:&lt;br /&gt;
    sudo apt-get build-dep openoffice.org&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235883</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235883"/>
		<updated>2015-02-02T22:14:36Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: /* Configuration and bootstrapping */  (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
Another useful option for interactive debugging features is dbgutil. Add option,&lt;br /&gt;
        --enable-dbgutil&lt;br /&gt;
for this feature. Also see the Debugging information on this page. &lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Using &amp;#039;installed&amp;#039; for package format puts OpenOffice into your &amp;#039;&amp;#039;installset&amp;#039;&amp;#039; directory (browse down ../installed/install). This will save you time for testing since you can then directly run OpenOffice from this area. &lt;br /&gt;
&lt;br /&gt;
Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Debugging|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Debugging&amp;diff=235832</id>
		<title>Debugging</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Debugging&amp;diff=235832"/>
		<updated>2015-01-27T23:15:12Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
{{Template:Documentation/Linux|This section assumes use of [[wikipedia:GNU Debugger|gdb]], from the console. There are also specific notes on [[Windows Debugging]] or [[MacOSX_Debug_OpenOffice.org_using_XCode|graphical tools on Mac OS X]] and hints on [[Debug Build Problems|Build Problems Debugging]].}}&lt;br /&gt;
&lt;br /&gt;
== Building with debugging symbols ==&lt;br /&gt;
&lt;br /&gt;
OO.o includes a way to add debugging code in per module, via&lt;br /&gt;
the &amp;lt;code&amp;gt;build debug=true&amp;lt;/code&amp;gt; command in each module.&lt;br /&gt;
This also adds lots of runtime assertions,&lt;br /&gt;
churning warnings etc. in addition to debug symbols - which&lt;br /&gt;
can be useful. To do just a plain build with debug symbols&lt;br /&gt;
though use &amp;lt;code&amp;gt;build debug=true dbg_build_only=true&amp;lt;/code&amp;gt;&lt;br /&gt;
or in later versions use &amp;lt;code&amp;gt;build debug=true dbglevel=2&amp;lt;/code&amp;gt; for max&lt;br /&gt;
output and dbglevel=1 or 0 for less output.&lt;br /&gt;
&lt;br /&gt;
You can also configure OO.o with --enable-symbols to build with symbolic generation.&lt;br /&gt;
&lt;br /&gt;
== gdb invocation ==&lt;br /&gt;
&lt;br /&gt;
If you debug with gdb, you may find that execution stops due to signals at inappropriate locations, especially if running against libgcj and need to debug ignoring its [http://gcc.gnu.org/java/gdb.html garbage-collection]. Best invocation is...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gdb ./soffice.bin&lt;br /&gt;
(gdb) handle SIGPWR nostop noprint&lt;br /&gt;
(gdb) handle SIGXCPU nostop noprint&lt;br /&gt;
(gdb) handle SIG33 nostop noprint&lt;br /&gt;
(gdb) run -norestore -writer&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
replace -writer with -draw/-impress/-calc/... as appropriate. The -norestore option prevents display of the crash reporter (as one frequently kills office during debugging).&lt;br /&gt;
&lt;br /&gt;
== The recommended .gdbinit file ==&lt;br /&gt;
&lt;br /&gt;
You can add the &amp;lt;tt&amp;gt;handle&amp;lt;/tt&amp;gt; commands from above to your &amp;lt;tt&amp;gt;~/.gdbinit&amp;lt;/tt&amp;gt; to save some typing.  Also you can define there macros to print the content of strings even in cases where dbg_dump() does not work.  The following is such recommended &amp;lt;tt&amp;gt;~/.gdbinit&amp;lt;/tt&amp;gt; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
set history filename ~/.gdbhistory&lt;br /&gt;
set history save on&lt;br /&gt;
&lt;br /&gt;
handle SIGPWR nostop noprint&lt;br /&gt;
handle SIGXCPU nostop noprint&lt;br /&gt;
handle SIG33 nostop noprint&lt;br /&gt;
&lt;br /&gt;
tabset 4&lt;br /&gt;
&lt;br /&gt;
# define &amp;quot;pu&amp;quot; command to display sal_Unicode *&lt;br /&gt;
define pu&lt;br /&gt;
  set $uni = $arg0&lt;br /&gt;
  set $len = $arg1&lt;br /&gt;
  set $i = 0&lt;br /&gt;
  printf &amp;quot;\&amp;quot;&amp;quot;&lt;br /&gt;
  while (*$uni &amp;amp;&amp;amp; $i++&amp;lt;$len &amp;amp;&amp;amp; $i&amp;lt;255)&lt;br /&gt;
    if (*$uni &amp;lt; 0x80)&lt;br /&gt;
      printf &amp;quot;%c&amp;quot;, *(char*)$uni++&lt;br /&gt;
    else&lt;br /&gt;
      printf &amp;quot;\\x%x&amp;quot;, *(short*)$uni++&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
  printf &amp;quot;\&amp;quot;\n&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
# define &amp;quot;pus&amp;quot; command to display rtl_uString&lt;br /&gt;
define pus&lt;br /&gt;
  if ($arg0.buffer)&lt;br /&gt;
    pu $arg0.buffer $arg0.length&lt;br /&gt;
  else&lt;br /&gt;
    print &amp;quot;Invalid/non-initialized rtl_uString.&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
# define &amp;quot;pou&amp;quot; command to display rtl::OUString&lt;br /&gt;
define pou&lt;br /&gt;
  if ($arg0.pData)&lt;br /&gt;
    pus $arg0.pData&lt;br /&gt;
  else&lt;br /&gt;
    print &amp;quot;Invalid/non-initialized OUString.&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
# define &amp;quot;ptu&amp;quot; command to display tools (Uni)String&lt;br /&gt;
define ptu&lt;br /&gt;
  if ($arg0.mpData)&lt;br /&gt;
    pu $arg0.mpData-&amp;gt;maStr $arg0.mpData-&amp;gt;mnLen&lt;br /&gt;
  else&lt;br /&gt;
    print &amp;quot;Invalid/non-initialized tools String.&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
# define &amp;quot;ps&amp;quot; command that will autodetect the type of the string,&lt;br /&gt;
# and call a function accordingly&lt;br /&gt;
define ps&lt;br /&gt;
  if ($arg0.pData)&lt;br /&gt;
    pou $arg0&lt;br /&gt;
  else&lt;br /&gt;
    if ($arg0.mpData)&lt;br /&gt;
      ptu $arg0&lt;br /&gt;
    else&lt;br /&gt;
      if ($arg0.buffer)&lt;br /&gt;
        pus $arg0&lt;br /&gt;
      else&lt;br /&gt;
        set $len = $arg1&lt;br /&gt;
        if ($len)&lt;br /&gt;
          pu $arg0 $len&lt;br /&gt;
        else&lt;br /&gt;
          # first 20 (unicode) chars&lt;br /&gt;
          pu $arg0 20&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
document ps&lt;br /&gt;
ps somestring [len]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Print the content of pretty much any OpenOffice.org string.&lt;br /&gt;
The length parameter is only used for sal_Unicode* strings: if not &lt;br /&gt;
provided, the first 20 characters will be printed for those kinds &lt;br /&gt;
of strings.&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this, you can use &amp;lt;tt&amp;gt;pou the_OUString&amp;lt;/tt&amp;gt; in gdb to print &amp;lt;tt&amp;gt;OUString&amp;lt;/tt&amp;gt; named &amp;lt;tt&amp;gt;the_OUString&amp;lt;/tt&amp;gt;, similarly &amp;lt;tt&amp;gt;pus the_rtl_uString&amp;lt;/tt&amp;gt; for &amp;lt;tt&amp;gt;rtl_uString&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;pu the_p_sal_Unicode&amp;lt;/tt&amp;gt; for &amp;lt;tt&amp;gt;sal_Unicode *&amp;lt;/tt&amp;gt;. For tools&amp;#039;s UniString (or just String for historical reasons) you can use &amp;lt;tt&amp;gt;ptu the_String&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ps anyString&amp;lt;/tt&amp;gt; autodetects &amp;lt;tt&amp;gt;anyString&amp;lt;/tt&amp;gt; and calls one of the p* macros accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Some further options ===&lt;br /&gt;
&lt;br /&gt;
Here are some other options some people might find helpful:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;set pagination off&amp;#039;&amp;#039;&amp;#039;: When displaying a backtrace don&amp;#039;t stop at each page of output. The user can scroll up the buffer with Shift+PgUp/PgDn.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;set history expansion on&amp;#039;&amp;#039;&amp;#039;: Enable tab expansion of already entered commands (history)&lt;br /&gt;
&lt;br /&gt;
== Starting at the beginning ==&lt;br /&gt;
&lt;br /&gt;
We start in &amp;#039;main&amp;#039; with a sal wrapper, that calls&lt;br /&gt;
vcl/source/app/svmain.cxx (SVMain). It invokes Main on&lt;br /&gt;
pSVData-&amp;amp;gt;mpApp; but pSVData is an in-line local. To&lt;br /&gt;
debug this use the pImplSVData global variable. eg:&lt;br /&gt;
&lt;br /&gt;
      p pImplSVData-&amp;amp;gt;maAppData&lt;br /&gt;
&lt;br /&gt;
This &amp;#039;Main&amp;#039; method is typically: &amp;lt;code&amp;gt;desktop/source/app/app.cxx (Main).&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Examining strings ==&lt;br /&gt;
&lt;br /&gt;
We have [[Hacking#Can_I_get_a_char_.2A.2C_please.3F|already]] seen that OO.o has&lt;br /&gt;
its own set of string classes, none of which gdb understands.&lt;br /&gt;
You need to use:&lt;br /&gt;
&amp;lt;code&amp;gt;(gdb) print dbg_dump(sWhatEver)&amp;lt;/code&amp;gt; to print the contents&lt;br /&gt;
of a UniString/ByteString/rtl::OUString/rtl::OString regardless&lt;br /&gt;
of the type when debugging C++ code. See Caolan&amp;#039;s &lt;br /&gt;
[http://www.skynet.ie/~caolan/TechTexts/GdbUnicodePrinting.html write-up]&lt;br /&gt;
for details.&lt;br /&gt;
&lt;br /&gt;
the functions &amp;lt;code&amp;gt;dbg_dump()&amp;lt;/code&amp;gt; may not be available in gdb due to link. Just copy them in your current source file from &amp;#039;/sal/rtl/source/debug_print&amp;#039; and add the associated includes &amp;lt;code&amp;gt;#include &amp;lt;rtl/strbuf.hxx&amp;gt; #include &amp;lt;rtl/ustring.hxx&amp;gt;&amp;lt;/code&amp;gt;. gdb should recognize them now.&lt;br /&gt;
&lt;br /&gt;
Another way is to use the macros from the [[Debugging#The_recommended_.gdbinit_file|recommended .gdbinit file]].  Unfortunately, so far works only for OUString, sal_Unicode *, and rtl_uString.&lt;br /&gt;
&lt;br /&gt;
== Getting the build order right ==&lt;br /&gt;
&lt;br /&gt;
The build dependencies of the modules are clearly crucial to&lt;br /&gt;
getting a clean build. When you type &amp;#039;build&amp;#039; in a module, first&lt;br /&gt;
build examines prj/build.list, eg.&amp;lt;code&amp;gt;neon/prj/build.lst&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
        xh      neon  :  soltools external expat NULL&lt;br /&gt;
&lt;br /&gt;
this specifies that &amp;#039;soltools&amp;#039;, &amp;#039;external&amp;#039; and &amp;#039;expat&amp;#039; have to&lt;br /&gt;
be satisfactorily built and delivered before neon can be built.&lt;br /&gt;
Occasionally these rules get broken, and people don&amp;#039;t notice for&lt;br /&gt;
a while.&lt;br /&gt;
&lt;br /&gt;
== It crashes, but only in gdb ==&lt;br /&gt;
&lt;br /&gt;
What fun &amp;amp;mdash; you symlinked desktop/unxlngi4.pro/bin/soffice to&lt;br /&gt;
soffice.bin in your install tree didn&amp;#039;t you. That works fine&lt;br /&gt;
if you just run it, but it seems gdb unpacks the symlink and&lt;br /&gt;
passes a fully qualified path as argv[0], which defeats the&lt;br /&gt;
hunting for the binary in the path, so it assigns the program&lt;br /&gt;
base path as &amp;lt;code&amp;gt;/opt/OpenOffice/OOO_STABLE_1/desktop/unxlngi4.pro/bin&amp;lt;/code&amp;gt;&lt;br /&gt;
and starts looking for (eg. applicat.rdb) in there. Of course&lt;br /&gt;
when it fails to find any setup information, it silently&lt;br /&gt;
crashes somewhere else yards away from the original problem.&lt;br /&gt;
&lt;br /&gt;
== It crashes, but doesn&amp;#039;t crash ==&lt;br /&gt;
&lt;br /&gt;
For various reasons signal handlers are trapped and life&lt;br /&gt;
can get rather confusing; thus it&amp;#039;s best for builders to&lt;br /&gt;
apply something like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
--- sal/osl/unx/signal.c&lt;br /&gt;
+++ sal/osl/unx/signal.c&lt;br /&gt;
@@ -188,6 +188,8 @@ static sal_Bool InitSignal()&lt;br /&gt;
             bSetILLHandler = sal_True;&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
+       bSetSEGVHandler = bSetWINCHHandler = bSetILLHandler = bDoHardKill = sal_False;&lt;br /&gt;
+&lt;br /&gt;
        SignalListMutex = osl_createMutex();&lt;br /&gt;
 &lt;br /&gt;
        act.sa_handler = SignalHandlerFunction;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== I can&amp;#039;t find the code from the trace ==&lt;br /&gt;
&lt;br /&gt;
Some methods, are described as having a special linkage, such that&lt;br /&gt;
they can be used in callbacks; these typically have a prefix:&lt;br /&gt;
&amp;#039;LinkStub&amp;#039;, so search for the latter part of the identifier in a&lt;br /&gt;
freetext search. eg.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
      IMPL_LINK( Window, ImplHandlePaintHdl, void*, EMPTYARG )&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
builds the &amp;#039;LinkStubImplHandlePaintHdl&amp;#039; method.&lt;br /&gt;
&lt;br /&gt;
== How can I re-build just the files I see in the trace ==&lt;br /&gt;
&lt;br /&gt;
Often when you run gdb on a build without debugging symbols, you get an unhelpful gdb trace, but yet you can&amp;#039;t afford the time/space to recompile all of OO.o with debugging symbols. Thus we have created a small perl helper, which will hunt for and touch files containing the symbols from your trace. This sub-set can then be re-built with debugging enabled for a better trace next time around:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    gdb ./soffice.bin&lt;br /&gt;
    ...&lt;br /&gt;
    bt&lt;br /&gt;
#0  0x40b4e0a1 in kill () from /lib/libc.so.6&lt;br /&gt;
#1  0x409acfe6 in raise () from /lib/libpthread.so.0&lt;br /&gt;
#2  0x447bcdbd in SfxMedium::DownLoad(Link const&amp;amp;amp;) () from ./libsfx641li.so&lt;br /&gt;
#3  0x447be151 in SfxMedium::SfxMedium(String const&amp;amp;amp;, unsigned short, unsigned char, SfxFilter const*, SfxItemSet*) ()&lt;br /&gt;
   from ./libsfx641li.so&lt;br /&gt;
#4  0x448339d3 in getCppuType(com::sun::star::uno::Reference&amp;lt;com::sun::star::document::XImporter&amp;gt; const*) () from ./libsfx641li.so&lt;br /&gt;
...&lt;br /&gt;
    quit&lt;br /&gt;
    cd base/OOO_STABLE_1/sfx2&lt;br /&gt;
    ootouch SfxMedium&lt;br /&gt;
    build debug=true&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Thus, all files referencing or implementing anything with SfxMedium will be touched, and hence rebuilt with  debugging symbols.&lt;br /&gt;
&lt;br /&gt;
[http://go-oo.org/developers/ooo-build/bin/ootouch ootouch] is not available upstream: it is available through ooo-build.&lt;br /&gt;
&lt;br /&gt;
== How can I re-build all the files in one source directory ==&lt;br /&gt;
&lt;br /&gt;
If you want to recompile the code in just your current directory, you can&lt;br /&gt;
use the killobj dmake target to remove the object files:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;pre&amp;gt;&lt;br /&gt;
    dmake killobj&lt;br /&gt;
    dmake&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== It always crashes in sal_XErrorHdl ==&lt;br /&gt;
&lt;br /&gt;
You are a victim of asynchronous X error reporting;&lt;br /&gt;
&amp;lt;code&amp;gt;export SAL_SYNCHRONIZE=1&amp;lt;/code&amp;gt; will make all the X traffic&lt;br /&gt;
synchronous, and report the error by the method that caused it,&lt;br /&gt;
it&amp;#039;ll also make OO.o far slower, and the timing different.&lt;br /&gt;
&lt;br /&gt;
== It silently fails to load my word file ==&lt;br /&gt;
&lt;br /&gt;
Caolan suggests: put breakpoints in ww8par.cxx top and tail of&lt;br /&gt;
SwWW8ImplReader::LoadDoc, and confirm that the document gets as far&lt;br /&gt;
as the import filter.&lt;br /&gt;
&lt;br /&gt;
A handy human place to put a breakpoint is in &lt;br /&gt;
SwWW8ImplReader::ReadPlainChars, you can see chunks of text as&lt;br /&gt;
they are read in. Alternatively SwWW8ImplReader::AppendTxtNode as&lt;br /&gt;
each paragraph is inserted.&lt;br /&gt;
&lt;br /&gt;
== How do I use the debug console ? ==&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org contains some debugging infrastructure; enabling it is pretty easy - what you need is a so-called [[Non_Product_Build|Non-Product Build]], see details and debug settings dialog there.&lt;br /&gt;
&lt;br /&gt;
Note that libraries from product and non-product builds are usually incompatible, so don&amp;#039;t mix them in the same installation.&lt;br /&gt;
&lt;br /&gt;
To actually fire up the debug settings dialog, press &amp;lt;alt&amp;gt;&amp;lt;shift&amp;gt;&amp;lt;ctrl&amp;gt;-D.&lt;br /&gt;
&lt;br /&gt;
== Draw/Impress text edit debugging ==&lt;br /&gt;
&lt;br /&gt;
When running a [[Non_Product_Build|Non-Product Build]], live edit mode in Draw/Impress text boxes has an extra debug hotkey: pressing &amp;lt;ctrl&amp;gt;&amp;lt;alt&amp;gt;-F2 writes information about the currently edited text into a debug.log file (currently Windows-only).&lt;br /&gt;
&lt;br /&gt;
== Excel Interop debugging ==&lt;br /&gt;
&lt;br /&gt;
To dump the contents of binary MS Excel files while loading them into OpenOffice.org, first get a local copy of the code module &amp;quot;oox&amp;quot;. Then:&lt;br /&gt;
* XLS files (BIFF2-BIFF8): define the environment variable &amp;lt;code&amp;gt;OOO_BIFFDUMPER&amp;lt;/code&amp;gt; pointing to file://..../oox/source/dump/biffdumper.ini (full path needed). Then run &amp;lt;code&amp;gt;soffice.bin foo.xls&amp;lt;/code&amp;gt; and you should get a foo.xls.dump directory in the same directory with the debug data in it. The new directory will contain the complete storage structure with all original streams, and the decoded streams with &amp;quot;.dump&amp;quot; suffix.&lt;br /&gt;
* XLSX, XLSM, XLSB files: define the environment variable &amp;lt;code&amp;gt;OOO_XLSBDUMPER&amp;lt;/code&amp;gt; pointing to file://..../oox/source/dump/xlsbdumper.ini (full path needed). Then run &amp;lt;code&amp;gt;soffice.bin foo.xlsb&amp;lt;/code&amp;gt;. XML streams will be pretty-printed, and known binary streams (e.g. the VBA project, and the streams used in XLSB format) are decoded.&lt;br /&gt;
* also PPTX, PPTM files are supported: define the environment variable &amp;lt;code&amp;gt;OOO_PPTXDUMPER&amp;lt;/code&amp;gt; pointing to file://..../oox/source/dump/pptxdumper.ini (full path needed). Then run &amp;lt;code&amp;gt;soffice.bin foo.pptx&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Note: this requires a debug build of the &amp;lt;code&amp;gt;oox&amp;lt;/code&amp;gt; module.  To easily get such a build, execute the following within your &amp;lt;code&amp;gt;sc&amp;lt;/code&amp;gt; directory: &amp;lt;code&amp;gt;build -- killobj ; build debug=true&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== The trace shows a crash in &amp;#039;poll&amp;#039; ==&lt;br /&gt;
&lt;br /&gt;
OO.o is a fairly threaded program, you&amp;#039;re probably just looking at the wrong thread: there are not likely to be bugs in poll. Use &amp;lt;code&amp;gt;thread apply all backtrace&amp;lt;/code&amp;gt; to get a backtrace of all threads - this will most likely fail. When it does do: &amp;lt;code&amp;gt;thread 1&amp;lt;/code&amp;gt; then &amp;lt;code&amp;gt;bt&amp;lt;/code&amp;gt; - most crashers occur in the &amp;#039;main&amp;#039; thread.&lt;br /&gt;
&lt;br /&gt;
== What does this trace mean ? ==&lt;br /&gt;
&lt;br /&gt;
There are several typical stack-traces that come up again&lt;br /&gt;
and again, one would be:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;pre&amp;gt;#15 0x4164a501 in raise () from /lib/tls/libc.so.6&lt;br /&gt;
#16 0x4164bcd9 in abort () from /lib/tls/libc.so.6&lt;br /&gt;
#17 0x415fb5a5 in std::set_unexpected ()&lt;br /&gt;
   from /home/mnagashree/m72install/program/libstdc++.so.5&lt;br /&gt;
#18 0x415fb5e2 in std::terminate ()&lt;br /&gt;
   from /home/mnagashree/m72install/program/libstdc++.so.5&lt;br /&gt;
#19 0x415fb69c in __cxa_rethrow ()&lt;br /&gt;
    &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This section of trace means (essentially) that an&lt;br /&gt;
exception was thrown - but there was no-one trying to&lt;br /&gt;
catch it. Often this means there was a missing&lt;br /&gt;
&amp;#039;try {} catch()&amp;#039; clause in one of the calling frames.&lt;br /&gt;
&lt;br /&gt;
A great way to debug exceptions is to add a breakpoint&lt;br /&gt;
in catch/throw, do this with &amp;lt;code&amp;gt;catch throw&amp;lt;/code&amp;gt; or &lt;br /&gt;
&amp;lt;code&amp;gt;catch catch&amp;lt;/code&amp;gt; in gdb.&lt;br /&gt;
&lt;br /&gt;
== Useful places to put breakpoints ==&lt;br /&gt;
&lt;br /&gt;
If you have compiled with debugging enabled: &amp;lt;code&amp;gt;build debug=true&amp;lt;/code&amp;gt; it is possible that you get some nice churning debug / assertion failure - and you want to get a pleasant &amp;amp;amp; detailed stack-trace: to do that do&lt;br /&gt;
&amp;lt;code&amp;gt;break osl_assertFailedLine&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== STLport and checking iterators ==&lt;br /&gt;
&lt;br /&gt;
The STL is a powerful tool but it also makes it easy - in the grand old C/C++ tradition - to shoot one selves in the foot, as we all know. STL containers and algorithms are now pervasive in OOo, so there is a need to validate the use of STL constructs in OO.o to find hidden problems.&lt;br /&gt;
&lt;br /&gt;
Fortunately the [http://www.stlport.org/ STLport library] - the default STL implementation for OO.o - has a powerful debug mode, and it&amp;#039;s easy to use. Since SRC680 m128 it is possible to use the environment variable &amp;lt;code&amp;gt;USE_STLP_DEBUG&amp;lt;/code&amp;gt; to switch on the STLport debug mode, since SRC680 m150 it works for Windows, too&lt;br /&gt;
&lt;br /&gt;
The most useful part of the STLport debug mode is iterator checking. Doing the OO.o smoke test and some little additional random testing we already found a number of questionable STL constructs.&lt;br /&gt;
&lt;br /&gt;
Only code paths which are exercised will be tested by the STLport debug mode, though. If STLport finds a questionable STL usage it will throw an assertion and terminate. It is usually quite easy to extract a precise stack trace.&lt;br /&gt;
&lt;br /&gt;
Some notes:&lt;br /&gt;
* STLport debug mode iterators are no pointers! We&amp;#039;ve cleaned up all occurrences of the lazy - and wrong - usages of iterators as pointers in SRC680 m128/m150, but maybe something new has already crept in. This clean up also helps with other STL implementations, like the one which comes with gcc-4.x&lt;br /&gt;
* A complete recompile is necessary, the debug modes renders all objects with STL constructs binary incompatible&lt;br /&gt;
* The STLport debug mode breaks the complexity assertions of the STL. Theoretically some operations should be much slower in debug mode than in product mode. In practice I didn&amp;#039;t notice a real slowdown of OO.o.&lt;br /&gt;
&lt;br /&gt;
[[Category:Debugging]][[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Non_Product_Build&amp;diff=235831</id>
		<title>Non Product Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Non_Product_Build&amp;diff=235831"/>
		<updated>2015-01-27T23:13:37Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: Orignal was correct. Changed back.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A so-called &amp;#039;&amp;#039;&amp;#039;Non-Product Build&amp;#039;&amp;#039;&amp;#039; of [[OpenOffice.org|Apache OpenOffice]] contains a lot of additional diagnostics and [[Debugging|debug]] code, which is available in this special mode only. Such a build is usually larger and slower than an ordinary &amp;#039;&amp;#039;&amp;#039;Product Build&amp;#039;&amp;#039;&amp;#039; (which basically means: every build you ever downloaded from OpenOffice.org), but is very useful for developers.&lt;br /&gt;
&lt;br /&gt;
By default a Product Build is created, i.e. it is ready for release after completion. Non-Product Builds are created using the &amp;lt;code&amp;gt;--enable-dbgutil&amp;lt;/code&amp;gt; switch during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, which makes creation a non-product build simple. The debug options window lets you control your level of annoyance. At least the assertions raised are interesting for developers.&lt;br /&gt;
&lt;br /&gt;
The most visible feature of Non-Product Builds are so-called assertions - Basically message boxes popping up and saying that something went not the way the developer expected it to go. Such assertions are interesting for developers and are considered bugs. As such they should be [http://qa.openoffice.org/issue_handling/pre_submission.html reported in IssueZilla], with the summary starting with &amp;quot;ASSERT:&amp;quot; or &amp;quot;ERROR:&amp;quot; (since ERROR: is used by most of the assertion message boxes themself).&lt;br /&gt;
&lt;br /&gt;
To use (or do QA for) the additional debug features: just run AOO, and when it&amp;#039;s in full-flow, press &amp;lt;Alt&amp;gt;-&amp;lt;Shift&amp;gt;-&amp;lt;Control&amp;gt;-&amp;#039;D&amp;#039; in that order; this should popup a  debugging options window:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Vcl_debug_options.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The debugging options are subsequently saved to the .dbgsv.ini file for the next run (you can control the location of that with e.g. &amp;lt;code&amp;gt;export DBGSV_INIT=$(HOME)/.dbgsv.init&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Try the help integrated into the debugging options window to see what features it offers.&lt;br /&gt;
&lt;br /&gt;
For available tools in non-product builds, have a look at the various &amp;lt;code&amp;gt;DBG_foo&amp;lt;/code&amp;gt; macros in &amp;lt;code&amp;gt;tools/inc/tools/debug.hxx&amp;lt;/code&amp;gt;, or, if you already are knowledgeable about this, let others participate by writing your knowledge down here.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build_System]]&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Non_Product_Build&amp;diff=235823</id>
		<title>Non Product Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Non_Product_Build&amp;diff=235823"/>
		<updated>2015-01-22T00:21:50Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: Changed key sequence to match what is in Debugging page.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A so-called &amp;#039;&amp;#039;&amp;#039;Non-Product Build&amp;#039;&amp;#039;&amp;#039; of [[OpenOffice.org|Apache OpenOffice]] contains a lot of additional diagnostics and [[Debugging|debug]] code, which is available in this special mode only. Such a build is usually larger and slower than an ordinary &amp;#039;&amp;#039;&amp;#039;Product Build&amp;#039;&amp;#039;&amp;#039; (which basically means: every build you ever downloaded from OpenOffice.org), but is very useful for developers.&lt;br /&gt;
&lt;br /&gt;
By default a Product Build is created, i.e. it is ready for release after completion. Non-Product Builds are created using the &amp;lt;code&amp;gt;--enable-dbgutil&amp;lt;/code&amp;gt; switch during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, which makes creation a non-product build simple. The debug options window lets you control your level of annoyance. At least the assertions raised are interesting for developers.&lt;br /&gt;
&lt;br /&gt;
The most visible feature of Non-Product Builds are so-called assertions - Basically message boxes popping up and saying that something went not the way the developer expected it to go. Such assertions are interesting for developers and are considered bugs. As such they should be [http://qa.openoffice.org/issue_handling/pre_submission.html reported in IssueZilla], with the summary starting with &amp;quot;ASSERT:&amp;quot; or &amp;quot;ERROR:&amp;quot; (since ERROR: is used by most of the assertion message boxes themself).&lt;br /&gt;
&lt;br /&gt;
To use (or do QA for) the additional debug features: just run AOO, and when it&amp;#039;s in full-flow, press &amp;lt;Control&amp;gt;-&amp;lt;Alt&amp;gt;-&amp;lt;Shift&amp;gt;-&amp;#039;D&amp;#039; in that order; this should popup a  debugging options window:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Vcl_debug_options.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The debugging options are subsequently saved to the .dbgsv.ini file for the next run (you can control the location of that with e.g. &amp;lt;code&amp;gt;export DBGSV_INIT=$(HOME)/.dbgsv.init&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Try the help integrated into the debugging options window to see what features it offers.&lt;br /&gt;
&lt;br /&gt;
For available tools in non-product builds, have a look at the various &amp;lt;code&amp;gt;DBG_foo&amp;lt;/code&amp;gt; macros in &amp;lt;code&amp;gt;tools/inc/tools/debug.hxx&amp;lt;/code&amp;gt;, or, if you already are knowledgeable about this, let others participate by writing your knowledge down here.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build_System]]&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235820</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235820"/>
		<updated>2015-01-17T23:24:51Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Sometimes you might need a &amp;#039;installed&amp;#039; format so that all files were put into installset directory. Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Debugging|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235819</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235819"/>
		<updated>2015-01-17T23:18:28Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Sometimes you might need a &amp;#039;installed&amp;#039; format so that all files were put into installset directory. Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Non Product Build|Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235818</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235818"/>
		<updated>2015-01-17T23:14:48Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Sometimes you might need a &amp;#039;installed&amp;#039; format so that all files were put into installset directory. Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [[Documentation/Building Guide AOO/Step by step|Step-by-Step Building Guide for Different Platforms]] =&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [[OpenOffice and Eclipse|Building with Eclipse]] ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Additional Build Resources =&lt;br /&gt;
== [[Build System:Debugging]] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Non_Product_Build&amp;diff=235817</id>
		<title>Non Product Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Non_Product_Build&amp;diff=235817"/>
		<updated>2015-01-17T23:01:34Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A so-called &amp;#039;&amp;#039;&amp;#039;Non-Product Build&amp;#039;&amp;#039;&amp;#039; of [[OpenOffice.org|Apache OpenOffice]] contains a lot of additional diagnostics and [[Debugging|debug]] code, which is available in this special mode only. Such a build is usually larger and slower than an ordinary &amp;#039;&amp;#039;&amp;#039;Product Build&amp;#039;&amp;#039;&amp;#039; (which basically means: every build you ever downloaded from OpenOffice.org), but is very useful for developers.&lt;br /&gt;
&lt;br /&gt;
By default a Product Build is created, i.e. it is ready for release after completion. Non-Product Builds are created using the &amp;lt;code&amp;gt;--enable-dbgutil&amp;lt;/code&amp;gt; switch during &amp;lt;code&amp;gt;configure&amp;lt;/code&amp;gt;, which makes creation a non-product build simple. The debug options window lets you control your level of annoyance. At least the assertions raised are interesting for developers.&lt;br /&gt;
&lt;br /&gt;
The most visible feature of Non-Product Builds are so-called assertions - Basically message boxes popping up and saying that something went not the way the developer expected it to go. Such assertions are interesting for developers and are considered bugs. As such they should be [http://qa.openoffice.org/issue_handling/pre_submission.html reported in IssueZilla], with the summary starting with &amp;quot;ASSERT:&amp;quot; or &amp;quot;ERROR:&amp;quot; (since ERROR: is used by most of the assertion message boxes themself).&lt;br /&gt;
&lt;br /&gt;
To use (or do QA for) the additional debug features: just run AOO, and when it&amp;#039;s in full-flow, press &amp;lt;Alt&amp;gt;-&amp;lt;Shift&amp;gt;-&amp;lt;Control&amp;gt; &amp;#039;D&amp;#039; in that order; this should popup a  debugging options window:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Vcl_debug_options.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The debugging options are subsequently saved to the .dbgsv.ini file for the next run (you can control the location of that with e.g. &amp;lt;code&amp;gt;export DBGSV_INIT=$(HOME)/.dbgsv.init&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Try the help integrated into the debugging options window to see what features it offers.&lt;br /&gt;
&lt;br /&gt;
For available tools in non-product builds, have a look at the various &amp;lt;code&amp;gt;DBG_foo&amp;lt;/code&amp;gt; macros in &amp;lt;code&amp;gt;tools/inc/tools/debug.hxx&amp;lt;/code&amp;gt;, or, if you already are knowledgeable about this, let others participate by writing your knowledge down here.&lt;br /&gt;
&lt;br /&gt;
[[Category:Build_System]]&lt;br /&gt;
[[Category:Debugging]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Using_Cpp_with_the_OOo_SDK&amp;diff=235718</id>
		<title>Using Cpp with the OOo SDK</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Using_Cpp_with_the_OOo_SDK&amp;diff=235718"/>
		<updated>2014-11-06T00:34:52Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/Banner}}&lt;br /&gt;
&lt;br /&gt;
This site is about using C++ as a language to program OpenOffice extensions. &lt;br /&gt;
==== Common ====&lt;br /&gt;
* [[CppSDKAuthors|About the Author and Contributors]]&lt;br /&gt;
* [http://openoffice.apache.org/license.html| The SDK is licensed under ALv2]&lt;br /&gt;
* [[SDKInstallation|How to install the SDK and compile the C++ examples]]&lt;br /&gt;
* [[SDKCppLanguage|The UNO C++ Language]]&lt;br /&gt;
* [[UNO_automation_with_a_binary_(executable)|OpenOffice.org&amp;#039;s UNO automation with a binary (executable)]]&lt;br /&gt;
==== Writer, Calc, Draw and Impress ====&lt;br /&gt;
* [[Programming OooWriter |Programming OooWriter with C++]]&lt;br /&gt;
* [[Calc/API/Programming|OpenOffice Calc]]&lt;br /&gt;
* [[Programming_OOoDraw_and_OOoImpress|Programming OOoDraw and OOoImpress with C++]]&lt;br /&gt;
* [[Working_with_Shapes |Working with Shapes in C++]]&lt;br /&gt;
==== General Utilities ====&lt;br /&gt;
*[[Playing_with_Window_Toolkit_AWT|Playing with Window Toolkit AWT]]&lt;br /&gt;
*[[Executing_an_OOoBasic_macro_with_Cpp|Executing an OOoBasic macro with C++]]&lt;br /&gt;
* [[IDL_Files_and_Cpp|IDL Files and C++]]&lt;br /&gt;
* [[UNO_registery_and_Bootstrapping|UNO registery and Bootstrapping]]&lt;br /&gt;
* [[Constructing_Helpers|Constructing Helpers]]&lt;br /&gt;
==== Components ====&lt;br /&gt;
* [[Constructing_Components|Constructing Components in C++]]&lt;br /&gt;
* [[Component_and_Dialog|Managing a Dialog in a Component]]&lt;br /&gt;
* [[Going_further_with_Dialog_and_Component|Going further with Dialog and Components]]&lt;br /&gt;
* [[Writing_Professional_Components|Writing professional Components]]&lt;br /&gt;
==== AddOns ====&lt;br /&gt;
* [[Add-on|Constructing an Addon]]&lt;br /&gt;
* [[CompleteAddIn | OOoCalc AddOn in C++]]&lt;br /&gt;
* [[XML_and_Filter |XML, Filters and Files]]&lt;br /&gt;
{{Documentation/Caution|I have decided to give up with this C++ documentation. My last work was to add two chapters in summer 2009. I have done nothing more during last year. I only want to say this document is completely free, unfortunatly is not finished (particularly with addon and dialog). Please let this caution banner for a year and remove it after because tradition in OpenOffice documentation is to remove author&amp;#039;s names. After a year, it would be also great to remove my name everywhere it appears in other chapters. Thank you in Advance. 08:52, 26 August 2010 (UTC)}} &lt;br /&gt;
= See also=&lt;br /&gt;
==== General ====&lt;br /&gt;
* [[FR/Documentation/Cpp_Guide|French version of this document]].&lt;br /&gt;
* [[Documentation/DevGuide/OpenOffice.org_Developers_Guide | Developer&amp;#039;s Guide]]&lt;br /&gt;
* [[Uno/Cpp/Tutorials/Introduction_to_Cpp_Uno|C++ and UNO tutorial]]&lt;br /&gt;
* Writing a Program to Control OpenOffice.org, by Franco Pingiori — [http://www.linuxjournal.com/article/8550 Part 1] and [http://www.linuxjournal.com/article/8608 Part 2], Linux Journal&lt;br /&gt;
* [[Tutorial_UNO_Library|UNO tutorial]]&lt;br /&gt;
* [[Tutorial_UNO_IDL|UNO IDL]]&lt;br /&gt;
* [[Uno/Article/Types%26Reflection]]&lt;br /&gt;
* [http://udk.openoffice.org/common/man/concept/unointro.html UNO Introduction]&lt;br /&gt;
* [http://www.oooforum.org/forum/viewtopic.phtml?t=8702 Working with a database in C++] (not tackled in this document at the moment).&lt;br /&gt;
* [[Compiler_versions_used_by_port_maintainers_and_release_engineers|Compiler versions used by port maintainers and release engineers]]&lt;br /&gt;
==== Coding ==== &lt;br /&gt;
* [[Writing_correct_Cplusplus|Writing correct C++]]&lt;br /&gt;
* [[MakeFile|Using make utility with SDK]] &lt;br /&gt;
* [[Writing_warning-free_code|Writing warning-free code]]&lt;br /&gt;
* [[Debugging |Debugging]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorial]]&lt;br /&gt;
[[Category:Cpp]]&lt;br /&gt;
[[Category:Documentation/Developer&amp;#039;s Guide]]&lt;br /&gt;
[[Category:Uno]]&lt;br /&gt;
[[Category:Article]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Step_by_step&amp;diff=235697</id>
		<title>Documentation/Building Guide AOO/Step by step</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Step_by_step&amp;diff=235697"/>
		<updated>2014-10-13T21:26:13Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Step by step building guides for different platforms}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
This page is intended as a collection of simple step-by-step recipes to build Apache OpenOffice from source code.  A more thorough explanation of what the individual steps do and why they are necessary can be found in the [[Documentation/Building_Guide_AOO|building guide]].&lt;br /&gt;
=Ubuntu 14.04=&lt;br /&gt;
The basic building steps under Ubuntu 12.04 (see below) are to be followed in Ubuntu 14.04 as well; however, there are some minor build issues that any developer, using this OS, needs to be aware of, if he gets stuck while building. The following is the list of issues, with their fixes, that a developer may face with:&lt;br /&gt;
&lt;br /&gt;
* Issue 124712 (build broken in svl); see the link https://issues.apache.org/ooo/show_bug.cgi?id=124712 for detailed information.&lt;br /&gt;
If you are building trunk, the patch is already applied; if you are building from a release tag or tarball, the patch needs to be applied for all releases &amp;lt;= 4.1.1.&lt;br /&gt;
&lt;br /&gt;
* Issue 125475; see the link https://issues.apache.org/ooo/show_bug.cgi?id=125475 for detailed information. This happens if you explicitly upgraded your GCC and related tools to version 4.9; it will not appear if you use GCC 4.8.x.&lt;br /&gt;
&lt;br /&gt;
As the BZ says, it is because of buggy toolchain g++4.9. So for now in Ubuntu Linux 14.04, build the source using g++4.8.2, gcc4.8.2; these are the default compilers in Ubuntu Linux 14.04 anyway; please check it using the following commands:&lt;br /&gt;
  g++ -v&lt;br /&gt;
  gcc -v&lt;br /&gt;
if not, you&amp;#039;ve to download them.&lt;br /&gt;
  sudo apt-get install g++-4.8&lt;br /&gt;
  cd /usr/bin&lt;br /&gt;
  rm gcc&lt;br /&gt;
  rm g++&lt;br /&gt;
  ln -s gcc-4.8 gcc&lt;br /&gt;
  ln -s g++-4.8 g++&lt;br /&gt;
&lt;br /&gt;
* Failed to find ./solver/420/unxlngx6.pro/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 error.&lt;br /&gt;
&lt;br /&gt;
  cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 ./solver/420/unxlngx6.pro/lib/&lt;br /&gt;
  rm ./solver/420/unxlngx6.pro/lib/libstdc++.so.6&lt;br /&gt;
  ln -s ./solver/420/unxlngx6.pro/lib/libstdc++.so.6.0.20 ./solver/420/unxlngx6.pro/lib/libstdc++.so.6&lt;br /&gt;
&lt;br /&gt;
* No such file or directory - connectivity/virtualdbtools.hxx while building svx.&lt;br /&gt;
&lt;br /&gt;
if you get an error like this, then that means connectivity is not built properly. Build connectivity using build --all:connectivity and this error will go away.&lt;br /&gt;
&lt;br /&gt;
=Ubuntu 12.04=&lt;br /&gt;
&lt;br /&gt;
*Setup VirtualBox with Ubuntu 12.04 64 bit on Windows7 64bit host.  A native installation is of course fine, too.&lt;br /&gt;
*Let updater update ca. 380 packages. Restart.&lt;br /&gt;
*Get the source.  You can start with the source release or by checking out from SVN:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source release&lt;br /&gt;
! SVN&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Build from source release if you want to build OpenOffice once but don&amp;#039;t want to do any development.&lt;br /&gt;
| Build from SVN if you want to development work with OpenOffice.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
* Download AOO 3.4.1 source tarball from&lt;br /&gt;
http://people.apache.org/~jsc/developer-snapshots/r1372282/src/aoo-3.4.1-incubating-src.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Optional: Download signature from&lt;br /&gt;
http://people.apache.org/~jsc/developer-snapshots/r1372282/src/aoo-3.4.1-incubating-src.tar.bz2.asc&lt;br /&gt;
&lt;br /&gt;
and verify the source tarball with&lt;br /&gt;
 gpg --verify aoo-3.4.1-incubating-src.tar.bz2.asc \&lt;br /&gt;
              aoo-3.4.1-incubating-src.tar.bz2&lt;br /&gt;
Note that you have to have the keys already imported to your key chain.&lt;br /&gt;
The keys can be found on the download page:&lt;br /&gt;
&lt;br /&gt;
http://www.apache.org/dist/incubator/ooo/KEYS&lt;br /&gt;
&lt;br /&gt;
* Unpack source:&lt;br /&gt;
  cd /tmp&lt;br /&gt;
  tar -xjf ~/Downloads/aoo-3.4.1-incubating-src.tar.bz2&lt;br /&gt;
  cd aoo-3.4.1/main&lt;br /&gt;
| &lt;br /&gt;
* Start with creating a parent directory for the source code.  Don&amp;#039;t use &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; because that is deleted on every boot:&lt;br /&gt;
  sudo mkdir /source&lt;br /&gt;
  sudo chown &amp;lt;your-user-name&amp;gt; /source&lt;br /&gt;
  cd /source&lt;br /&gt;
* Install subversion and checkout the source:&lt;br /&gt;
  sudo apt-get install subversion&lt;br /&gt;
  svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo-trunk&lt;br /&gt;
  cd aoo-trunk/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Install requirements (this will also install packages that are not listed):&lt;br /&gt;
  sudo apt-get install g++ gcc bison flex libarchive-zip-perl libcups2-dev \&lt;br /&gt;
       libpam0g-dev gperf libfreetype6-dev libxaw7-dev libfontconfig1-dev \&lt;br /&gt;
       libxrandr-dev patch libgconf2-dev libgnomevfs2-dev ant libgtk2.0-dev \&lt;br /&gt;
       junit junit4 libidl-dev liborbit2-dev openjdk-6-jdk libwww-perl \&lt;br /&gt;
       libxml-parser-perl autoconf libssl-dev&lt;br /&gt;
&lt;br /&gt;
* Run autoconf to generate configure script:&lt;br /&gt;
  autoconf&lt;br /&gt;
&lt;br /&gt;
* Configure (see the building guide section on [[Documentation/Building_Guide_AOO#Configuration_and_bootstrapping|configuration]] for further options):&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
      --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz \&lt;br /&gt;
      --disable-odk \&lt;br /&gt;
      --disable-binfilter&lt;br /&gt;
&lt;br /&gt;
* Finish configuration and download missing tarballs and extensions:&lt;br /&gt;
  ./bootstrap&lt;br /&gt;
&lt;br /&gt;
* Include the configured environment:&lt;br /&gt;
  source LinuxX86-64Env.Set.sh&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
  cd instsetoo_native/&lt;br /&gt;
  build --all&lt;br /&gt;
This may take a while to complete.  Several hours are not uncommon.  To speed things up you may want to run &amp;#039;build&amp;#039; like this&lt;br /&gt;
  build --all -P&amp;lt;n&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
to start a parallel build.  Replace &amp;lt;n&amp;gt; with the number of CPU cores. &lt;br /&gt;
&lt;br /&gt;
* Install:&lt;br /&gt;
  sudo dpkg -i unxlngx6.pro/Apache_OpenOffice/deb/install/en-US/DEBS/*.deb&lt;br /&gt;
  sudo dpkg -i unxlngx6.pro/Apache_OpenOffice/deb/install/en-US/DEBS/desktop-integration/openoffice.org3.4-debian-menus_3.4-9593_all.deb&lt;br /&gt;
&lt;br /&gt;
* Start Apache OpenOffice:&lt;br /&gt;
  /opt/openoffice.org3/program/soffice&lt;br /&gt;
&lt;br /&gt;
=Windows 7=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Complete requirements found at [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO#General_Build_Requirements General Build Requirements] and [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Building_on_Windows Building on Windows].&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;sample&amp;#039;&amp;#039;&amp;#039; step-by-step guide - check the complete requirements and report on dev@openoffice.apache.org, if problems with this step-by-step guide occurs.&lt;br /&gt;
&lt;br /&gt;
*Install cygwin, &amp;#039;&amp;#039;&amp;#039;32bit version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
**Browse to http://cygwin.com.&lt;br /&gt;
**Click on the setup.exe link (most recent Cygwin DLL at the moment is 1.7.16-1) to download the installer and run it.&lt;br /&gt;
**Click through the questions.&lt;br /&gt;
**On the &amp;quot;Choose A Download Site&amp;quot; select a nearby download server.&lt;br /&gt;
**Expect a &amp;quot;Setup Alert&amp;quot; dialog box on the first cygwin install on the computer.&lt;br /&gt;
**Click OK to close it.&lt;br /&gt;
**On the page that allows you to select additional packages just select wget (enter wget in the Search box and select the wget enty in the Web/Default section.&lt;br /&gt;
**Click Next to finish package selection.&lt;br /&gt;
**Click Next to resolve dependencies.&lt;br /&gt;
**After installation is finished click the Finish button to close the dialog. &lt;br /&gt;
&lt;br /&gt;
*Start cygwin bash in a terminal&lt;br /&gt;
::One way to do this is:&lt;br /&gt;
::*Press WindowsKey-R&lt;br /&gt;
::*Enter c:\cygwin\Cygwin.bat&lt;br /&gt;
::*Hit Return.&lt;br /&gt;
&lt;br /&gt;
* Install Java.&lt;br /&gt;
::Choose between JDK 1.7 or OpenJDK.&lt;br /&gt;
&lt;br /&gt;
* Install Ant&lt;br /&gt;
**Browse to http://ant.apache.org/bindownload.cgi&lt;br /&gt;
**Chose a mirror near you.&lt;br /&gt;
**Download the zip archive (currently that is apache-ant-1.8.4-bin.zip).&lt;br /&gt;
**Open downloaded archive in file explorer and unzip it to a location of your choice, eg &amp;lt;code&amp;gt;c:\&amp;lt;/code&amp;gt;.  Note that &amp;lt;code&amp;gt;C:\Program Files (x86)&amp;lt;/code&amp;gt; will not work due to problems of quoting the spaces and parentheses.&lt;br /&gt;
  &lt;br /&gt;
* Prepare to install missing cygwin packages by installing apt-cyg from googlecode.com&amp;lt;pre&amp;gt;cd to /cygdrive/c/temp&amp;lt;/pre&amp;gt;(or any other temporary directory of your choice)&amp;lt;pre&amp;gt;wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg&amp;amp;#10;chmod +x apt-cyg&amp;amp;#10;mv apt-cyg /usr/local/bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Use apt-cyg to install missing cygwin packages&amp;lt;pre&amp;gt;apt-cyg install perl zip unzip gperf autoconf rsync gcc4-g++ bison flex patch subversion&amp;lt;/pre&amp;gt;or alternatively run setup and select the packages&amp;lt;br /&amp;gt;If you will use git, you need in addition the packages&amp;lt;pre&amp;gt;git git-svn&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Replace symlinked awk with copy of gawk.exe:&amp;lt;pre&amp;gt;rm /usr/bin/awk&amp;amp;#10;mv /usr/bin/gawk.exe /usr/bin/awk.exe&amp;lt;/pre&amp;gt;Note that if the &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt; command fails then the &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; is not necessary.&lt;br /&gt;
    &lt;br /&gt;
* Install Microsoft Windows SDK for Windows 7 and .NET Framework 3.5. SP1 (recommend by Microsoft) &lt;br /&gt;
** Browse to http://www.microsoft.com/en-us/download/details.aspx?id=3138.&lt;br /&gt;
** Download Setup.exe and run the web installer (note that it will be saved as Setup(1).exe to disambiguate from the previously downloaded cygwin installer.)  You can use the default values in the installation dialog.&lt;br /&gt;
** Alternatively download the iso image http://www.microsoft.com/en-us/download/details.aspx?id=18950. Burn it to a dvd or unzip it.&lt;br /&gt;
&lt;br /&gt;
* Download MS Visual C++ 2008 SP1 Redistributable Package (x86)&lt;br /&gt;
** http://www.microsoft.com/en-us/download/details.aspx?id=26368 ( There have been security updates, which are not included in older versions.)&lt;br /&gt;
**Download files vcredist_x86.exe and vcrestist_x64.exe&amp;lt;br /&amp;gt;  If you download the most actual version of Apache OpenOffice and unpack it, you will find the files vcredist_x86.exe and vcredist_x64.exe in folder redist. You can use them as well.&lt;br /&gt;
&lt;br /&gt;
* Optional: Install DirectX SDK (for graphics hardware support in the slide show)&lt;br /&gt;
** Browse to http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;amp;id=6812&lt;br /&gt;
** Download and run DXSDK_Jun10.exe&lt;br /&gt;
&lt;br /&gt;
* Optional: Install NSIS installer (for creating the EXE installer)&lt;br /&gt;
** Browse to http://nsis.sourceforge.net&lt;br /&gt;
** Download and run the installer.&lt;br /&gt;
&lt;br /&gt;
* Get AOO source code. You can use the source release or check out from SVN. Build from source release if you want to build OpenOffice once but don&amp;#039;t want to contribute patches. If you will contribute patches, you need to generate them against an actual version of trunk. In this case check out from SVN to be able to rebase before generating patches. You can work with subversion or with git-svn.&lt;br /&gt;
&lt;br /&gt;
::; Source release : &lt;br /&gt;
::* Browse to http://www.openoffice.org/download/other.html#tested-sdk and locate the table row that starts with &amp;quot;Source code&amp;quot;&lt;br /&gt;
::* Download source code in an archive format of your choice (note that tar.bz2 is typically smaller than tar.gz and zip)&lt;br /&gt;
::* Optional: Verify the archive - following given link or instructions.&lt;br /&gt;
::* Unpack source (in cygwin-terminal). Use the file name exactly as downloaded.&amp;lt;pre&amp;gt;cd /tmp&amp;amp;#10;tar -xjf &amp;lt;download-location&amp;gt;/&amp;lt;downloaded-source-release.tar.bz2&amp;gt;&amp;amp;#10;cd &amp;lt;unpacked-source&amp;gt;/main&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::; Checkout from SVN using subversion :&lt;br /&gt;
::*Get subversion (only first time)&amp;lt;pre&amp;gt;apt-cyg install subversion&amp;lt;/pre&amp;gt; &lt;br /&gt;
::*Start with creating a parent directory for the source code: &amp;lt;pre&amp;gt;mkdir /cygdrive/c/source&amp;amp;#10;cd /cygdrive/c/source&amp;lt;/pre&amp;gt;&lt;br /&gt;
::*Check out source from Apache SVN repository&amp;lt;pre&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo-trunk&amp;amp;#10;cd aoo-trunk/main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::; Checkout from SVN using git-svn :&lt;br /&gt;
::*Get git and git-svn (only first time)&amp;lt;pre&amp;gt;apt-cyg install git git-svn&amp;lt;/pre&amp;gt;&lt;br /&gt;
::*Get the actual revision number from http://svn.apache.org/viewvc/OpenOffice/trunk/, e.g. 1234567&lt;br /&gt;
::*Create an empty directory and change to it, e.g.&amp;lt;pre&amp;gt;mkdir /cygdrive/c/source&amp;amp;#10;cd /cygdrive/c/source&amp;lt;/pre&amp;gt;&lt;br /&gt;
::*Check out source from Apache SVN repository&amp;lt;pre&amp;gt;git svn clone --revision 1234567:HEAD https://svn.apache.org/repos/asf/openoffice/trunk&amp;amp;#10;cd trunk/main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Remember the source path (this is optional, it keeps the following lines short):&amp;lt;pre&amp;gt;SourceMain=`pwd`&amp;lt;/pre&amp;gt; [Why? I have not used it. [[User:Regina|Regina]] ([[User talk:Regina|talk]]) 21:42, 24 February 2013 (UTC)]&lt;br /&gt;
:[Added explanation above [[User:Andre|Andre]]]&lt;br /&gt;
&lt;br /&gt;
* Optional: Get dbghelp.dll (for using the &amp;lt;code&amp;gt;--enable-dbgutil&amp;lt;/code&amp;gt; configure option)&lt;br /&gt;
** This dll is part of MS Visual Studio.&lt;br /&gt;
** Copy file to &amp;lt;code&amp;gt;main/external/dbghelp&amp;lt;/code&amp;gt;. Use Windows file manager or in cygwin terminal&amp;lt;pre&amp;gt;cp /cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 9.0/Common7/IDE/dbghelp.dll $SourceMain/external/dbghelp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copy vcredist_x86.exe and vcredist_x64.exe (see above) to main/external/vcredist.&lt;br /&gt;
** Use Windows file manager or in cygwin terminal&amp;lt;pre&amp;gt;cp &amp;lt;download-location&amp;gt;/vcredist_x86.exe $SourceMain/external/vcredist&amp;amp;#10;cp &amp;lt;download-location&amp;gt;/vcredist_x64.exe $SourceMain/external/vcredist&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Get GDI+ redistributable.&lt;br /&gt;
**Browse to http://www.microsoft.com/en-us/download/details.aspx?id=18909&lt;br /&gt;
**Download WindowsXP-KB975337-x86-ENU.exe&lt;br /&gt;
**Run WindowsXP-KB975337-x86-ENU.exe&lt;br /&gt;
**Enter a temporary path (eg c:\temp\gdiplus) in the dialog and click OK to extract files&lt;br /&gt;
**Copy gdiplus.dll to main/external&amp;lt;pre&amp;gt;cp /cygdrive/c/temp/gdiplus/asms/10/msft/windows/gdiplus/gdiplus.dll $SourceMain/external/gdiplus/&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Remove the temporary path&amp;lt;pre&amp;gt;rm -fr /cygdrive/c/temp/gdiplus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Get msvcr100.dll:&amp;lt;pre&amp;gt;cp /cygdrive/c/Windows/System32/msvcr100.dll $SourceMain/external/msvcp100&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Make sure that you are in the main source directory:&amp;lt;pre&amp;gt;cd $SourceMain&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* Run autoconf to create the configure script:&amp;lt;pre&amp;gt;autoconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Call configure&lt;br /&gt;
** Run configure (adapt paths as necessary)&amp;lt;pre&amp;gt;SDK_PATH=&amp;quot;/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0&amp;quot;&amp;amp;#10;./configure \&amp;amp;#10;    --with-frame-home=&amp;quot;$SDK_PATH&amp;quot; \&amp;amp;#10;    --with-psdk-home=&amp;quot;$SDK_PATH&amp;quot; \&amp;amp;#10;    --with-midl-path=&amp;quot;$SDK_PATH/bin&amp;quot; \&amp;amp;#10;    --with-directx-home=&amp;quot;C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)&amp;quot; \&amp;amp;#10;    --with-ant-home=&amp;quot;/cygdrive/c/apache-ant-1.8.4&amp;quot; \&amp;amp;#10;    --with-dmake-url=&amp;quot;http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2&amp;quot; \&amp;amp;#10;    --with-epm-url=&amp;quot;http://www.msweet.org/files/project2/epm-3.7-source.tar.gz&amp;quot; \&amp;amp;#10;    --enable-pch \&amp;amp;#10;    --disable-atl \&amp;amp;#10;    --disable-activex \&amp;amp;#10;    --without-junit&amp;lt;/pre&amp;gt;If you have not installed the optional DirectX SDK then remove the &amp;lt;code&amp;gt;--with-directx-home switch&amp;lt;/code&amp;gt;&lt;br /&gt;
*Finish configuration and download missing external source tarballs and extensions&amp;lt;pre&amp;gt;./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Include the configured environment&amp;lt;pre&amp;gt;source winenv.set.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Build&amp;lt;pre&amp;gt;cd instsetoo_native/&amp;amp;#10;build --all&amp;lt;/pre&amp;gt;Depending on your computer this will take one or more hours to finish.&lt;br /&gt;
&lt;br /&gt;
* Install&amp;lt;br/&amp;gt;There are three options:&lt;br /&gt;
*# Regular install with integration into Windows.&amp;lt;br/&amp;gt;This allows only one instance of AOO to be installed.&lt;br /&gt;
*#* Start setup.exe and click through dialog:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;$SourceMain/instsetoo_native/wntmsci12.pro/OpenOffice/msi/install/en-US/setup.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* Apache OpenOffice can be started via the Windows start menu.&lt;br /&gt;
*# Install without integration into Windows.&amp;lt;br/&amp;gt;This allows several instance of AOO, based on the same version, to be installed side by side.&amp;lt;br/&amp;gt;It still requires Administrator permissions.&lt;br /&gt;
*#* Start &amp;lt;code&amp;gt;setup.exe&amp;lt;/code&amp;gt; with option &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;$SourceMain/instsetoo_native/wntmsci12.pro/OpenOffice/msi/install/en-US/setup.exe -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* Enter an installation path into the dialog and click through the dialog to finish installation.&lt;br /&gt;
*#* Start AOO by running&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;installation-path&amp;gt;/program/soffice.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
*# Unpack archive without installation.&amp;lt;br/&amp;gt;This does not require Administrator permissions&lt;br /&gt;
*#* Go to installation directory:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;cd &amp;lt;installation-target&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* Unzip archive:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;unzip $SourceMain/instsetoo_native/wntmsci12.pro/OpenOffice/archive/install/en-US/Apache_OpenOffice_4.0.1_Win_x86_install-arc_en-US.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* Start AOO by running:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;./Apache_OpenOffice_4.0.1_Win_x86_install-arc_en-US/program/soffice.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=[https://wiki.openoffice.org/wiki/Documentation/Building_Guide/Building_on_MacOSX Mac OS/X]=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Step_by_step&amp;diff=235696</id>
		<title>Documentation/Building Guide AOO/Step by step</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO/Step_by_step&amp;diff=235696"/>
		<updated>2014-10-13T21:22:27Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Step by step building guides for different platforms}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
This page is intended as a collection of simple step-by-step recipes to build Apache OpenOffice from source code.  A more thorough explanation of what the individual steps do and why they are necessary can be found in the [[Documentation/Building_Guide_AOO|building guide]].&lt;br /&gt;
=Ubuntu 14.04=&lt;br /&gt;
The basic building steps under Ubuntu 12.04 (see below) are to be followed in Ubuntu 14.04 as well; however, there are some minor build issues that any developer, using this OS, needs to be aware of, if he gets stuck while building. The following is the list of issues, with their fixes, that a developer may face with:&lt;br /&gt;
&lt;br /&gt;
* Issue 124712 (build broken in svl); see the link https://issues.apache.org/ooo/show_bug.cgi?id=124712 for detailed information.&lt;br /&gt;
If you are building trunk, the patch is already applied; if you are building from a release tag or tarball, the patch needs to be applied for all releases &amp;lt;= 4.1.1.&lt;br /&gt;
&lt;br /&gt;
* Issue 125475; see the link https://issues.apache.org/ooo/show_bug.cgi?id=125475 for detailed information. This happens if you explicitly upgraded your GCC and related tools to version 4.9; it will not appear if you use GCC 4.8.x.&lt;br /&gt;
&lt;br /&gt;
As the BZ says, it is because of buggy toolchain g++4.9. So for now in Ubuntu Linux 14.04, build the source using g++4.8.2, gcc4.8.2; these are the default compilers in Ubuntu Linux 14.04 anyway; please check it using the following commands:&lt;br /&gt;
  g++ -v&lt;br /&gt;
  gcc -v&lt;br /&gt;
if not, you&amp;#039;ve to download them.&lt;br /&gt;
  sudo apt-get install g++-4.8&lt;br /&gt;
  cd /usr/bin&lt;br /&gt;
  rm gcc&lt;br /&gt;
  rm g++&lt;br /&gt;
  ln -s gcc-4.8 gcc&lt;br /&gt;
  ln -s g++-4.8 g++&lt;br /&gt;
&lt;br /&gt;
* Failed to find ./solver/420/unxlngx6.pro/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 error.&lt;br /&gt;
&lt;br /&gt;
  cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20 ./solver/420/unxlngx6.pro/lib/&lt;br /&gt;
  rm ./solver/420/unxlngx6.pro/lib/libstdc++.so.6&lt;br /&gt;
  ln -s ./solver/420/unxlngx6.pro/lib/libstdc++.so.6.0.20 ./solver/420/unxlngx6.pro/lib/libstdc++.so.6&lt;br /&gt;
&lt;br /&gt;
* No such file or directory - connectivity/virtualdbtools.hxx while building svx.&lt;br /&gt;
&lt;br /&gt;
if you get an error like this, then that means connectivity is not built properly. Build connectivity using build --all:connectivity and this error will go away.&lt;br /&gt;
&lt;br /&gt;
=Ubuntu 12.04=&lt;br /&gt;
&lt;br /&gt;
*Setup VirtualBox with Ubuntu 12.04 64 bit on Windows7 64bit host.  A native installation is of course fine, too.&lt;br /&gt;
*Let updater update ca. 380 packages. Restart.&lt;br /&gt;
*Get the source.  You can start with the source release or by checking out from SVN:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Source release&lt;br /&gt;
! SVN&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Build from source release if you want to build OpenOffice once but don&amp;#039;t want to do any development.&lt;br /&gt;
| Build from SVN if you want to development work with OpenOffice.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
* Download AOO 3.4.1 source tarball from&lt;br /&gt;
http://people.apache.org/~jsc/developer-snapshots/r1372282/src/aoo-3.4.1-incubating-src.tar.bz2&lt;br /&gt;
&lt;br /&gt;
* Optional: Download signature from&lt;br /&gt;
http://people.apache.org/~jsc/developer-snapshots/r1372282/src/aoo-3.4.1-incubating-src.tar.bz2.asc&lt;br /&gt;
&lt;br /&gt;
and verify the source tarball with&lt;br /&gt;
 gpg --verify aoo-3.4.1-incubating-src.tar.bz2.asc \&lt;br /&gt;
              aoo-3.4.1-incubating-src.tar.bz2&lt;br /&gt;
Note that you have to have the keys already imported to your key chain.&lt;br /&gt;
The keys can be found on the download page:&lt;br /&gt;
&lt;br /&gt;
http://www.apache.org/dist/incubator/ooo/KEYS&lt;br /&gt;
&lt;br /&gt;
* Unpack source:&lt;br /&gt;
  cd /tmp&lt;br /&gt;
  tar -xjf ~/Downloads/aoo-3.4.1-incubating-src.tar.bz2&lt;br /&gt;
  cd aoo-3.4.1/main&lt;br /&gt;
| &lt;br /&gt;
* Start with creating a parent directory for the source code.  Don&amp;#039;t use &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; because that is deleted on every boot:&lt;br /&gt;
  sudo mkdir /source&lt;br /&gt;
  sudo chown &amp;lt;your-user-name&amp;gt; /source&lt;br /&gt;
  cd /source&lt;br /&gt;
* Install subversion and checkout the source:&lt;br /&gt;
  sudo apt-get install subversion&lt;br /&gt;
  svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo-trunk&lt;br /&gt;
  cd aoo-trunk/main&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* Install requirements (this will also install packages that are not listed):&lt;br /&gt;
  sudo apt-get install g++ gcc bison flex libarchive-zip-perl libcups2-dev \&lt;br /&gt;
       libpam0g-dev gperf libfreetype6-dev libxaw7-dev libfontconfig1-dev \&lt;br /&gt;
       libxrandr-dev patch libgconf2-dev libgnomevfs2-dev ant libgtk2.0-dev \&lt;br /&gt;
       junit junit4 libidl-dev liborbit2-dev openjdk-6-jdk libwww-perl \&lt;br /&gt;
       libxml-parser-perl autoconf libssl-dev&lt;br /&gt;
&lt;br /&gt;
* Run autoconf to generate configure script:&lt;br /&gt;
  autoconf&lt;br /&gt;
&lt;br /&gt;
* Configure (see the building guide section on [[Documentation/Building_Guide_AOO#Configuration_and_bootstrapping|configuration]] for further options):&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
      --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz \&lt;br /&gt;
      --disable-odk \&lt;br /&gt;
      --disable-binfilter&lt;br /&gt;
&lt;br /&gt;
* Finish configuration and download missing tarballs and extensions:&lt;br /&gt;
  ./bootstrap&lt;br /&gt;
&lt;br /&gt;
* Include the configured environment:&lt;br /&gt;
  source LinuxX86-64Env.Set.sh&lt;br /&gt;
&lt;br /&gt;
* Build:&lt;br /&gt;
  cd instsetoo_native/&lt;br /&gt;
  build --all&lt;br /&gt;
This may take a while to complete.  Several hours are not uncommon.  To speed things up you may want to run &amp;#039;build&amp;#039; like this&lt;br /&gt;
  build --all -P&amp;lt;n&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
to start a parallel build.  Replace &amp;lt;n&amp;gt; with the number of CPU cores. &lt;br /&gt;
&lt;br /&gt;
* Install:&lt;br /&gt;
  sudo dpkg -i unxlngx6.pro/Apache_OpenOffice/deb/install/en-US/DEBS/*.deb&lt;br /&gt;
  sudo dpkg -i unxlngx6.pro/Apache_OpenOffice/deb/install/en-US/DEBS/desktop-integration/openoffice.org3.4-debian-menus_3.4-9593_all.deb&lt;br /&gt;
&lt;br /&gt;
* Start Apache OpenOffice:&lt;br /&gt;
  /opt/openoffice.org3/program/soffice&lt;br /&gt;
&lt;br /&gt;
=Windows 7=&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Complete requirements found at [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO#General_Build_Requirements General Build Requirements] and [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Building_on_Windows Building on Windows].&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This is a &amp;#039;&amp;#039;&amp;#039;sample&amp;#039;&amp;#039;&amp;#039; step-by-step guide - check the complete requirements and report on dev@openoffice.apache.org, if problems with this step-by-step guide occurs.&lt;br /&gt;
&lt;br /&gt;
*Install cygwin, &amp;#039;&amp;#039;&amp;#039;32bit version&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
**Browse to http://cygwin.com.&lt;br /&gt;
**Click on the setup.exe link (most recent Cygwin DLL at the moment is 1.7.16-1) to download the installer and run it.&lt;br /&gt;
**Click through the questions.&lt;br /&gt;
**On the &amp;quot;Choose A Download Site&amp;quot; select a nearby download server.&lt;br /&gt;
**Expect a &amp;quot;Setup Alert&amp;quot; dialog box on the first cygwin install on the computer.&lt;br /&gt;
**Click OK to close it.&lt;br /&gt;
**On the page that allows you to select additional packages just select wget (enter wget in the Search box and select the wget enty in the Web/Default section.&lt;br /&gt;
**Click Next to finish package selection.&lt;br /&gt;
**Click Next to resolve dependencies.&lt;br /&gt;
**After installation is finished click the Finish button to close the dialog. &lt;br /&gt;
&lt;br /&gt;
*Start cygwin bash in a terminal&lt;br /&gt;
::One way to do this is:&lt;br /&gt;
::*Press WindowsKey-R&lt;br /&gt;
::*Enter c:\cygwin\Cygwin.bat&lt;br /&gt;
::*Hit Return.&lt;br /&gt;
&lt;br /&gt;
* Install Java.&lt;br /&gt;
::Choose between JDK 1.7 or OpenJDK.&lt;br /&gt;
&lt;br /&gt;
* Install Ant&lt;br /&gt;
**Browse to http://ant.apache.org/bindownload.cgi&lt;br /&gt;
**Chose a mirror near you.&lt;br /&gt;
**Download the zip archive (currently that is apache-ant-1.8.4-bin.zip).&lt;br /&gt;
**Open downloaded archive in file explorer and unzip it to a location of your choice, eg &amp;lt;code&amp;gt;c:\&amp;lt;/code&amp;gt;.  Note that &amp;lt;code&amp;gt;C:\Program Files (x86)&amp;lt;/code&amp;gt; will not work due to problems of quoting the spaces and parentheses.&lt;br /&gt;
  &lt;br /&gt;
* Prepare to install missing cygwin packages by installing apt-cyg from googlecode.com&amp;lt;pre&amp;gt;cd to /cygdrive/c/temp&amp;lt;/pre&amp;gt;(or any other temporary directory of your choice)&amp;lt;pre&amp;gt;wget http://apt-cyg.googlecode.com/svn/trunk/apt-cyg&amp;amp;#10;chmod +x apt-cyg&amp;amp;#10;mv apt-cyg /usr/local/bin/&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Use apt-cyg to install missing cygwin packages&amp;lt;pre&amp;gt;apt-cyg install perl zip unzip gperf autoconf rsync gcc4-g++ bison flex patch subversion&amp;lt;/pre&amp;gt;or alternatively run setup and select the packages&amp;lt;br /&amp;gt;If you will use git, you need in addition the packages&amp;lt;pre&amp;gt;git git-svn&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Replace symlinked awk with copy of gawk.exe:&amp;lt;pre&amp;gt;rm /usr/bin/awk&amp;amp;#10;mv /usr/bin/gawk.exe /usr/bin/awk.exe&amp;lt;/pre&amp;gt;Note that if the &amp;lt;code&amp;gt;rm&amp;lt;/code&amp;gt; command fails then the &amp;lt;code&amp;gt;mv&amp;lt;/code&amp;gt; is not necessary.&lt;br /&gt;
    &lt;br /&gt;
* Install Microsoft Windows SDK for Windows 7 and .NET Framework 3.5. SP1 (recommend by Microsoft) &lt;br /&gt;
** Browse to http://www.microsoft.com/en-us/download/details.aspx?id=3138.&lt;br /&gt;
** Download Setup.exe and run the web installer (note that it will be saved as Setup(1).exe to disambiguate from the previously downloaded cygwin installer.)  You can use the default values in the installation dialog.&lt;br /&gt;
** Alternatively download the iso image http://www.microsoft.com/en-us/download/details.aspx?id=18950. Burn it to a dvd or unzip it.&lt;br /&gt;
&lt;br /&gt;
* Download MS Visual C++ 2008 SP1 Redistributable Package (x86)&lt;br /&gt;
** http://www.microsoft.com/en-us/download/details.aspx?id=26368 ( There have been security updates, which are not included in older versions.)&lt;br /&gt;
**Download files vcredist_x86.exe and vcrestist_x64.exe&amp;lt;br /&amp;gt;  If you download the most actual version of Apache OpenOffice and unpack it, you will find the files vcredist_x86.exe and vcredist_x64.exe in folder redist. You can use them as well.&lt;br /&gt;
&lt;br /&gt;
* Optional: Install DirectX SDK (for graphics hardware support in the slide show)&lt;br /&gt;
** Browse to http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&amp;amp;id=6812&lt;br /&gt;
** Download and run DXSDK_Jun10.exe&lt;br /&gt;
&lt;br /&gt;
* Optional: Install NSIS installer (for creating the EXE installer)&lt;br /&gt;
** Browse to http://nsis.sourceforge.net&lt;br /&gt;
** Download and run the installer.&lt;br /&gt;
&lt;br /&gt;
* Get AOO source code. You can use the source release or check out from SVN. Build from source release if you want to build OpenOffice once but don&amp;#039;t want to contribute patches. If you will contribute patches, you need to generate them against an actual version of trunk. In this case check out from SVN to be able to rebase before generating patches. You can work with subversion or with git-svn.&lt;br /&gt;
&lt;br /&gt;
::; Source release : &lt;br /&gt;
::* Browse to http://www.openoffice.org/download/other.html#tested-sdk and locate the table row that starts with &amp;quot;Source code&amp;quot;&lt;br /&gt;
::* Download source code in an archive format of your choice (note that tar.bz2 is typically smaller than tar.gz and zip)&lt;br /&gt;
::* Optional: Verify the archive - following given link or instructions.&lt;br /&gt;
::* Unpack source (in cygwin-terminal). Use the file name exactly as downloaded.&amp;lt;pre&amp;gt;cd /tmp&amp;amp;#10;tar -xjf &amp;lt;download-location&amp;gt;/&amp;lt;downloaded-source-release.tar.bz2&amp;gt;&amp;amp;#10;cd &amp;lt;unpacked-source&amp;gt;/main&amp;amp;#10;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::; Checkout from SVN using subversion :&lt;br /&gt;
::*Get subversion (only first time)&amp;lt;pre&amp;gt;apt-cyg install subversion&amp;lt;/pre&amp;gt; &lt;br /&gt;
::*Start with creating a parent directory for the source code: &amp;lt;pre&amp;gt;mkdir /cygdrive/c/source&amp;amp;#10;cd /cygdrive/c/source&amp;lt;/pre&amp;gt;&lt;br /&gt;
::*Check out source from Apache SVN repository&amp;lt;pre&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo-trunk&amp;amp;#10;cd aoo-trunk/main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::; Checkout from SVN using git-svn :&lt;br /&gt;
::*Get git and git-svn (only first time)&amp;lt;pre&amp;gt;apt-cyg install git git-svn&amp;lt;/pre&amp;gt;&lt;br /&gt;
::*Get the actual revision number from http://svn.apache.org/viewvc/OpenOffice/trunk/, e.g. 1234567&lt;br /&gt;
::*Create an empty directory and change to it, e.g.&amp;lt;pre&amp;gt;mkdir /cygdrive/c/source&amp;amp;#10;cd /cygdrive/c/source&amp;lt;/pre&amp;gt;&lt;br /&gt;
::*Check out source from Apache SVN repository&amp;lt;pre&amp;gt;git svn clone --revision 1234567:HEAD https://svn.apache.org/repos/asf/openoffice/trunk&amp;amp;#10;cd trunk/main&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Remember the source path (this is optional, it keeps the following lines short):&amp;lt;pre&amp;gt;SourceMain=`pwd`&amp;lt;/pre&amp;gt; [Why? I have not used it. [[User:Regina|Regina]] ([[User talk:Regina|talk]]) 21:42, 24 February 2013 (UTC)]&lt;br /&gt;
:[Added explanation above [[User:Andre|Andre]]]&lt;br /&gt;
&lt;br /&gt;
* Optional: Get dbghelp.dll (for using the &amp;lt;code&amp;gt;--enable-dbgutil&amp;lt;/code&amp;gt; configure option)&lt;br /&gt;
** This dll is part of MS Visual Studio.&lt;br /&gt;
** Copy file to &amp;lt;code&amp;gt;main/external/dbghelp&amp;lt;/code&amp;gt;. Use Windows file manager or in cygwin terminal&amp;lt;pre&amp;gt;cp /cygdrive/c/Program\ Files\ \(x86\)/Microsoft\ Visual\ Studio\ 9.0/Common7/IDE/dbghelp.dll $SourceMain/external/dbghelp&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Copy vcredist_x86.exe and vcredist_x64.exe (see above) to main/external/vcredist.&lt;br /&gt;
** Use Windows file manager or in cygwin terminal&amp;lt;pre&amp;gt;cp &amp;lt;download-location&amp;gt;/vcredist_x86.exe $SourceMain/external/vcredist&amp;amp;#10;cp &amp;lt;download-location&amp;gt;/vcredist_x64.exe $SourceMain/external/vcredist&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Get GDI+ redistributable.&lt;br /&gt;
**Browse to http://www.microsoft.com/en-us/download/details.aspx?id=18909&lt;br /&gt;
**Download WindowsXP-KB975337-x86-ENU.exe&lt;br /&gt;
**Run WindowsXP-KB975337-x86-ENU.exe&lt;br /&gt;
**Enter a temporary path (eg c:\temp\gdiplus) in the dialog and click OK to extract files&lt;br /&gt;
**Copy gdiplus.dll to main/external&amp;lt;pre&amp;gt;cp /cygdrive/c/temp/gdiplus/asms/10/msft/windows/gdiplus/gdiplus.dll $SourceMain/external/gdiplus/&amp;lt;/pre&amp;gt;&lt;br /&gt;
** Remove the temporary path&amp;lt;pre&amp;gt;rm -fr /cygdrive/c/temp/gdiplus&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Get msvcr100.dll:&amp;lt;pre&amp;gt;cp /cygdrive/c/Windows/System32/msvcr100.dll $SourceMain/external/msvcp100&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Make sure that you are in the main source directory:&amp;lt;pre&amp;gt;cd $SourceMain&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
* Run autoconf to create the configure script:&amp;lt;pre&amp;gt;autoconf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Call configure&lt;br /&gt;
** Run configure (adapt paths as necessary)&amp;lt;pre&amp;gt;SDK_PATH=&amp;quot;/cygdrive/c/Program Files/Microsoft SDKs/Windows/v7.0&amp;quot;&amp;amp;#10;./configure \&amp;amp;#10;    --with-frame-home=&amp;quot;$SDK_PATH&amp;quot; \&amp;amp;#10;    --with-psdk-home=&amp;quot;$SDK_PATH&amp;quot; \&amp;amp;#10;    --with-midl-path=&amp;quot;$SDK_PATH/bin&amp;quot; \&amp;amp;#10;    --with-directx-home=&amp;quot;C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)&amp;quot; \&amp;amp;#10;    --with-ant-home=&amp;quot;/cygdrive/c/apache-ant-1.8.4&amp;quot; \&amp;amp;#10;    --with-dmake-url=&amp;quot;http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2&amp;quot; \&amp;amp;#10;    --with-epm-url=&amp;quot;http://www.msweet.org/files/project2/epm-3.7-source.tar.gz&amp;quot; \&amp;amp;#10;    --enable-pch \&amp;amp;#10;    --disable-atl \&amp;amp;#10;    --disable-activex \&amp;amp;#10;    --without-junit&amp;lt;/pre&amp;gt;If you have not installed the optional DirectX SDK then remove the &amp;lt;code&amp;gt;--with-directx-home switch&amp;lt;/code&amp;gt;&lt;br /&gt;
*Finish configuration and download missing external source tarballs and extensions&amp;lt;pre&amp;gt;./bootstrap&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Include the configured environment&amp;lt;pre&amp;gt;source winenv.set.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Build&amp;lt;pre&amp;gt;cd instsetoo_native/&amp;amp;#10;build --all&amp;lt;/pre&amp;gt;Depending on your computer this will take one or more hours to finish.&lt;br /&gt;
&lt;br /&gt;
* Install&amp;lt;br/&amp;gt;There are three options:&lt;br /&gt;
*# Regular install with integration into Windows.&amp;lt;br/&amp;gt;This allows only one instance of AOO to be installed.&lt;br /&gt;
*#* Start setup.exe and click through dialog:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;$SourceMain/instsetoo_native/wntmsci12.pro/OpenOffice/msi/install/en-US/setup.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* Apache OpenOffice can be started via the Windows start menu.&lt;br /&gt;
*# Install without integration into Windows.&amp;lt;br/&amp;gt;This allows several instance of AOO, based on the same version, to be installed side by side.&amp;lt;br/&amp;gt;It still requires Administrator permissions.&lt;br /&gt;
*#* Start &amp;lt;code&amp;gt;setup.exe&amp;lt;/code&amp;gt; with option &amp;lt;code&amp;gt;-a&amp;lt;/code&amp;gt;:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;$SourceMain/instsetoo_native/wntmsci12.pro/OpenOffice/msi/install/en-US/setup.exe -a&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* Enter an installation path into the dialog and click through the dialog to finish installation.&lt;br /&gt;
*#* Start AOO by running&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;installation-path&amp;gt;/program/soffice.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
*# Unpack archive without installation.&amp;lt;br/&amp;gt;This does not require Administrator permissions&lt;br /&gt;
*#* Go to installation directory:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;cd &amp;lt;installation-target&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* Unzip archive:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;unzip $SourceMain/instsetoo_native/wntmsci12.pro/OpenOffice/archive/install/en-US/Apache_OpenOffice_4.0.1_Win_x86_install-arc_en-US.zip&amp;lt;/pre&amp;gt;&lt;br /&gt;
*#* Start AOO by running:&amp;lt;br/&amp;gt;&amp;lt;pre&amp;gt;./Apache_OpenOffice_4.0.1_Win_x86_install-arc_en-US/program/soffice.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=[[Documentation/Building_Guide/Building_on_MacOSX|Mac OS/X]]=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235680</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235680"/>
		<updated>2014-10-07T21:46:20Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: /* Building */  (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Sometimes you might need a &amp;#039;installed&amp;#039; format so that all files were put into installset directory. Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Build Cleanup==&lt;br /&gt;
In the event that you want to change configuration parameters used for building, you will probably need to &amp;quot;clean&amp;quot; your build output tree before starting again.&lt;br /&gt;
&lt;br /&gt;
To do this, navigate to the &amp;quot;main&amp;quot; directory, then source your environment shell script as you did for building:&lt;br /&gt;
&lt;br /&gt;
     &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then do:&lt;br /&gt;
&lt;br /&gt;
     dmake clean&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step Step-by-Step Building Guide for Different Platforms] =&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [https://wiki.openoffice.org/wiki/OpenOffice_and_Eclipse Building with Eclipse] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235679</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235679"/>
		<updated>2014-10-07T21:31:51Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: /* Compatible Build */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
# Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
# Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
# Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
# Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
# Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
{{Template:Documentation/Note|This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.}}&lt;br /&gt;
* How to use cache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appears accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
To build with symbolic generation, add option&lt;br /&gt;
        --enable-symbols&lt;br /&gt;
This would allow you to work with debugging symbols in gdb.&lt;br /&gt;
&lt;br /&gt;
By default the result binaries will be packaged in the default format used by your OS/Distribution. Sometimes you might need a &amp;#039;installed&amp;#039; format so that all files were put into installset directory. Add option&lt;br /&gt;
        --with-package-format=&amp;quot;installed&amp;quot;&lt;br /&gt;
This will speed up development process since it skipped packaging. In some cases, packaging rips the debugging symbol so this would be necessary for symbolic generation.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
You may want to erase the output of a previous compilation. In some cases a new compilation will not work correctly unless the old output is removed.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step Step-by-Step Building Guide for Different Platforms] =&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [https://wiki.openoffice.org/wiki/OpenOffice_and_Eclipse Building with Eclipse] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/HowToFileIssue&amp;diff=235595</id>
		<title>QA/HowToFileIssue</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/HowToFileIssue&amp;diff=235595"/>
		<updated>2014-09-15T23:24:05Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:How to file a good Issue}}&lt;br /&gt;
 You can find more detailed general instructions [http://www.openoffice.org/qa/issue_handling/basic_rules.html here]&lt;br /&gt;
=Principles=&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Be precise&amp;#039;&amp;#039;&amp;#039;, avoid general rare statements like &amp;quot;looks bad&amp;quot;, &amp;quot;does not work&amp;quot;, but state &amp;quot;indent too big&amp;quot; or &amp;quot;Text stays with alignment &amp;#039;left&amp;#039; after clicking &amp;#039;Alignment Centered&amp;#039; icon in standard toolbar&amp;quot; (for example).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Be clear&amp;#039;&amp;#039;&amp;#039;, don&amp;#039;t simply describe what your problem is, explain it so that other users can reproduce the bug&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Only one bug per report&amp;#039;&amp;#039;&amp;#039;, it would be impossible to manage the work flow for multiple bugs fixed by different developers at different times in one bug report.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Only one report per bug&amp;#039;&amp;#039;&amp;#039;, check for possible DUPlicates, where the problem you observed already has been reported. If you are not sure, add those bugs to &amp;#039;&amp;#039;See Also&amp;#039;&amp;#039; Field with a short comment why you believe your bug might be related to them, or even &amp;#039;&amp;#039;mark as Duplicate&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;No bug is too trivial to report&amp;#039;&amp;#039;&amp;#039; - small bugs may hide big bugs&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Clearly separate fact from speculation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=Preliminaries=&lt;br /&gt;
&lt;br /&gt;
# Reproduce your bug using a recent build of the software, to see whether it has already been fixed.&lt;br /&gt;
# Take a snapshot of your screen, to help developers better understand the bug consequences. &lt;br /&gt;
# [https://issues.apache.org/ooo/ Create] an AOO Bugzilla account, if you&amp;#039;re new to Bugzilla. &lt;br /&gt;
# [https://issues.apache.org/ooo/query.cgi?format=specific Search] Apache OOo Bugzilla, to see whether your bug has already been reported.&lt;br /&gt;
&lt;br /&gt;
=Reporting a New Bug=&lt;br /&gt;
If you have reproduced the bug in a recent build and no-one else appears to have reported it, then:&lt;br /&gt;
# Choose &amp;quot;[https://issues.apache.org/ooo/enter_bug.cgi Enter a new bug]&amp;quot;&lt;br /&gt;
# Select the Product in which you&amp;#039;ve found the bug.&lt;br /&gt;
# Fill-out the form (more details below).&lt;br /&gt;
# Verify your report, and make sure it&amp;#039;s clear, concise, and has no errors or omissions.&lt;br /&gt;
# Press &amp;quot;Commit&amp;quot; when done. After you created the issue report, an automated notification will be sent to the [http://openoffice.apache.org/mailing-lists.html#issues-mailing-list ISSUES mailing-list].&lt;br /&gt;
# Have patience. It could take time until your issue is noticed, confirmed, and dealt with. If you feel that your bug is being neglected, or that it must be fixed before the next release, send the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public DEV mailing-list] a short notice about it.&lt;br /&gt;
&lt;br /&gt;
== Form Fields in Detail ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Component:&amp;#039;&amp;#039;&amp;#039; In which sub-part of the software does it exist?&lt;br /&gt;
&lt;br /&gt;
This field is required. Click the word &amp;quot;Component&amp;quot; to see a description of each component. If none seems appropriate, look for a &amp;quot;General&amp;quot; component.&lt;br /&gt;
&lt;br /&gt;
In general the problem can be categorized as following component:&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;UI&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: Bug related with UI widget, e.g. menu, toolbar, statusbar, tooltips&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Open-Import&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The problem happened while loading document, which you are sure the document has no problem if opened by other product&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Editing&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The problem occurred while adding/removing some content of document&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Save-Export&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: Similar with component &amp;quot;open-import&amp;quot;, the problem happened while saving document, the exported document also has problem in other product&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;: In which version of OpenOffice did you observe the bug, for the first time?&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; When you edit a report you submitted, don&amp;#039;t change the version from an older version to a newer one. Version documents the oldest version in which the issue occurred; only experienced community members, primarily QA people, should refine the value, but only in the direction to older versions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Severity&amp;#039;&amp;#039;&amp;#039;: How severe the bug is&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;blocker&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug block other feature/function test. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::Problem does not allow to launch the module access function entry&amp;lt;br&amp;gt;&lt;br /&gt;
:::Problem hinders the creation of documentation&amp;lt;br&amp;gt;&lt;br /&gt;
:::Examples: System crash, application freeze&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;critical&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug make it impossible to work with the version of test on a feature. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::Crash happened intermittently&amp;lt;br&amp;gt;&lt;br /&gt;
:::Problem prevent major test activities&amp;lt;br&amp;gt;&lt;br /&gt;
:::Problem affect other function(not under current testcases) badly&amp;lt;br&amp;gt;&lt;br /&gt;
:::Examples: Application abnormal exist, failure on invoking or triggering the function without any workaround&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;major&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug cause function doesn&amp;#039;t work but there is typically workaround. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::A Basic function which, well... doesn&amp;#039;t function correctly;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Data loss;&amp;lt;br&amp;gt;&lt;br /&gt;
:::A Crash in special circumstances;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Examples: Cannot rename a sheet, document saved without character font settings.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;normal&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: Part of a function is workable but there are major faults. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::A bad function result;&amp;lt;br&amp;gt;&lt;br /&gt;
:::A problem has a workaround and can be put off without impacting the functionality;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Examples: Formula export with wrong result, font setting is incorrect.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;minor&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug does not prevent the work done. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::Spell-check issue in help file;&amp;lt;br&amp;gt;&lt;br /&gt;
:::A problem that is seldom encountered and easy to bypass;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Minor repaint errors;&amp;lt;br&amp;gt;&lt;br /&gt;
:::An nice to have feature;&amp;lt;br&amp;gt;&lt;br /&gt;
:::A Standard keyboard shortcut key doesn&amp;#039;t work;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Example: use ctrl+a instead of ctrl+c.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;trivial&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug might be an (small) enhancement of an existing feature.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OS:&amp;#039;&amp;#039;&amp;#039; On which operating system (OS) did you find it? (e.g. Linux, Windows XP, Mac OS X.)&amp;lt;br&amp;gt;&lt;br /&gt;
If you know the bug happens on more than one type of operating system, choose &amp;#039;&amp;#039;All&amp;#039;&amp;#039;. If your OS isn&amp;#039;t listed, choose &amp;#039;&amp;#039;Other&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039; How would you describe the bug, in approximately 60 or fewer characters?&amp;lt;br&amp;gt;&lt;br /&gt;
A good summary should &amp;#039;&amp;#039;&amp;#039;quickly and uniquely identify a bug report&amp;#039;&amp;#039;&amp;#039;. It should explain the problem, not your suggested solution.&lt;br /&gt;
&lt;br /&gt;
*Good: &amp;quot;Cancelling a File Copy dialog crashes File Manager&amp;quot;&lt;br /&gt;
*Bad: &amp;quot;Software crashes&amp;quot;&lt;br /&gt;
*Bad: &amp;quot;Browser should work with my web site&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Description:&amp;#039;&amp;#039;&amp;#039; The details of your problem report, including:&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039; Overview:&amp;#039;&amp;#039;&amp;#039; More detailed restatement of summary.&amp;lt;br&amp;gt;&lt;br /&gt;
:::Application crashed while insert a Chart in Spreadsheet document&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Steps to Reproduce:&amp;#039;&amp;#039;&amp;#039; Minimized, easy-to-follow steps that will trigger the bug. Include any special setup steps.&amp;lt;br&amp;gt;&lt;br /&gt;
:::# New Spreadsheet document&lt;br /&gt;
:::# Insert Chart by menu &amp;quot;Insert-&amp;gt;Chart&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Actual Results:&amp;#039;&amp;#039;&amp;#039; What the application did after performing the above steps.&amp;lt;br&amp;gt;&lt;br /&gt;
:::The application crashed.&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Expected Results:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Popup Chart Wizard dialog&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Build Date &amp;amp; Platform:&amp;#039;&amp;#039;&amp;#039; Date and platform of the build in which you first encountered the bug.&amp;lt;br&amp;gt;&lt;br /&gt;
:::Build: AOO 3.4.1 Rev.1359641&lt;br /&gt;
:::OS: Windows XP, Windows 7, SuSE Linux 11 SP1, RedHat Linux 6 Update 3, Ubuntu 12.04...&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Additional Builds and Platforms:&amp;#039;&amp;#039;&amp;#039; Whether or not the bug takes place on other platforms&amp;lt;br&amp;gt;&lt;br /&gt;
:::The problem doesn&amp;#039;t exist in Mac OS X&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Additional Information:&amp;#039;&amp;#039;&amp;#039; Any other useful information. &lt;br /&gt;
:::Regression info:&amp;lt;br&amp;gt;&lt;br /&gt;
:::The problem doesn&amp;#039;t exist in AOO 3.4 Release&lt;br /&gt;
::For crashing bugs:&lt;br /&gt;
:::Attach the crash log if available.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Advanced field - Issue Type&amp;#039;&amp;#039;&amp;#039;: Issue type categorized as:&lt;br /&gt;
:*Defect&lt;br /&gt;
:*Enhancement&lt;br /&gt;
:*Feature&lt;br /&gt;
:*Patch&lt;br /&gt;
:*Task&lt;br /&gt;
If the issue is minor, something like nice to have, you can use &amp;quot;Enhancement&amp;quot; as issue type&amp;lt;br&amp;gt;&lt;br /&gt;
If the issue is much complicate to implement, something like feature, you can use &amp;quot;Feature&amp;quot; as issue type&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Advanced field - Keyword&amp;#039;&amp;#039;&amp;#039;: Use pre-defined [https://issues.apache.org/ooo/describekeywords.cgi keyword] to tag bug&lt;br /&gt;
&lt;br /&gt;
Available Keywords:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Name&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
accessibility &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Issues referring to the accessibility of the product should have this keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
accessibility-external &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword is used for accessibility issues that have to be fixed outside of the Apache OpenOffice code base (eg. Assistive Technology)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
aqua &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword should be used to better identify issues applying to a native version (without X11) of OpenOffice.org running on Mac OS X&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Arabic &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Referring to the Arabic version.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
BIDI &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword marks issues related to bi-directional support&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
CJK &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
If issues are related to Chinese, Japanese and Korean, you can mark it as cjk.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
crash &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword can be used for any crash, freeze, hang, that occurs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
data_loss &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Use this keyword for issues that lead to a loss of data (this includes the entire document, the content within a document or loss of configuration settings)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
easy2dev &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
use this keyword if currently no resources are available to solve this issue and you think this issue would be an doable step in for new volunteers to the project.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Hebrew &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Referring to the Hebrew version.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
interop_OOXML &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Keyword denoting interoperability with MSO 2007/2010 file formats based on XML&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
merge_pending &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
request for merging an approved patch into the tree; keyword will be removed by the community member(s) who merge the patch into the tree.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
ms_interoperability &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword should be used to identify issues regarding the interoperability with Microsoft Office applications.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
needhelp &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword signals somebody seeking assistance. For example, this may be a developer who wants to delegate (parts of) a task, an QA engineer in need for expertise to reproduce a bug, or somebody who wants to verify a patch before integrating it, and needs access to e.g. an exotic Linux distro.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
needmoreinfo &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword should be used to mark issues where a QA volunteer or a developer asked the submitter to give more information to an issue. The advantage is that you can query for that keyword and easily figure out where you asked for more information.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
new_implementation &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword is used if a new implementation of a component is prepared and helps identifying that this issue refers to new code not yet contained in the installation set.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
numbering &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword is used to track issues for outline, numbering and bullet list formatting within the module word processor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
odf_validation &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword is used for issues about ODF documents, written by OpenOffice.org, which do not validate against the latest ODF schema.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
oooqa &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword should be used to make clear that an OOo QA volunteer has applied a change to an issue, be it an additional description, a priority change or anything else.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
performance &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
denotes issues which describe the insufficient performance of a specific task in OpenOffice.org&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
regression &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword can be set if functionality definately worked in an older version, but doesn&amp;#039;t in a newer version. It is very helpful to give detailed information from which version to which version the functionality broke. If this issue is considered a blocker for the next release, the OpenOffice.org team will indicate this by setting the &amp;quot;release_blocker&amp;quot; keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
release_blocker &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword denotes issues which are considered a blocker for the next maintenance release.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
review &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
A flag used with &amp;quot;patch&amp;quot; attachments that will forward the issue to the &amp;quot;dev&amp;quot; list so the patch can be reviewed by developers. Set to &amp;quot;?&amp;quot; for review.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
rfe_eval_ok &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
status field for feature request evaluation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
security &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Issues referring to security incl. digital signatures, encryption, etc. should have this keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
third_party_support &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Issues referring to third party support including groupware and collaboration integration requirement should have this keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
TSK-DEF &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Task defined.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
usability &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Issues referring to usability and ease of learning should have this keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
usagetracking &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Usagetracking issues for Renaissance Project&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=QA/HowToFileIssue&amp;diff=235594</id>
		<title>QA/HowToFileIssue</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=QA/HowToFileIssue&amp;diff=235594"/>
		<updated>2014-09-15T23:21:51Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:How to file a good Issue}}&lt;br /&gt;
 You can find more detailed general instructions [http://www.openoffice.org/qa/issue_handling/basic_rules.html here]&lt;br /&gt;
=Principles=&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Be precise&amp;#039;&amp;#039;&amp;#039;, avoid general rare statements like &amp;quot;looks bad&amp;quot;, &amp;quot;does not work&amp;quot;, but state &amp;quot;indent too big&amp;quot; or &amp;quot;Text stays with alignment &amp;#039;left&amp;#039; after clicking &amp;#039;Alignment Centered&amp;#039; icon in standard toolbar&amp;quot; (for example).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Be clear&amp;#039;&amp;#039;&amp;#039;, don&amp;#039;t simply describe what your problem is, explain it so that other users can reproduce the bug&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Only one bug per report&amp;#039;&amp;#039;&amp;#039;, it would be impossible to manage the work flow for multiple bugs fixed by different developers at different times in one bug report.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Only one report per bug&amp;#039;&amp;#039;&amp;#039;, check for possible DUPlicates, where the problem you observed already has been reported. If you are not sure, add those bugs to &amp;#039;&amp;#039;See Also&amp;#039;&amp;#039; Field with a short comment why you believe your bug might be related to them, or even &amp;#039;&amp;#039;mark as Duplicate&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;No bug is too trivial to report&amp;#039;&amp;#039;&amp;#039; - small bugs may hide big bugs&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Clearly separate fact from speculation&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
=Preliminaries=&lt;br /&gt;
&lt;br /&gt;
# Reproduce your bug using a recent build of the software, to see whether it has already been fixed.&lt;br /&gt;
# Take a snapshot of your screen, to help developers better understand the bug consequences. &lt;br /&gt;
# [https://issues.apache.org/ooo/ Create] an AOO Bugzilla account, if you&amp;#039;re new to Bugzilla. &lt;br /&gt;
# [https://issues.apache.org/ooo/query.cgi?format=specific Search] Apache OOo Bugzilla, to see whether your bug has already been reported.&lt;br /&gt;
&lt;br /&gt;
=Reporting a New Bug=&lt;br /&gt;
If you have reproduced the bug in a recent build and no-one else appears to have reported it, then:&lt;br /&gt;
# Choose &amp;quot;[https://issues.apache.org/ooo/enter_bug.cgi Enter a new bug]&amp;quot;&lt;br /&gt;
# Select the Product in which you&amp;#039;ve found the bug.&lt;br /&gt;
# Fill-out the form (more details below).&lt;br /&gt;
# Verify your report, and make sure it&amp;#039;s clear, concise, and has no errors or omissions.&lt;br /&gt;
# Press &amp;quot;Commit&amp;quot; when done. After you created the issue report, an automated notification will be sent to the [http://openoffice.apache.org/mailing-lists.html#issues-mailing-list ISSUES mailing-list].&lt;br /&gt;
# Have patience. It could take time until your issue is noticed, confirmed, and dealt with. If you feel that your bug is being neglected, or that it must be fixed before the next release, send the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public DEV mailing-list] a short notice about it.&lt;br /&gt;
&lt;br /&gt;
== Form Fields in Detail ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Component:&amp;#039;&amp;#039;&amp;#039; In which sub-part of the software does it exist?&lt;br /&gt;
&lt;br /&gt;
This field is required. Click the word &amp;quot;Component&amp;quot; to see a description of each component. If none seems appropriate, look for a &amp;quot;General&amp;quot; component.&lt;br /&gt;
&lt;br /&gt;
In general the problem can be categorized as following component:&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;UI&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: Bug related with UI widget, e.g. menu, toolbar, statusbar, tooltips&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Open-Import&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The problem happened while loading document, which you are sure the document has no problem if opened by other product&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Editing&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The problem occurred while adding/removing some content of document&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Save-Export&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: Similar with component &amp;quot;open-import&amp;quot;, the problem happened while saving document, the exported document also has problem in other product&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version&amp;#039;&amp;#039;&amp;#039;: In which version of OpenOffice did you observe the bug, for the first time?&amp;lt;br&amp;gt;&lt;br /&gt;
:&amp;lt;span style=&amp;quot;color:#CC0000;&amp;quot;&amp;gt;Note:&amp;lt;/span&amp;gt; When you edit a report you submitted, don&amp;#039;t change the version from an older version to a newer one. Version documents the oldest version in which the issue occurred; only experienced community members, primarily QA people, should refine the value, but only in the direction to older versions.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Severity&amp;#039;&amp;#039;&amp;#039;: How severe the bug is&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;blocker&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug block other feature/function test. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::Problem does not allow to launch the module access function entry&amp;lt;br&amp;gt;&lt;br /&gt;
:::Problem hinders the creation of documentation&amp;lt;br&amp;gt;&lt;br /&gt;
:::Examples: System crash, application freeze&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;critical&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug make it impossible to work with the version of test on a feature. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::Crash happened intermittently&amp;lt;br&amp;gt;&lt;br /&gt;
:::Problem prevent major test activities&amp;lt;br&amp;gt;&lt;br /&gt;
:::Problem affect other function(not under current testcases) badly&amp;lt;br&amp;gt;&lt;br /&gt;
:::Examples: Application abnormal exist, failure on invoking or triggering the function without any workaround&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;major&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug cause function doesn&amp;#039;t work but there is typically workaround. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::A Basic function which, well... doesn&amp;#039;t function correctly;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Data loss;&amp;lt;br&amp;gt;&lt;br /&gt;
:::A Crash in special circumstances;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Examples: Cannot rename a sheet, document saved without character font settings.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;normal&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: Part of a function is workable but there are major faults. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::A bad function result;&amp;lt;br&amp;gt;&lt;br /&gt;
:::A problem has a workaround and can be put off without impacting the functionality;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Examples: Formula export with wrong result, font setting is incorrect.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;minor&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug does not prevent the work done. It includes but is not limited to:&amp;lt;br&amp;gt;&lt;br /&gt;
:::Spell-check issue in help file;&amp;lt;br&amp;gt;&lt;br /&gt;
:::A problem that is seldom encountered and easy to bypass;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Minor repaint errors;&amp;lt;br&amp;gt;&lt;br /&gt;
:::An nice to have feature;&amp;lt;br&amp;gt;&lt;br /&gt;
:::A Standard keyboard shortcut key doesn&amp;#039;t work;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Example: use ctrl+a instead of ctrl+c.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;trivial&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;: The bug might be an (small) enhancement of an existing feature.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;OS:&amp;#039;&amp;#039;&amp;#039; On which operating system (OS) did you find it? (e.g. Linux, Windows XP, Mac OS X.)&amp;lt;br&amp;gt;&lt;br /&gt;
If you know the bug happens on more than one type of operating system, choose &amp;#039;&amp;#039;All&amp;#039;&amp;#039;. If your OS isn&amp;#039;t listed, choose &amp;#039;&amp;#039;Other&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Summary:&amp;#039;&amp;#039;&amp;#039; How would you describe the bug, in approximately 60 or fewer characters?&amp;lt;br&amp;gt;&lt;br /&gt;
A good summary should &amp;#039;&amp;#039;&amp;#039;quickly and uniquely identify a bug report&amp;#039;&amp;#039;&amp;#039;. It should explain the problem, not your suggested solution.&lt;br /&gt;
&lt;br /&gt;
*Good: &amp;quot;Cancelling a File Copy dialog crashes File Manager&amp;quot;&lt;br /&gt;
*Bad: &amp;quot;Software crashes&amp;quot;&lt;br /&gt;
*Bad: &amp;quot;Browser should work with my web site&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Description:&amp;#039;&amp;#039;&amp;#039; The details of your problem report, including:&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039; Overview:&amp;#039;&amp;#039;&amp;#039; More detailed restatement of summary.&amp;lt;br&amp;gt;&lt;br /&gt;
:::Application crashed while insert a Chart in Spreadsheet document&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Steps to Reproduce:&amp;#039;&amp;#039;&amp;#039; Minimized, easy-to-follow steps that will trigger the bug. Include any special setup steps.&amp;lt;br&amp;gt;&lt;br /&gt;
:::# New Spreadsheet document&lt;br /&gt;
:::# Insert Chart by menu &amp;quot;Insert-&amp;gt;Chart&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Actual Results:&amp;#039;&amp;#039;&amp;#039; What the application did after performing the above steps.&amp;lt;br&amp;gt;&lt;br /&gt;
:::The application crashed.&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Expected Results:&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
:::Popup Chart Wizard dialog&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Build Date &amp;amp; Platform:&amp;#039;&amp;#039;&amp;#039; Date and platform of the build in which you first encountered the bug.&amp;lt;br&amp;gt;&lt;br /&gt;
:::Build: AOO 3.4.1 Rev.1359641&lt;br /&gt;
:::OS: Windows XP, Windows 7, SuSE Linux 11 SP1, RedHat Linux 6 Update 3, Ubuntu 12.04...&amp;lt;br&amp;gt;&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Additional Builds and Platforms:&amp;#039;&amp;#039;&amp;#039; Whether or not the bug takes place on other platforms&amp;lt;br&amp;gt;&lt;br /&gt;
:::The problem doesn&amp;#039;t exist in Mac OS X&lt;br /&gt;
::&amp;#039;&amp;#039;&amp;#039;Additional Information:&amp;#039;&amp;#039;&amp;#039; Any other useful information. &lt;br /&gt;
:::Regression info:&amp;lt;br&amp;gt;&lt;br /&gt;
:::The problem doesn&amp;#039;t exist in AOO 3.4 Release&lt;br /&gt;
::For crashing bugs:&lt;br /&gt;
:::Attach the crash log if available.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Advanced field - Issue Type&amp;#039;&amp;#039;&amp;#039;: Issue type categorized as:&lt;br /&gt;
:*Defect&lt;br /&gt;
:*Enhancement&lt;br /&gt;
:*Feature&lt;br /&gt;
:*Patch&lt;br /&gt;
:*Task&lt;br /&gt;
If the issue is minor, something like nice to have, you can use &amp;quot;Enhancement&amp;quot; as issue type&amp;lt;br&amp;gt;&lt;br /&gt;
If the issue is much complicate to implement, something like feature, you can use &amp;quot;Feature&amp;quot; as issue type&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Advanced field - Keyword&amp;#039;&amp;#039;&amp;#039;: Use pre-defined [https://issues.apache.org/ooo/describekeywords.cgi keyword] to tag bug&lt;br /&gt;
&lt;br /&gt;
Available Keywords:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Name&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Description&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
accessibility &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Issues referring to the accessibility of the product should have this keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
accessibility-external &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword is used for accessibility issues that have to be fixed outside of the Apache OpenOffice code base (eg. Assistive Technology)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
aqua &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword should be used to better identify issues applying to a native version (without X11) of OpenOffice.org running on Mac OS X&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Arabic &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Referring to the Arabic version.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
BIDI &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword marks issues related to bi-directional support&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
CJK &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
If issues are related to Chinese, Japanese and Korean, you can mark it as cjk.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
crash &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword can be used for any crash, freeze, hang, that occurs.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
data_loss &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Use this keyword for issues that lead to a loss of data (this includes the entire document, the content within a document or loss of configuration settings)&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
easy2dev &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
use this keyword if currently no resources are available to solve this issue and you think this issue would be an doable step in for new volunteers to the project.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
Hebrew &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Referring to the Hebrew version.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
interop_OOXML &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Keyword denoting interoperability with MSO 2007/2010 file formats based on XML&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
merge_pending &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
request for merging an approved patch into the tree; keyword will be removed by the community member(s) who merge the patch into the tree.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
ms_interoperability &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword should be used to identify issues regarding the interoperability with Microsoft Office applications.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
needhelp &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword signals somebody seeking assistance. For example, this may be a developer who wants to delegate (parts of) a task, an QA engineer in need for expertise to reproduce a bug, or somebody who wants to verify a patch before integrating it, and needs access to e.g. an exotic Linux distro.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
needmoreinfo &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword should be used to mark issues where a QA volunteer or a developer asked the submitter to give more information to an issue. The advantage is that you can query for that keyword and easily figure out where you asked for more information.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
new_implementation &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword is used if a new implementation of a component is prepared and helps identifying that this issue refers to new code not yet contained in the installation set.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
numbering &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword is used to track issues for outline, numbering and bullet list formatting within the module word processor.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
odf_validation &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword is used for issues about ODF documents, written by OpenOffice.org, which do not validate against the latest ODF schema.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
oooqa &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword should be used to make clear that an OOo QA volunteer has applied a change to an issue, be it an additional description, a priority change or anything else.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
performance &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
denotes issues which describe the insufficient performance of a specific task in OpenOffice.org&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
regression &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword can be set if functionality definately worked in an older version, but doesn&amp;#039;t in a newer version. It is very helpful to give detailed information from which version to which version the functionality broke. If this issue is considered a blocker for the next release, the OpenOffice.org team will indicate this by setting the &amp;quot;release_blocker&amp;quot; keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
release_blocker &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
This keyword denotes issues which are considered a blocker for the next maintenance release.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
review &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
A flag used with &amp;quot;patch&amp;quot; attachments that will forward the issue to the &amp;quot;dev&amp;quot; list so the patch can be reviewed by developers. Set to &amp;quot;?&amp;quot; for review.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
rfe_eval_ok &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
status field for feature request evaluation&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
security &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Issues referring to security incl. digital signatures, encryption, etc. should have this keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
third_party_support &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Issues referring to third party support including groupware and collaboration integration requirement should have this keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
TSK-DEF &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Task defined.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
usability &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Issues referring to usability and ease of learning should have this keyword.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
usagetracking &lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
Usagetracking issues for Renaissance Project&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Quality Assurance]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235506</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235506"/>
		<updated>2014-08-05T22:35:44Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
* Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
* Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
* Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
* Install office&lt;br /&gt;
* Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
==Status==&lt;br /&gt;
This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.  However, there are still some things not explained in the necessary detail on this page:&lt;br /&gt;
* How to use ccache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appeares accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.  You may want to erase the output of a previous compilation:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step Step-by-Step Building Guide for Different Platforms] =&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;br /&gt;
&lt;br /&gt;
= Building Apache OpenOffice with an IDE =&lt;br /&gt;
== [https://wiki.openoffice.org/wiki/OpenOffice_and_Eclipse Building with Eclipse] ==&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235502</id>
		<title>OpenOffice NetBeans Integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235502"/>
		<updated>2014-08-04T20:36:06Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:OOo-Netbeans-Plugin.png|right]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).&lt;br /&gt;
&lt;br /&gt;
= Download and Installation =&lt;br /&gt;
&lt;br /&gt;
== NetBeans 6.x and OpenOffice 3.x (Obsolete) ==&lt;br /&gt;
The plugin appears automatically in Netbeans 6.5.x, 6.7.x, 6.8 (version 2.0.6) but is not listed for later versions.&lt;br /&gt;
&lt;br /&gt;
== NetBeans 7.x and Apache OpenOffice 4.0.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~cmarcum/devtools/ http://people.apache.org/~cmarcum/devtools/] provided by Carl Marcum. Use 3.x versions for extension development for OpenOffice.org versions 3.0 thru 3.4. Use the latest 4.0.5 alpha version for extension development for Apache OpenOffice 4.x. This version is under active development and will be made available in the NetBeans plugin manager list when finished. Until then, remember that it is an &amp;#039;&amp;#039;&amp;#039;Beta&amp;#039;&amp;#039;&amp;#039; version.&lt;br /&gt;
&lt;br /&gt;
The configuration is self explanatory, for detailed information see [[OpenOffice_NetBeans_Integration#Configuration|Configuration]]. &lt;br /&gt;
&lt;br /&gt;
== NetBeans 8.0 and Apache OpenOffice 4.1.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm] provided by Jürgen Schmidt.&lt;br /&gt;
&lt;br /&gt;
Also see the mail message concerning this version: [http://markmail.org/message/7kr7b3gs2baqxdsw &lt;br /&gt;
http://markmail.org/message/7kr7b3gs2baqxdsw]&lt;br /&gt;
&lt;br /&gt;
== From source ==&lt;br /&gt;
The source is available in the Apache OpenOffice source SVN repository in the &amp;#039;&amp;#039;&amp;#039;devtools&amp;#039;&amp;#039;&amp;#039; tree. &lt;br /&gt;
&lt;br /&gt;
The 3.0 source is available from:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/branches/3.0 https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/branches/3.0]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The recent source to use for 4.1 is available from:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
Overview of the features included in the current plugin.&lt;br /&gt;
== Project Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New Project...&amp;amp;quot; and choose category &amp;amp;quot;OpenOffice.org&amp;amp;quot; to open a new project. All project types create working code. Once the project wizard is finished, a working&lt;br /&gt;
compilable project is created. It may not do anything, but it can be used&lt;br /&gt;
in OpenOffice.org from the beginning.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE client application project with additional support of the &lt;br /&gt;
simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client &lt;br /&gt;
application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an office extension package. The wizard collects the necessary information for new &lt;br /&gt;
Calc built-in functions and abstracts from the underlying UNO technology.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[General_UNO_Component_Project_Type|General UNO Component Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a&lt;br /&gt;
UNO component library and an OpenOffice.org extension package. The wizard collects information about services &lt;br /&gt;
and additional optional interfaces which should be implemented. Additional IDL types can also be&lt;br /&gt;
defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an OpenOffice.org extension package. The wizard collects the necessary information for an &lt;br /&gt;
OpenOffice.org Add-On component and generates an Add-On specific code skeleton.&lt;br /&gt;
&lt;br /&gt;
== File Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New File...&amp;amp;quot; and select &amp;amp;quot;OpenOffice.org&amp;amp;quot; as category to create a new file for an OpenOffice.org project. Note, that the OpenOffice.org category is available in all projects, although it only makes sense to use it in one of the projects stated above.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcu file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcu file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcs file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcs file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UNO idl file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
You can use a file type wizard to create idl files. In the first step, you must select the name location&lt;br /&gt;
and UNO type (e.g. Service or Interface). You can add additional &lt;br /&gt;
information in the second step. When an interface is created, the second step asks about&lt;br /&gt;
the functions that the interface should contain. A complete working idl file is created, and NetBeans provides syntax highlighting. When you choose&lt;br /&gt;
to also create an implementation object (only available for service or interface), a Java skeleton file implementing&lt;br /&gt;
your new idl file will also be created.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Java UNO Object file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This file wizard creates a Java skeleton file that implements all functions defined in an interface or service idl file. If you choose a service, the Java implementation file will also be &lt;br /&gt;
registered in OpenOffice.org when your extension is deployed.&lt;br /&gt;
&lt;br /&gt;
== Create, deploy and debug ==&lt;br /&gt;
These are actions that are available in the context menu of an extension project in the &amp;amp;quot;Project&amp;amp;quot; &lt;br /&gt;
view.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Debug Extension in Target OpenOffice.org&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation. To trigger the registered extension, an appropriate action must be done in OpenOffice.org.&lt;br /&gt;
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Deploy and Run OpenOffice.org Extension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org. Then OpenOffice.org is started.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Create OXT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images. The OXT file is located in the &amp;amp;quot;dist&amp;amp;quot; directory of the project.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Publish Extension on OpenOffice.org Website&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The starting page for uploading and publishing your extension on api.services.openoffice.org is loaded in your default web browser.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;External Jars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension&amp;#039;s classpath. A registered extension in OpenOffice.org can still use the functionality provided there.&lt;br /&gt;
The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
Find here links to the specifications of the plugin on the api.openoffice.org page.&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration.odt OpenOffice.org Plugin for NetBeans]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-addon-wizard.odt OpenOffice.org Plugin for NetBeans: Add-On Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-calc-addin-wizard.odt OpenOffice.org Plugin for NetBeans: Add-In Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-component-wizard.odt OpenOffice.org Plugin for NetBeans: Component Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-debug-component.odt OpenOffice.org Plugin for NetBeans: Debug Feature]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-new-idl-type.odt OpenOffice.org Plugin for NetBeans: IDL type support]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-description-xml.odt OpenOffice.org Plugin for NetBeans: Support description.xml]&lt;br /&gt;
&lt;br /&gt;
= Working with the plugin =&lt;br /&gt;
The following section describes how you can work with the plugin and describes the requirements because the plugin  make use of some external stuff provided by an office and the OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The plugin works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK). The minimal suggested version is OpenOffice.org 2.0.4. With earlier versions, some features of the plugin will not work.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org OpenOffice.org]&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;[http://www.sun.com/staroffice StarOffice 8]&amp;#039;&amp;#039;&amp;#039; or higher versions of both programs&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK)]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Note that the versions of OpenOffice.org and the OpenOffice.org SDK must match for everything to work.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
* As default settings, a standard installation will be found by the plugin - but only if OpenOffice.org together with the SDK are present.&lt;br /&gt;
* When you choose the OpenOffice.org installation and an appropriate SDK is found, that SDK is chosen, the &amp;amp;quot;OpenOffice.org SDK Installation&amp;amp;quot; field is then disabled.&lt;br /&gt;
* If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for projects created from now on only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For changing the office and SDK installation please choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API plugin&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
and select a valid OpenOffice.org and OpenOffice.org SDK installation. &lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]&amp;lt;br&amp;gt;&lt;br /&gt;
The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.&lt;br /&gt;
&lt;br /&gt;
Note: on Debian/Ubuntu, the OpenOffice.org installation directory is &amp;lt;code&amp;gt;/usr/lib/openoffice/&amp;lt;/code&amp;gt;. For other *nix platforms the location may vary, but you can find the location by inspecting the shell script &amp;lt;code&amp;gt;/usr/bin/ooffice&amp;lt;/code&amp;gt; to see where the &amp;lt;code&amp;gt;ooqstart&amp;lt;/code&amp;gt; executable is in your installation.&lt;br /&gt;
&lt;br /&gt;
== Working with new Project Types ==&lt;br /&gt;
The plugin integrates four new project types under the category &amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Add-On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Calc Add-Ins&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Client Application&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Component&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The wizards will collect the necessary information to create the new projects and should follow the NetBeans philosophy. You can simply choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;File -&amp;gt; New Project -&amp;gt; OpenOffice.org -&amp;gt; &amp;lt;project_type&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
For more details about the project types please take a look at&lt;br /&gt;
*[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org UNO Client Application Project Type]]&lt;br /&gt;
*[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&lt;br /&gt;
*[[General_UNO_Component_Project_Type|OpenOffice.org Component Project Type]]&lt;br /&gt;
*[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&lt;br /&gt;
&lt;br /&gt;
== Migrate Projects ==&lt;br /&gt;
To migrate projects from an older version of the plugin to a new one is not necessary - the plugin itself will take care of that: build-uno-impl.xml and the project-uno.properties are updated, when updated versions of these files are needed for new features of the updated plugin. Note that build-uno-impl.xml will be overwritten, but project-uno.properties not. In the properties file, only new entries are added, existing ones are kept as they are. The update of the files happens when an old project is opened with a new version of the plugin and for all opened projects when the new plugin is downloaded and installed.&lt;br /&gt;
&lt;br /&gt;
When migrating from one Office version to another (or porting a project across platforms), only a library has to be changed, called &amp;amp;quot;OpenOffice.org &amp;lt;version_number&amp;gt;&amp;amp;quot; (or &amp;amp;quot;StarOffice &amp;lt;version_number&amp;gt;&amp;amp;quot;). Choose &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Libraries&amp;#039;&amp;#039;&amp;#039; to get an overview of the existing libraries. A library is created when a valid OpenOffice.org and OpenOffice.org SDK is selected in &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API Plugin&amp;#039;&amp;#039;&amp;#039; (See [[OpenOffice_NetBeans_Integration#Configuration|Configuration]] for more details).&lt;br /&gt;
* To change the library, click right on the project in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window and open the properties. Select &amp;#039;&amp;#039;&amp;#039;Libraries&amp;#039;&amp;#039;&amp;#039; as category and remove the one that points to the old installation and add the new one.&lt;br /&gt;
* When porting the project across platforms, NetBeans notifies that a reference problem exists. The steps for changing the libraries also help in this case.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Missing Features ==&lt;br /&gt;
&lt;br /&gt;
* Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.&lt;br /&gt;
* &amp;amp;quot;Red Dot Problem&amp;amp;quot;: When you have created a project that supports own idl files (e.g. a Clac AddIn), a &amp;amp;quot;clean&amp;amp;quot; on the project will produce &amp;amp;quot;red dots&amp;amp;quot; that show that imported functionality is missing. The cause for this is the deleted jar file with the idl types that are used in your project. Although this does not seem to be the case, a compile will work and solve the problem. Sometimes the signs appear when &amp;amp;quot;clean and build&amp;amp;quot; is chosen - here the compiled idl files exist, but NetBeans does not recognize that. Open the offending Java file to solve that. Solution: compile idl files in the background and produce a &amp;amp;quot;shadow&amp;amp;quot; jar file in a temp directory that can be used even if the &amp;amp;quot;official&amp;amp;quot; file in the &amp;lt;project_name&amp;gt;/dist folder is deleted.&lt;br /&gt;
* With NetBeans versions at least 6.1 there is an update problem regarding NetBeans property sheets and node views: property sheet changes are not reflected in the node view. Seems like the notify mechanism for these updates has changed.&lt;br /&gt;
&lt;br /&gt;
= Releases =&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=5 cellspacing=0 border=1 style=&amp;quot;border-collapse:collapse; margin-left: 3em; border-color: #333;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #DEDEDE;&amp;quot;&lt;br /&gt;
| Release Version || Planned Release Date || Release Date || Planned Features&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.0 || 05/08/07 || 05/08/07 || -&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1 || 09/01/07 || 09/18/07 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1| see 1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.1 || 03/08 || 03/20/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.2 || 04/08 || 04/30/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.2]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.3 || 06/30/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.3]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0 || 09/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_2.0| see 2.0]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.3 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.4 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.5 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.6 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.7.alpha || - || - || changes to support NetBeans 6.9, opnly available in the file section of the API project, [http://api.openoffice.org/files/documents/22/4772/org-openoffice-extensions-2.0.7.alpha.nbm org-openoffice-extensions-2.0.7.alpha.nbm]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;Detailed download statistics can be found [[OpenOffice_NetBeans_Integration/Releases/Download_Statistic| here]] (not up-to-date)&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Releases/Release_1.2#Current_issues_concerning_NetBeans_6|Issues]] for using the plugin with NetBeans 6.&lt;br /&gt;
&lt;br /&gt;
= Planned Features =&lt;br /&gt;
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.&lt;br /&gt;
&lt;br /&gt;
== New Project Types ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_SmartTag_Project_Type|OpenOffice.org SmartTag Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will simplify the development of SmartTags for the OpenOffice.org Writer application.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type should create a &amp;#039;&amp;#039;Library Wrapper Module&amp;#039;&amp;#039; to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.&lt;br /&gt;
&lt;br /&gt;
== Common Features ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Editor for xcu files&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.&lt;br /&gt;
&lt;br /&gt;
= Quality Assurance =&lt;br /&gt;
&lt;br /&gt;
If you find bugs please submit a new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=DEFECT issue] in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration_QA|Schedule for OpenOffice.org NetBeans Integration QA ]]&lt;br /&gt;
&lt;br /&gt;
= Localization =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Localization|Localization Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Things to be done =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/To-Dos|ToDo list]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
We will continuously extend and improve the plugin in the future and your feedback is welcome and highly appreciated. We would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).&lt;br /&gt;
&lt;br /&gt;
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NetBeans]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Effort]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235501</id>
		<title>OpenOffice NetBeans Integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235501"/>
		<updated>2014-08-04T20:33:46Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:OOo-Netbeans-Plugin.png|right]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).&lt;br /&gt;
&lt;br /&gt;
= Download and Installation =&lt;br /&gt;
&lt;br /&gt;
== Netbeans 6.x (obsolete) and OpenOffice 3.x==&lt;br /&gt;
The plugin appears automatically in Netbeans 6.5.x, 6.7.x, 6.8 (version 2.0.6) but is not listed for later versions.&lt;br /&gt;
&lt;br /&gt;
== NetBeans 7.x and Apache OpenOffice 4.0.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~cmarcum/devtools/ http://people.apache.org/~cmarcum/devtools/] provided by Carl Marcum. Use 3.x versions for extension development for OpenOffice.org versions 3.0 thru 3.4. Use the latest 4.0.5 alpha version for extension development for Apache OpenOffice 4.x. This version is under active development and will be made available in the NetBeans plugin manager list when finished. Until then, remember that it is an &amp;#039;&amp;#039;&amp;#039;Beta&amp;#039;&amp;#039;&amp;#039; version.&lt;br /&gt;
&lt;br /&gt;
The configuration is self explanatory, for detailed information see [[OpenOffice_NetBeans_Integration#Configuration|Configuration]]. &lt;br /&gt;
&lt;br /&gt;
== NetBeans 8.0 and Apache OpenOffice 4.1.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm] developed by Jürgen Schmidt.&lt;br /&gt;
&lt;br /&gt;
Also see the mail message concerning this version: [http://markmail.org/message/7kr7b3gs2baqxdsw &lt;br /&gt;
http://markmail.org/message/7kr7b3gs2baqxdsw]&lt;br /&gt;
&lt;br /&gt;
== From source ==&lt;br /&gt;
The source is available in the Apache OpenOffice source SVN repository in the &amp;#039;&amp;#039;&amp;#039;devtools&amp;#039;&amp;#039;&amp;#039; tree. &lt;br /&gt;
&lt;br /&gt;
The 3.0 source is available from:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/branches/3.0 https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/branches/3.0]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The recent source to use for 4.1 is available from:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
Overview of the features included in the current plugin.&lt;br /&gt;
== Project Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New Project...&amp;amp;quot; and choose category &amp;amp;quot;OpenOffice.org&amp;amp;quot; to open a new project. All project types create working code. Once the project wizard is finished, a working&lt;br /&gt;
compilable project is created. It may not do anything, but it can be used&lt;br /&gt;
in OpenOffice.org from the beginning.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE client application project with additional support of the &lt;br /&gt;
simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client &lt;br /&gt;
application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an office extension package. The wizard collects the necessary information for new &lt;br /&gt;
Calc built-in functions and abstracts from the underlying UNO technology.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[General_UNO_Component_Project_Type|General UNO Component Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a&lt;br /&gt;
UNO component library and an OpenOffice.org extension package. The wizard collects information about services &lt;br /&gt;
and additional optional interfaces which should be implemented. Additional IDL types can also be&lt;br /&gt;
defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an OpenOffice.org extension package. The wizard collects the necessary information for an &lt;br /&gt;
OpenOffice.org Add-On component and generates an Add-On specific code skeleton.&lt;br /&gt;
&lt;br /&gt;
== File Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New File...&amp;amp;quot; and select &amp;amp;quot;OpenOffice.org&amp;amp;quot; as category to create a new file for an OpenOffice.org project. Note, that the OpenOffice.org category is available in all projects, although it only makes sense to use it in one of the projects stated above.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcu file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcu file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcs file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcs file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UNO idl file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
You can use a file type wizard to create idl files. In the first step, you must select the name location&lt;br /&gt;
and UNO type (e.g. Service or Interface). You can add additional &lt;br /&gt;
information in the second step. When an interface is created, the second step asks about&lt;br /&gt;
the functions that the interface should contain. A complete working idl file is created, and NetBeans provides syntax highlighting. When you choose&lt;br /&gt;
to also create an implementation object (only available for service or interface), a Java skeleton file implementing&lt;br /&gt;
your new idl file will also be created.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Java UNO Object file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This file wizard creates a Java skeleton file that implements all functions defined in an interface or service idl file. If you choose a service, the Java implementation file will also be &lt;br /&gt;
registered in OpenOffice.org when your extension is deployed.&lt;br /&gt;
&lt;br /&gt;
== Create, deploy and debug ==&lt;br /&gt;
These are actions that are available in the context menu of an extension project in the &amp;amp;quot;Project&amp;amp;quot; &lt;br /&gt;
view.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Debug Extension in Target OpenOffice.org&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation. To trigger the registered extension, an appropriate action must be done in OpenOffice.org.&lt;br /&gt;
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Deploy and Run OpenOffice.org Extension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org. Then OpenOffice.org is started.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Create OXT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images. The OXT file is located in the &amp;amp;quot;dist&amp;amp;quot; directory of the project.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Publish Extension on OpenOffice.org Website&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The starting page for uploading and publishing your extension on api.services.openoffice.org is loaded in your default web browser.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;External Jars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension&amp;#039;s classpath. A registered extension in OpenOffice.org can still use the functionality provided there.&lt;br /&gt;
The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
Find here links to the specifications of the plugin on the api.openoffice.org page.&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration.odt OpenOffice.org Plugin for NetBeans]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-addon-wizard.odt OpenOffice.org Plugin for NetBeans: Add-On Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-calc-addin-wizard.odt OpenOffice.org Plugin for NetBeans: Add-In Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-component-wizard.odt OpenOffice.org Plugin for NetBeans: Component Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-debug-component.odt OpenOffice.org Plugin for NetBeans: Debug Feature]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-new-idl-type.odt OpenOffice.org Plugin for NetBeans: IDL type support]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-description-xml.odt OpenOffice.org Plugin for NetBeans: Support description.xml]&lt;br /&gt;
&lt;br /&gt;
= Working with the plugin =&lt;br /&gt;
The following section describes how you can work with the plugin and describes the requirements because the plugin  make use of some external stuff provided by an office and the OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The plugin works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK). The minimal suggested version is OpenOffice.org 2.0.4. With earlier versions, some features of the plugin will not work.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org OpenOffice.org]&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;[http://www.sun.com/staroffice StarOffice 8]&amp;#039;&amp;#039;&amp;#039; or higher versions of both programs&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK)]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Note that the versions of OpenOffice.org and the OpenOffice.org SDK must match for everything to work.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
* As default settings, a standard installation will be found by the plugin - but only if OpenOffice.org together with the SDK are present.&lt;br /&gt;
* When you choose the OpenOffice.org installation and an appropriate SDK is found, that SDK is chosen, the &amp;amp;quot;OpenOffice.org SDK Installation&amp;amp;quot; field is then disabled.&lt;br /&gt;
* If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for projects created from now on only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For changing the office and SDK installation please choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API plugin&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
and select a valid OpenOffice.org and OpenOffice.org SDK installation. &lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]&amp;lt;br&amp;gt;&lt;br /&gt;
The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.&lt;br /&gt;
&lt;br /&gt;
Note: on Debian/Ubuntu, the OpenOffice.org installation directory is &amp;lt;code&amp;gt;/usr/lib/openoffice/&amp;lt;/code&amp;gt;. For other *nix platforms the location may vary, but you can find the location by inspecting the shell script &amp;lt;code&amp;gt;/usr/bin/ooffice&amp;lt;/code&amp;gt; to see where the &amp;lt;code&amp;gt;ooqstart&amp;lt;/code&amp;gt; executable is in your installation.&lt;br /&gt;
&lt;br /&gt;
== Working with new Project Types ==&lt;br /&gt;
The plugin integrates four new project types under the category &amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Add-On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Calc Add-Ins&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Client Application&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Component&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The wizards will collect the necessary information to create the new projects and should follow the NetBeans philosophy. You can simply choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;File -&amp;gt; New Project -&amp;gt; OpenOffice.org -&amp;gt; &amp;lt;project_type&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
For more details about the project types please take a look at&lt;br /&gt;
*[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org UNO Client Application Project Type]]&lt;br /&gt;
*[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&lt;br /&gt;
*[[General_UNO_Component_Project_Type|OpenOffice.org Component Project Type]]&lt;br /&gt;
*[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&lt;br /&gt;
&lt;br /&gt;
== Migrate Projects ==&lt;br /&gt;
To migrate projects from an older version of the plugin to a new one is not necessary - the plugin itself will take care of that: build-uno-impl.xml and the project-uno.properties are updated, when updated versions of these files are needed for new features of the updated plugin. Note that build-uno-impl.xml will be overwritten, but project-uno.properties not. In the properties file, only new entries are added, existing ones are kept as they are. The update of the files happens when an old project is opened with a new version of the plugin and for all opened projects when the new plugin is downloaded and installed.&lt;br /&gt;
&lt;br /&gt;
When migrating from one Office version to another (or porting a project across platforms), only a library has to be changed, called &amp;amp;quot;OpenOffice.org &amp;lt;version_number&amp;gt;&amp;amp;quot; (or &amp;amp;quot;StarOffice &amp;lt;version_number&amp;gt;&amp;amp;quot;). Choose &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Libraries&amp;#039;&amp;#039;&amp;#039; to get an overview of the existing libraries. A library is created when a valid OpenOffice.org and OpenOffice.org SDK is selected in &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API Plugin&amp;#039;&amp;#039;&amp;#039; (See [[OpenOffice_NetBeans_Integration#Configuration|Configuration]] for more details).&lt;br /&gt;
* To change the library, click right on the project in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window and open the properties. Select &amp;#039;&amp;#039;&amp;#039;Libraries&amp;#039;&amp;#039;&amp;#039; as category and remove the one that points to the old installation and add the new one.&lt;br /&gt;
* When porting the project across platforms, NetBeans notifies that a reference problem exists. The steps for changing the libraries also help in this case.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Missing Features ==&lt;br /&gt;
&lt;br /&gt;
* Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.&lt;br /&gt;
* &amp;amp;quot;Red Dot Problem&amp;amp;quot;: When you have created a project that supports own idl files (e.g. a Clac AddIn), a &amp;amp;quot;clean&amp;amp;quot; on the project will produce &amp;amp;quot;red dots&amp;amp;quot; that show that imported functionality is missing. The cause for this is the deleted jar file with the idl types that are used in your project. Although this does not seem to be the case, a compile will work and solve the problem. Sometimes the signs appear when &amp;amp;quot;clean and build&amp;amp;quot; is chosen - here the compiled idl files exist, but NetBeans does not recognize that. Open the offending Java file to solve that. Solution: compile idl files in the background and produce a &amp;amp;quot;shadow&amp;amp;quot; jar file in a temp directory that can be used even if the &amp;amp;quot;official&amp;amp;quot; file in the &amp;lt;project_name&amp;gt;/dist folder is deleted.&lt;br /&gt;
* With NetBeans versions at least 6.1 there is an update problem regarding NetBeans property sheets and node views: property sheet changes are not reflected in the node view. Seems like the notify mechanism for these updates has changed.&lt;br /&gt;
&lt;br /&gt;
= Releases =&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=5 cellspacing=0 border=1 style=&amp;quot;border-collapse:collapse; margin-left: 3em; border-color: #333;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #DEDEDE;&amp;quot;&lt;br /&gt;
| Release Version || Planned Release Date || Release Date || Planned Features&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.0 || 05/08/07 || 05/08/07 || -&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1 || 09/01/07 || 09/18/07 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1| see 1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.1 || 03/08 || 03/20/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.2 || 04/08 || 04/30/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.2]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.3 || 06/30/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.3]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0 || 09/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_2.0| see 2.0]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.3 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.4 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.5 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.6 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.7.alpha || - || - || changes to support NetBeans 6.9, opnly available in the file section of the API project, [http://api.openoffice.org/files/documents/22/4772/org-openoffice-extensions-2.0.7.alpha.nbm org-openoffice-extensions-2.0.7.alpha.nbm]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;Detailed download statistics can be found [[OpenOffice_NetBeans_Integration/Releases/Download_Statistic| here]] (not up-to-date)&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Releases/Release_1.2#Current_issues_concerning_NetBeans_6|Issues]] for using the plugin with NetBeans 6.&lt;br /&gt;
&lt;br /&gt;
= Planned Features =&lt;br /&gt;
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.&lt;br /&gt;
&lt;br /&gt;
== New Project Types ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_SmartTag_Project_Type|OpenOffice.org SmartTag Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will simplify the development of SmartTags for the OpenOffice.org Writer application.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type should create a &amp;#039;&amp;#039;Library Wrapper Module&amp;#039;&amp;#039; to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.&lt;br /&gt;
&lt;br /&gt;
== Common Features ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Editor for xcu files&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.&lt;br /&gt;
&lt;br /&gt;
= Quality Assurance =&lt;br /&gt;
&lt;br /&gt;
If you find bugs please submit a new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=DEFECT issue] in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration_QA|Schedule for OpenOffice.org NetBeans Integration QA ]]&lt;br /&gt;
&lt;br /&gt;
= Localization =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Localization|Localization Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Things to be done =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/To-Dos|ToDo list]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
We will continuously extend and improve the plugin in the future and your feedback is welcome and highly appreciated. We would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).&lt;br /&gt;
&lt;br /&gt;
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NetBeans]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Effort]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235500</id>
		<title>OpenOffice NetBeans Integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235500"/>
		<updated>2014-08-04T20:32:34Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:OOo-Netbeans-Plugin.png|right]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).&lt;br /&gt;
&lt;br /&gt;
= Download and Installation =&lt;br /&gt;
&lt;br /&gt;
== Netbeans 6.x (obsolete) and OpenOffice 3.x==&lt;br /&gt;
The plugin appears automatically in Netbeans 6.5.x, 6.7.x, 6.8 (version 2.0.6) but is not listed for later versions.&lt;br /&gt;
&lt;br /&gt;
== NetBeans 7.x and Apache OpenOffice 4.0.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~cmarcum/devtools/ http://people.apache.org/~cmarcum/devtools/] provided by Carl Marcum. Use 3.x versions for extension development for OpenOffice.org versions 3.0 thru 3.4. Use the latest 4.0.5 alpha version for extension development for Apache OpenOffice 4.x. This version is under active development and will be made available in the NetBeans plugin manager list when finished. Until then, remember that it is an &amp;#039;&amp;#039;&amp;#039;Beta&amp;#039;&amp;#039;&amp;#039; version.&lt;br /&gt;
&lt;br /&gt;
The configuration is self explanatory, for detailed information see [[OpenOffice_NetBeans_Integration#Configuration|Configuration]]. &lt;br /&gt;
&lt;br /&gt;
== NetBeans 8.0 and Apache OpenOffice 4.1.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm] developed by Jürgen Schmidt.&lt;br /&gt;
&lt;br /&gt;
See the mail message concerning this version: [http://markmail.org/message/7kr7b3gs2baqxdsw &lt;br /&gt;
http://markmail.org/message/7kr7b3gs2baqxdsw]&lt;br /&gt;
&lt;br /&gt;
== From source ==&lt;br /&gt;
The source is available in the Apache OpenOffice source SVN repository in the &amp;#039;&amp;#039;&amp;#039;devtools&amp;#039;&amp;#039;&amp;#039; tree. &lt;br /&gt;
&lt;br /&gt;
The 3.0 source is available from:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/branches/3.0 https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/branches/3.0]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The recent source to use for 4.1 is available from:&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
Overview of the features included in the current plugin.&lt;br /&gt;
== Project Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New Project...&amp;amp;quot; and choose category &amp;amp;quot;OpenOffice.org&amp;amp;quot; to open a new project. All project types create working code. Once the project wizard is finished, a working&lt;br /&gt;
compilable project is created. It may not do anything, but it can be used&lt;br /&gt;
in OpenOffice.org from the beginning.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE client application project with additional support of the &lt;br /&gt;
simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client &lt;br /&gt;
application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an office extension package. The wizard collects the necessary information for new &lt;br /&gt;
Calc built-in functions and abstracts from the underlying UNO technology.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[General_UNO_Component_Project_Type|General UNO Component Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a&lt;br /&gt;
UNO component library and an OpenOffice.org extension package. The wizard collects information about services &lt;br /&gt;
and additional optional interfaces which should be implemented. Additional IDL types can also be&lt;br /&gt;
defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an OpenOffice.org extension package. The wizard collects the necessary information for an &lt;br /&gt;
OpenOffice.org Add-On component and generates an Add-On specific code skeleton.&lt;br /&gt;
&lt;br /&gt;
== File Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New File...&amp;amp;quot; and select &amp;amp;quot;OpenOffice.org&amp;amp;quot; as category to create a new file for an OpenOffice.org project. Note, that the OpenOffice.org category is available in all projects, although it only makes sense to use it in one of the projects stated above.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcu file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcu file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcs file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcs file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UNO idl file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
You can use a file type wizard to create idl files. In the first step, you must select the name location&lt;br /&gt;
and UNO type (e.g. Service or Interface). You can add additional &lt;br /&gt;
information in the second step. When an interface is created, the second step asks about&lt;br /&gt;
the functions that the interface should contain. A complete working idl file is created, and NetBeans provides syntax highlighting. When you choose&lt;br /&gt;
to also create an implementation object (only available for service or interface), a Java skeleton file implementing&lt;br /&gt;
your new idl file will also be created.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Java UNO Object file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This file wizard creates a Java skeleton file that implements all functions defined in an interface or service idl file. If you choose a service, the Java implementation file will also be &lt;br /&gt;
registered in OpenOffice.org when your extension is deployed.&lt;br /&gt;
&lt;br /&gt;
== Create, deploy and debug ==&lt;br /&gt;
These are actions that are available in the context menu of an extension project in the &amp;amp;quot;Project&amp;amp;quot; &lt;br /&gt;
view.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Debug Extension in Target OpenOffice.org&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation. To trigger the registered extension, an appropriate action must be done in OpenOffice.org.&lt;br /&gt;
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Deploy and Run OpenOffice.org Extension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org. Then OpenOffice.org is started.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Create OXT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images. The OXT file is located in the &amp;amp;quot;dist&amp;amp;quot; directory of the project.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Publish Extension on OpenOffice.org Website&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The starting page for uploading and publishing your extension on api.services.openoffice.org is loaded in your default web browser.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;External Jars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension&amp;#039;s classpath. A registered extension in OpenOffice.org can still use the functionality provided there.&lt;br /&gt;
The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
Find here links to the specifications of the plugin on the api.openoffice.org page.&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration.odt OpenOffice.org Plugin for NetBeans]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-addon-wizard.odt OpenOffice.org Plugin for NetBeans: Add-On Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-calc-addin-wizard.odt OpenOffice.org Plugin for NetBeans: Add-In Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-component-wizard.odt OpenOffice.org Plugin for NetBeans: Component Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-debug-component.odt OpenOffice.org Plugin for NetBeans: Debug Feature]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-new-idl-type.odt OpenOffice.org Plugin for NetBeans: IDL type support]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-description-xml.odt OpenOffice.org Plugin for NetBeans: Support description.xml]&lt;br /&gt;
&lt;br /&gt;
= Working with the plugin =&lt;br /&gt;
The following section describes how you can work with the plugin and describes the requirements because the plugin  make use of some external stuff provided by an office and the OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The plugin works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK). The minimal suggested version is OpenOffice.org 2.0.4. With earlier versions, some features of the plugin will not work.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org OpenOffice.org]&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;[http://www.sun.com/staroffice StarOffice 8]&amp;#039;&amp;#039;&amp;#039; or higher versions of both programs&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK)]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Note that the versions of OpenOffice.org and the OpenOffice.org SDK must match for everything to work.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
* As default settings, a standard installation will be found by the plugin - but only if OpenOffice.org together with the SDK are present.&lt;br /&gt;
* When you choose the OpenOffice.org installation and an appropriate SDK is found, that SDK is chosen, the &amp;amp;quot;OpenOffice.org SDK Installation&amp;amp;quot; field is then disabled.&lt;br /&gt;
* If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for projects created from now on only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For changing the office and SDK installation please choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API plugin&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
and select a valid OpenOffice.org and OpenOffice.org SDK installation. &lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]&amp;lt;br&amp;gt;&lt;br /&gt;
The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.&lt;br /&gt;
&lt;br /&gt;
Note: on Debian/Ubuntu, the OpenOffice.org installation directory is &amp;lt;code&amp;gt;/usr/lib/openoffice/&amp;lt;/code&amp;gt;. For other *nix platforms the location may vary, but you can find the location by inspecting the shell script &amp;lt;code&amp;gt;/usr/bin/ooffice&amp;lt;/code&amp;gt; to see where the &amp;lt;code&amp;gt;ooqstart&amp;lt;/code&amp;gt; executable is in your installation.&lt;br /&gt;
&lt;br /&gt;
== Working with new Project Types ==&lt;br /&gt;
The plugin integrates four new project types under the category &amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Add-On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Calc Add-Ins&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Client Application&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Component&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The wizards will collect the necessary information to create the new projects and should follow the NetBeans philosophy. You can simply choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;File -&amp;gt; New Project -&amp;gt; OpenOffice.org -&amp;gt; &amp;lt;project_type&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
For more details about the project types please take a look at&lt;br /&gt;
*[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org UNO Client Application Project Type]]&lt;br /&gt;
*[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&lt;br /&gt;
*[[General_UNO_Component_Project_Type|OpenOffice.org Component Project Type]]&lt;br /&gt;
*[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&lt;br /&gt;
&lt;br /&gt;
== Migrate Projects ==&lt;br /&gt;
To migrate projects from an older version of the plugin to a new one is not necessary - the plugin itself will take care of that: build-uno-impl.xml and the project-uno.properties are updated, when updated versions of these files are needed for new features of the updated plugin. Note that build-uno-impl.xml will be overwritten, but project-uno.properties not. In the properties file, only new entries are added, existing ones are kept as they are. The update of the files happens when an old project is opened with a new version of the plugin and for all opened projects when the new plugin is downloaded and installed.&lt;br /&gt;
&lt;br /&gt;
When migrating from one Office version to another (or porting a project across platforms), only a library has to be changed, called &amp;amp;quot;OpenOffice.org &amp;lt;version_number&amp;gt;&amp;amp;quot; (or &amp;amp;quot;StarOffice &amp;lt;version_number&amp;gt;&amp;amp;quot;). Choose &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Libraries&amp;#039;&amp;#039;&amp;#039; to get an overview of the existing libraries. A library is created when a valid OpenOffice.org and OpenOffice.org SDK is selected in &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API Plugin&amp;#039;&amp;#039;&amp;#039; (See [[OpenOffice_NetBeans_Integration#Configuration|Configuration]] for more details).&lt;br /&gt;
* To change the library, click right on the project in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window and open the properties. Select &amp;#039;&amp;#039;&amp;#039;Libraries&amp;#039;&amp;#039;&amp;#039; as category and remove the one that points to the old installation and add the new one.&lt;br /&gt;
* When porting the project across platforms, NetBeans notifies that a reference problem exists. The steps for changing the libraries also help in this case.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Missing Features ==&lt;br /&gt;
&lt;br /&gt;
* Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.&lt;br /&gt;
* &amp;amp;quot;Red Dot Problem&amp;amp;quot;: When you have created a project that supports own idl files (e.g. a Clac AddIn), a &amp;amp;quot;clean&amp;amp;quot; on the project will produce &amp;amp;quot;red dots&amp;amp;quot; that show that imported functionality is missing. The cause for this is the deleted jar file with the idl types that are used in your project. Although this does not seem to be the case, a compile will work and solve the problem. Sometimes the signs appear when &amp;amp;quot;clean and build&amp;amp;quot; is chosen - here the compiled idl files exist, but NetBeans does not recognize that. Open the offending Java file to solve that. Solution: compile idl files in the background and produce a &amp;amp;quot;shadow&amp;amp;quot; jar file in a temp directory that can be used even if the &amp;amp;quot;official&amp;amp;quot; file in the &amp;lt;project_name&amp;gt;/dist folder is deleted.&lt;br /&gt;
* With NetBeans versions at least 6.1 there is an update problem regarding NetBeans property sheets and node views: property sheet changes are not reflected in the node view. Seems like the notify mechanism for these updates has changed.&lt;br /&gt;
&lt;br /&gt;
= Releases =&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=5 cellspacing=0 border=1 style=&amp;quot;border-collapse:collapse; margin-left: 3em; border-color: #333;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #DEDEDE;&amp;quot;&lt;br /&gt;
| Release Version || Planned Release Date || Release Date || Planned Features&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.0 || 05/08/07 || 05/08/07 || -&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1 || 09/01/07 || 09/18/07 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1| see 1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.1 || 03/08 || 03/20/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.2 || 04/08 || 04/30/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.2]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.3 || 06/30/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.3]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0 || 09/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_2.0| see 2.0]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.3 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.4 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.5 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.6 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.7.alpha || - || - || changes to support NetBeans 6.9, opnly available in the file section of the API project, [http://api.openoffice.org/files/documents/22/4772/org-openoffice-extensions-2.0.7.alpha.nbm org-openoffice-extensions-2.0.7.alpha.nbm]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;Detailed download statistics can be found [[OpenOffice_NetBeans_Integration/Releases/Download_Statistic| here]] (not up-to-date)&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Releases/Release_1.2#Current_issues_concerning_NetBeans_6|Issues]] for using the plugin with NetBeans 6.&lt;br /&gt;
&lt;br /&gt;
= Planned Features =&lt;br /&gt;
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.&lt;br /&gt;
&lt;br /&gt;
== New Project Types ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_SmartTag_Project_Type|OpenOffice.org SmartTag Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will simplify the development of SmartTags for the OpenOffice.org Writer application.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type should create a &amp;#039;&amp;#039;Library Wrapper Module&amp;#039;&amp;#039; to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.&lt;br /&gt;
&lt;br /&gt;
== Common Features ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Editor for xcu files&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.&lt;br /&gt;
&lt;br /&gt;
= Quality Assurance =&lt;br /&gt;
&lt;br /&gt;
If you find bugs please submit a new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=DEFECT issue] in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration_QA|Schedule for OpenOffice.org NetBeans Integration QA ]]&lt;br /&gt;
&lt;br /&gt;
= Localization =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Localization|Localization Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Things to be done =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/To-Dos|ToDo list]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
We will continuously extend and improve the plugin in the future and your feedback is welcome and highly appreciated. We would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).&lt;br /&gt;
&lt;br /&gt;
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NetBeans]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Effort]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235499</id>
		<title>OpenOffice NetBeans Integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235499"/>
		<updated>2014-08-04T20:26:06Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:OOo-Netbeans-Plugin.png|right]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).&lt;br /&gt;
&lt;br /&gt;
= Download and Installation =&lt;br /&gt;
&lt;br /&gt;
== Netbeans 6.x (obsolete) and OpenOffice 3.x==&lt;br /&gt;
The plugin appears automatically in Netbeans 6.5.x, 6.7.x, 6.8 (version 2.0.6) but is not listed for later versions.&lt;br /&gt;
&lt;br /&gt;
== NetBeans 7.x and Apache OpenOffice 4.0.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~cmarcum/devtools/ http://people.apache.org/~cmarcum/devtools/] provided by Carl Marcum. Use 3.x versions for extension development for OpenOffice.org versions 3.0 thru 3.4. Use the latest 4.0.5 alpha version for extension development for Apache OpenOffice 4.x. This version is under active development and will be made available in the NetBeans plugin manager list when finished. Until then, remember that it is an &amp;#039;&amp;#039;&amp;#039;Beta&amp;#039;&amp;#039;&amp;#039; version.&lt;br /&gt;
&lt;br /&gt;
The configuration is self explanatory, for detailed information see [[OpenOffice_NetBeans_Integration#Configuration|Configuration]]. &lt;br /&gt;
&lt;br /&gt;
== NetBeans 8.0 and Apache OpenOffice 4.1.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm] developed by Jürgen Schmidt.&lt;br /&gt;
&lt;br /&gt;
See the mail message concerning this version: [http://markmail.org/message/7kr7b3gs2baqxdsw &lt;br /&gt;
http://markmail.org/message/7kr7b3gs2baqxdsw]&lt;br /&gt;
&lt;br /&gt;
== From source ==&lt;br /&gt;
The source is available in the Apache OpenOffice.org source SVN repository in the &amp;#039;&amp;#039;&amp;#039;devtools&amp;#039;&amp;#039;&amp;#039; tree. The trunk is under development and the tagged 3.0.0.beta will build and run.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The NetBeans-plugin for 4.1.0 is beta and you need to compile by hand. It doesn&amp;#039;t support C++ development for now.&lt;br /&gt;
* Install NetBeans from https://netbeans.org/downloads/ take &amp;quot;Java SE&amp;quot; or &amp;quot;All&amp;quot; Package&lt;br /&gt;
* Under NetBeans create a new SVN (anonymous) repository to https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/ and checkout&lt;br /&gt;
* Create a NBM from the project you get from SVN. On errors install the needed plugins like junit.&lt;br /&gt;
* Install the NBM, now you find the OpenOffice Project under &amp;quot;New Project...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
Overview of the features included in the current plugin.&lt;br /&gt;
== Project Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New Project...&amp;amp;quot; and choose category &amp;amp;quot;OpenOffice.org&amp;amp;quot; to open a new project. All project types create working code. Once the project wizard is finished, a working&lt;br /&gt;
compilable project is created. It may not do anything, but it can be used&lt;br /&gt;
in OpenOffice.org from the beginning.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE client application project with additional support of the &lt;br /&gt;
simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client &lt;br /&gt;
application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an office extension package. The wizard collects the necessary information for new &lt;br /&gt;
Calc built-in functions and abstracts from the underlying UNO technology.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[General_UNO_Component_Project_Type|General UNO Component Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a&lt;br /&gt;
UNO component library and an OpenOffice.org extension package. The wizard collects information about services &lt;br /&gt;
and additional optional interfaces which should be implemented. Additional IDL types can also be&lt;br /&gt;
defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an OpenOffice.org extension package. The wizard collects the necessary information for an &lt;br /&gt;
OpenOffice.org Add-On component and generates an Add-On specific code skeleton.&lt;br /&gt;
&lt;br /&gt;
== File Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New File...&amp;amp;quot; and select &amp;amp;quot;OpenOffice.org&amp;amp;quot; as category to create a new file for an OpenOffice.org project. Note, that the OpenOffice.org category is available in all projects, although it only makes sense to use it in one of the projects stated above.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcu file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcu file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcs file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcs file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UNO idl file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
You can use a file type wizard to create idl files. In the first step, you must select the name location&lt;br /&gt;
and UNO type (e.g. Service or Interface). You can add additional &lt;br /&gt;
information in the second step. When an interface is created, the second step asks about&lt;br /&gt;
the functions that the interface should contain. A complete working idl file is created, and NetBeans provides syntax highlighting. When you choose&lt;br /&gt;
to also create an implementation object (only available for service or interface), a Java skeleton file implementing&lt;br /&gt;
your new idl file will also be created.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Java UNO Object file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This file wizard creates a Java skeleton file that implements all functions defined in an interface or service idl file. If you choose a service, the Java implementation file will also be &lt;br /&gt;
registered in OpenOffice.org when your extension is deployed.&lt;br /&gt;
&lt;br /&gt;
== Create, deploy and debug ==&lt;br /&gt;
These are actions that are available in the context menu of an extension project in the &amp;amp;quot;Project&amp;amp;quot; &lt;br /&gt;
view.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Debug Extension in Target OpenOffice.org&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation. To trigger the registered extension, an appropriate action must be done in OpenOffice.org.&lt;br /&gt;
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Deploy and Run OpenOffice.org Extension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org. Then OpenOffice.org is started.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Create OXT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images. The OXT file is located in the &amp;amp;quot;dist&amp;amp;quot; directory of the project.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Publish Extension on OpenOffice.org Website&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The starting page for uploading and publishing your extension on api.services.openoffice.org is loaded in your default web browser.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;External Jars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension&amp;#039;s classpath. A registered extension in OpenOffice.org can still use the functionality provided there.&lt;br /&gt;
The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
Find here links to the specifications of the plugin on the api.openoffice.org page.&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration.odt OpenOffice.org Plugin for NetBeans]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-addon-wizard.odt OpenOffice.org Plugin for NetBeans: Add-On Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-calc-addin-wizard.odt OpenOffice.org Plugin for NetBeans: Add-In Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-component-wizard.odt OpenOffice.org Plugin for NetBeans: Component Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-debug-component.odt OpenOffice.org Plugin for NetBeans: Debug Feature]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-new-idl-type.odt OpenOffice.org Plugin for NetBeans: IDL type support]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-description-xml.odt OpenOffice.org Plugin for NetBeans: Support description.xml]&lt;br /&gt;
&lt;br /&gt;
= Working with the plugin =&lt;br /&gt;
The following section describes how you can work with the plugin and describes the requirements because the plugin  make use of some external stuff provided by an office and the OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The plugin works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK). The minimal suggested version is OpenOffice.org 2.0.4. With earlier versions, some features of the plugin will not work.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org OpenOffice.org]&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;[http://www.sun.com/staroffice StarOffice 8]&amp;#039;&amp;#039;&amp;#039; or higher versions of both programs&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK)]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Note that the versions of OpenOffice.org and the OpenOffice.org SDK must match for everything to work.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
* As default settings, a standard installation will be found by the plugin - but only if OpenOffice.org together with the SDK are present.&lt;br /&gt;
* When you choose the OpenOffice.org installation and an appropriate SDK is found, that SDK is chosen, the &amp;amp;quot;OpenOffice.org SDK Installation&amp;amp;quot; field is then disabled.&lt;br /&gt;
* If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for projects created from now on only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For changing the office and SDK installation please choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API plugin&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
and select a valid OpenOffice.org and OpenOffice.org SDK installation. &lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]&amp;lt;br&amp;gt;&lt;br /&gt;
The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.&lt;br /&gt;
&lt;br /&gt;
Note: on Debian/Ubuntu, the OpenOffice.org installation directory is &amp;lt;code&amp;gt;/usr/lib/openoffice/&amp;lt;/code&amp;gt;. For other *nix platforms the location may vary, but you can find the location by inspecting the shell script &amp;lt;code&amp;gt;/usr/bin/ooffice&amp;lt;/code&amp;gt; to see where the &amp;lt;code&amp;gt;ooqstart&amp;lt;/code&amp;gt; executable is in your installation.&lt;br /&gt;
&lt;br /&gt;
== Working with new Project Types ==&lt;br /&gt;
The plugin integrates four new project types under the category &amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Add-On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Calc Add-Ins&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Client Application&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Component&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The wizards will collect the necessary information to create the new projects and should follow the NetBeans philosophy. You can simply choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;File -&amp;gt; New Project -&amp;gt; OpenOffice.org -&amp;gt; &amp;lt;project_type&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
For more details about the project types please take a look at&lt;br /&gt;
*[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org UNO Client Application Project Type]]&lt;br /&gt;
*[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&lt;br /&gt;
*[[General_UNO_Component_Project_Type|OpenOffice.org Component Project Type]]&lt;br /&gt;
*[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&lt;br /&gt;
&lt;br /&gt;
== Migrate Projects ==&lt;br /&gt;
To migrate projects from an older version of the plugin to a new one is not necessary - the plugin itself will take care of that: build-uno-impl.xml and the project-uno.properties are updated, when updated versions of these files are needed for new features of the updated plugin. Note that build-uno-impl.xml will be overwritten, but project-uno.properties not. In the properties file, only new entries are added, existing ones are kept as they are. The update of the files happens when an old project is opened with a new version of the plugin and for all opened projects when the new plugin is downloaded and installed.&lt;br /&gt;
&lt;br /&gt;
When migrating from one Office version to another (or porting a project across platforms), only a library has to be changed, called &amp;amp;quot;OpenOffice.org &amp;lt;version_number&amp;gt;&amp;amp;quot; (or &amp;amp;quot;StarOffice &amp;lt;version_number&amp;gt;&amp;amp;quot;). Choose &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Libraries&amp;#039;&amp;#039;&amp;#039; to get an overview of the existing libraries. A library is created when a valid OpenOffice.org and OpenOffice.org SDK is selected in &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API Plugin&amp;#039;&amp;#039;&amp;#039; (See [[OpenOffice_NetBeans_Integration#Configuration|Configuration]] for more details).&lt;br /&gt;
* To change the library, click right on the project in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window and open the properties. Select &amp;#039;&amp;#039;&amp;#039;Libraries&amp;#039;&amp;#039;&amp;#039; as category and remove the one that points to the old installation and add the new one.&lt;br /&gt;
* When porting the project across platforms, NetBeans notifies that a reference problem exists. The steps for changing the libraries also help in this case.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Missing Features ==&lt;br /&gt;
&lt;br /&gt;
* Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.&lt;br /&gt;
* &amp;amp;quot;Red Dot Problem&amp;amp;quot;: When you have created a project that supports own idl files (e.g. a Clac AddIn), a &amp;amp;quot;clean&amp;amp;quot; on the project will produce &amp;amp;quot;red dots&amp;amp;quot; that show that imported functionality is missing. The cause for this is the deleted jar file with the idl types that are used in your project. Although this does not seem to be the case, a compile will work and solve the problem. Sometimes the signs appear when &amp;amp;quot;clean and build&amp;amp;quot; is chosen - here the compiled idl files exist, but NetBeans does not recognize that. Open the offending Java file to solve that. Solution: compile idl files in the background and produce a &amp;amp;quot;shadow&amp;amp;quot; jar file in a temp directory that can be used even if the &amp;amp;quot;official&amp;amp;quot; file in the &amp;lt;project_name&amp;gt;/dist folder is deleted.&lt;br /&gt;
* With NetBeans versions at least 6.1 there is an update problem regarding NetBeans property sheets and node views: property sheet changes are not reflected in the node view. Seems like the notify mechanism for these updates has changed.&lt;br /&gt;
&lt;br /&gt;
= Releases =&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=5 cellspacing=0 border=1 style=&amp;quot;border-collapse:collapse; margin-left: 3em; border-color: #333;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #DEDEDE;&amp;quot;&lt;br /&gt;
| Release Version || Planned Release Date || Release Date || Planned Features&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.0 || 05/08/07 || 05/08/07 || -&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1 || 09/01/07 || 09/18/07 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1| see 1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.1 || 03/08 || 03/20/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.2 || 04/08 || 04/30/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.2]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.3 || 06/30/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.3]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0 || 09/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_2.0| see 2.0]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.3 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.4 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.5 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.6 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.7.alpha || - || - || changes to support NetBeans 6.9, opnly available in the file section of the API project, [http://api.openoffice.org/files/documents/22/4772/org-openoffice-extensions-2.0.7.alpha.nbm org-openoffice-extensions-2.0.7.alpha.nbm]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;Detailed download statistics can be found [[OpenOffice_NetBeans_Integration/Releases/Download_Statistic| here]] (not up-to-date)&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Releases/Release_1.2#Current_issues_concerning_NetBeans_6|Issues]] for using the plugin with NetBeans 6.&lt;br /&gt;
&lt;br /&gt;
= Planned Features =&lt;br /&gt;
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.&lt;br /&gt;
&lt;br /&gt;
== New Project Types ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_SmartTag_Project_Type|OpenOffice.org SmartTag Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will simplify the development of SmartTags for the OpenOffice.org Writer application.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type should create a &amp;#039;&amp;#039;Library Wrapper Module&amp;#039;&amp;#039; to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.&lt;br /&gt;
&lt;br /&gt;
== Common Features ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Editor for xcu files&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.&lt;br /&gt;
&lt;br /&gt;
= Quality Assurance =&lt;br /&gt;
&lt;br /&gt;
If you find bugs please submit a new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=DEFECT issue] in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration_QA|Schedule for OpenOffice.org NetBeans Integration QA ]]&lt;br /&gt;
&lt;br /&gt;
= Localization =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Localization|Localization Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Things to be done =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/To-Dos|ToDo list]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
We will continuously extend and improve the plugin in the future and your feedback is welcome and highly appreciated. We would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).&lt;br /&gt;
&lt;br /&gt;
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NetBeans]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Effort]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235498</id>
		<title>OpenOffice NetBeans Integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235498"/>
		<updated>2014-08-04T20:23:14Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:OOo-Netbeans-Plugin.png|right]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).&lt;br /&gt;
&lt;br /&gt;
= Download and Installation =&lt;br /&gt;
&lt;br /&gt;
== Netbeans 6.x (obsolete) and OpenOffice 3.x==&lt;br /&gt;
The plugin appears automatically in Netbeans 6.5.x, 6.7.x, 6.8 (version 2.0.6) but is not listed for later versions.&lt;br /&gt;
&lt;br /&gt;
== NetBeans 7.x and Apache OpenOffice 4.0.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~cmarcum/devtools/ http://people.apache.org/~cmarcum/devtools/] provided by Carl Marcum. Use 3.x versions for extension development for OpenOffice.org versions 3.0 thru 3.4. Use the latest 4.0.5 alpha version for extension development for Apache OpenOffice 4.x. This version is under active development and will be made available in the NetBeans plugin manager list when finished. Until then, remember that it is an &amp;#039;&amp;#039;&amp;#039;Beta&amp;#039;&amp;#039;&amp;#039; version.&lt;br /&gt;
&lt;br /&gt;
The configuration is self explanatory, for detailed information see [[OpenOffice_NetBeans_Integration#Configuration|Configuration]]. &lt;br /&gt;
&lt;br /&gt;
== NetBeans 8.0 and Apache OpenOffice 4.1.x ==&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm http://people.apache.org/~jsc/aoo_plugin/org-openoffice-extensions-4.0.6.nbm].&lt;br /&gt;
&lt;br /&gt;
The source is available in the Apache OpenOffice.org source SVN repository in the &amp;#039;&amp;#039;&amp;#039;devtools&amp;#039;&amp;#039;&amp;#039; tree. The trunk is under development and the tagged 3.0.0.beta will build and run.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== From source ==&lt;br /&gt;
The NetBeans-plugin for 4.1.0 is beta and you need to compile by hand. It doesn&amp;#039;t support C++ development for now.&lt;br /&gt;
* Install NetBeans from https://netbeans.org/downloads/ take &amp;quot;Java SE&amp;quot; or &amp;quot;All&amp;quot; Package&lt;br /&gt;
* Under NetBeans create a new SVN (anonymous) repository to https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/ and checkout&lt;br /&gt;
* Create a NBM from the project you get from SVN. On errors install the needed plugins like junit.&lt;br /&gt;
* Install the NBM, now you find the OpenOffice Project under &amp;quot;New Project...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
Overview of the features included in the current plugin.&lt;br /&gt;
== Project Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New Project...&amp;amp;quot; and choose category &amp;amp;quot;OpenOffice.org&amp;amp;quot; to open a new project. All project types create working code. Once the project wizard is finished, a working&lt;br /&gt;
compilable project is created. It may not do anything, but it can be used&lt;br /&gt;
in OpenOffice.org from the beginning.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE client application project with additional support of the &lt;br /&gt;
simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client &lt;br /&gt;
application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an office extension package. The wizard collects the necessary information for new &lt;br /&gt;
Calc built-in functions and abstracts from the underlying UNO technology.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[General_UNO_Component_Project_Type|General UNO Component Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a&lt;br /&gt;
UNO component library and an OpenOffice.org extension package. The wizard collects information about services &lt;br /&gt;
and additional optional interfaces which should be implemented. Additional IDL types can also be&lt;br /&gt;
defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an OpenOffice.org extension package. The wizard collects the necessary information for an &lt;br /&gt;
OpenOffice.org Add-On component and generates an Add-On specific code skeleton.&lt;br /&gt;
&lt;br /&gt;
== File Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New File...&amp;amp;quot; and select &amp;amp;quot;OpenOffice.org&amp;amp;quot; as category to create a new file for an OpenOffice.org project. Note, that the OpenOffice.org category is available in all projects, although it only makes sense to use it in one of the projects stated above.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcu file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcu file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcs file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcs file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UNO idl file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
You can use a file type wizard to create idl files. In the first step, you must select the name location&lt;br /&gt;
and UNO type (e.g. Service or Interface). You can add additional &lt;br /&gt;
information in the second step. When an interface is created, the second step asks about&lt;br /&gt;
the functions that the interface should contain. A complete working idl file is created, and NetBeans provides syntax highlighting. When you choose&lt;br /&gt;
to also create an implementation object (only available for service or interface), a Java skeleton file implementing&lt;br /&gt;
your new idl file will also be created.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Java UNO Object file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This file wizard creates a Java skeleton file that implements all functions defined in an interface or service idl file. If you choose a service, the Java implementation file will also be &lt;br /&gt;
registered in OpenOffice.org when your extension is deployed.&lt;br /&gt;
&lt;br /&gt;
== Create, deploy and debug ==&lt;br /&gt;
These are actions that are available in the context menu of an extension project in the &amp;amp;quot;Project&amp;amp;quot; &lt;br /&gt;
view.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Debug Extension in Target OpenOffice.org&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation. To trigger the registered extension, an appropriate action must be done in OpenOffice.org.&lt;br /&gt;
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Deploy and Run OpenOffice.org Extension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org. Then OpenOffice.org is started.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Create OXT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images. The OXT file is located in the &amp;amp;quot;dist&amp;amp;quot; directory of the project.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Publish Extension on OpenOffice.org Website&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The starting page for uploading and publishing your extension on api.services.openoffice.org is loaded in your default web browser.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;External Jars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension&amp;#039;s classpath. A registered extension in OpenOffice.org can still use the functionality provided there.&lt;br /&gt;
The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
Find here links to the specifications of the plugin on the api.openoffice.org page.&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration.odt OpenOffice.org Plugin for NetBeans]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-addon-wizard.odt OpenOffice.org Plugin for NetBeans: Add-On Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-calc-addin-wizard.odt OpenOffice.org Plugin for NetBeans: Add-In Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-component-wizard.odt OpenOffice.org Plugin for NetBeans: Component Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-debug-component.odt OpenOffice.org Plugin for NetBeans: Debug Feature]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-new-idl-type.odt OpenOffice.org Plugin for NetBeans: IDL type support]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-description-xml.odt OpenOffice.org Plugin for NetBeans: Support description.xml]&lt;br /&gt;
&lt;br /&gt;
= Working with the plugin =&lt;br /&gt;
The following section describes how you can work with the plugin and describes the requirements because the plugin  make use of some external stuff provided by an office and the OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The plugin works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK). The minimal suggested version is OpenOffice.org 2.0.4. With earlier versions, some features of the plugin will not work.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org OpenOffice.org]&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;[http://www.sun.com/staroffice StarOffice 8]&amp;#039;&amp;#039;&amp;#039; or higher versions of both programs&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK)]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Note that the versions of OpenOffice.org and the OpenOffice.org SDK must match for everything to work.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
* As default settings, a standard installation will be found by the plugin - but only if OpenOffice.org together with the SDK are present.&lt;br /&gt;
* When you choose the OpenOffice.org installation and an appropriate SDK is found, that SDK is chosen, the &amp;amp;quot;OpenOffice.org SDK Installation&amp;amp;quot; field is then disabled.&lt;br /&gt;
* If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for projects created from now on only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For changing the office and SDK installation please choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API plugin&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
and select a valid OpenOffice.org and OpenOffice.org SDK installation. &lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]&amp;lt;br&amp;gt;&lt;br /&gt;
The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.&lt;br /&gt;
&lt;br /&gt;
Note: on Debian/Ubuntu, the OpenOffice.org installation directory is &amp;lt;code&amp;gt;/usr/lib/openoffice/&amp;lt;/code&amp;gt;. For other *nix platforms the location may vary, but you can find the location by inspecting the shell script &amp;lt;code&amp;gt;/usr/bin/ooffice&amp;lt;/code&amp;gt; to see where the &amp;lt;code&amp;gt;ooqstart&amp;lt;/code&amp;gt; executable is in your installation.&lt;br /&gt;
&lt;br /&gt;
== Working with new Project Types ==&lt;br /&gt;
The plugin integrates four new project types under the category &amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Add-On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Calc Add-Ins&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Client Application&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Component&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The wizards will collect the necessary information to create the new projects and should follow the NetBeans philosophy. You can simply choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;File -&amp;gt; New Project -&amp;gt; OpenOffice.org -&amp;gt; &amp;lt;project_type&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
For more details about the project types please take a look at&lt;br /&gt;
*[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org UNO Client Application Project Type]]&lt;br /&gt;
*[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&lt;br /&gt;
*[[General_UNO_Component_Project_Type|OpenOffice.org Component Project Type]]&lt;br /&gt;
*[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&lt;br /&gt;
&lt;br /&gt;
== Migrate Projects ==&lt;br /&gt;
To migrate projects from an older version of the plugin to a new one is not necessary - the plugin itself will take care of that: build-uno-impl.xml and the project-uno.properties are updated, when updated versions of these files are needed for new features of the updated plugin. Note that build-uno-impl.xml will be overwritten, but project-uno.properties not. In the properties file, only new entries are added, existing ones are kept as they are. The update of the files happens when an old project is opened with a new version of the plugin and for all opened projects when the new plugin is downloaded and installed.&lt;br /&gt;
&lt;br /&gt;
When migrating from one Office version to another (or porting a project across platforms), only a library has to be changed, called &amp;amp;quot;OpenOffice.org &amp;lt;version_number&amp;gt;&amp;amp;quot; (or &amp;amp;quot;StarOffice &amp;lt;version_number&amp;gt;&amp;amp;quot;). Choose &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Libraries&amp;#039;&amp;#039;&amp;#039; to get an overview of the existing libraries. A library is created when a valid OpenOffice.org and OpenOffice.org SDK is selected in &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API Plugin&amp;#039;&amp;#039;&amp;#039; (See [[OpenOffice_NetBeans_Integration#Configuration|Configuration]] for more details).&lt;br /&gt;
* To change the library, click right on the project in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window and open the properties. Select &amp;#039;&amp;#039;&amp;#039;Libraries&amp;#039;&amp;#039;&amp;#039; as category and remove the one that points to the old installation and add the new one.&lt;br /&gt;
* When porting the project across platforms, NetBeans notifies that a reference problem exists. The steps for changing the libraries also help in this case.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Missing Features ==&lt;br /&gt;
&lt;br /&gt;
* Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.&lt;br /&gt;
* &amp;amp;quot;Red Dot Problem&amp;amp;quot;: When you have created a project that supports own idl files (e.g. a Clac AddIn), a &amp;amp;quot;clean&amp;amp;quot; on the project will produce &amp;amp;quot;red dots&amp;amp;quot; that show that imported functionality is missing. The cause for this is the deleted jar file with the idl types that are used in your project. Although this does not seem to be the case, a compile will work and solve the problem. Sometimes the signs appear when &amp;amp;quot;clean and build&amp;amp;quot; is chosen - here the compiled idl files exist, but NetBeans does not recognize that. Open the offending Java file to solve that. Solution: compile idl files in the background and produce a &amp;amp;quot;shadow&amp;amp;quot; jar file in a temp directory that can be used even if the &amp;amp;quot;official&amp;amp;quot; file in the &amp;lt;project_name&amp;gt;/dist folder is deleted.&lt;br /&gt;
* With NetBeans versions at least 6.1 there is an update problem regarding NetBeans property sheets and node views: property sheet changes are not reflected in the node view. Seems like the notify mechanism for these updates has changed.&lt;br /&gt;
&lt;br /&gt;
= Releases =&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=5 cellspacing=0 border=1 style=&amp;quot;border-collapse:collapse; margin-left: 3em; border-color: #333;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #DEDEDE;&amp;quot;&lt;br /&gt;
| Release Version || Planned Release Date || Release Date || Planned Features&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.0 || 05/08/07 || 05/08/07 || -&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1 || 09/01/07 || 09/18/07 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1| see 1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.1 || 03/08 || 03/20/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.2 || 04/08 || 04/30/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.2]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.3 || 06/30/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.3]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0 || 09/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_2.0| see 2.0]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.3 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.4 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.5 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.6 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.7.alpha || - || - || changes to support NetBeans 6.9, opnly available in the file section of the API project, [http://api.openoffice.org/files/documents/22/4772/org-openoffice-extensions-2.0.7.alpha.nbm org-openoffice-extensions-2.0.7.alpha.nbm]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;Detailed download statistics can be found [[OpenOffice_NetBeans_Integration/Releases/Download_Statistic| here]] (not up-to-date)&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Releases/Release_1.2#Current_issues_concerning_NetBeans_6|Issues]] for using the plugin with NetBeans 6.&lt;br /&gt;
&lt;br /&gt;
= Planned Features =&lt;br /&gt;
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.&lt;br /&gt;
&lt;br /&gt;
== New Project Types ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_SmartTag_Project_Type|OpenOffice.org SmartTag Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will simplify the development of SmartTags for the OpenOffice.org Writer application.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type should create a &amp;#039;&amp;#039;Library Wrapper Module&amp;#039;&amp;#039; to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.&lt;br /&gt;
&lt;br /&gt;
== Common Features ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Editor for xcu files&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.&lt;br /&gt;
&lt;br /&gt;
= Quality Assurance =&lt;br /&gt;
&lt;br /&gt;
If you find bugs please submit a new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=DEFECT issue] in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration_QA|Schedule for OpenOffice.org NetBeans Integration QA ]]&lt;br /&gt;
&lt;br /&gt;
= Localization =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Localization|Localization Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Things to be done =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/To-Dos|ToDo list]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
We will continuously extend and improve the plugin in the future and your feedback is welcome and highly appreciated. We would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).&lt;br /&gt;
&lt;br /&gt;
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NetBeans]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Effort]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235497</id>
		<title>OpenOffice NetBeans Integration</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=OpenOffice_NetBeans_Integration&amp;diff=235497"/>
		<updated>2014-08-04T20:03:14Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[image:OOo-Netbeans-Plugin.png|right]]&lt;br /&gt;
= Overview =&lt;br /&gt;
The OpenOffice.org API plugin for NetBeans simplifies the development of OpenOffice.org extensions. You can use the OpenOffice.org API to program OpenOffice.org, and automate remote or in process tasks extend OpenOffice.org with completely new functionality. The OpenOffice.org API plugin for NetBeans simplifies accessing and using of the API in new projects and simplifies the task of creating complete OpenOffice.org extension packages (comparable to the NetBeans plugin modules).&lt;br /&gt;
&lt;br /&gt;
= Download and Installation =&lt;br /&gt;
The plugin appears automatically in Netbeans 6.5.x, 6.7.x, 6.8 (version 2.0.6) but is not listed for later versions.&lt;br /&gt;
&lt;br /&gt;
The plugin for versions of NetBeans through 7.x is available for download from [http://people.apache.org/~cmarcum/devtools/ http://people.apache.org/~cmarcum/devtools/] provided by Carl Marcum. Use 3.x versions for extension development for OpenOffice.org versions 3.0 thru 3.4. Use the latest 4.0.5 alpha version for extension development for Apache OpenOffice 4.x. This version is under active development and will be made available in the NetBeans plugin manager list when finished. Until then, remember that it is an &amp;#039;&amp;#039;&amp;#039;Beta&amp;#039;&amp;#039;&amp;#039; version.&lt;br /&gt;
&lt;br /&gt;
The configuration is self explanatory, for detailed information see [[OpenOffice_NetBeans_Integration#Configuration|Configuration]]. &lt;br /&gt;
&lt;br /&gt;
The source is available in the Apache OpenOffice.org source SVN repository in the &amp;#039;&amp;#039;&amp;#039;devtools&amp;#039;&amp;#039;&amp;#039; tree. The trunk is under development and the tagged 3.0.0.beta will build and run.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;[https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/trunk]&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== From source ==&lt;br /&gt;
The NetBeans-plugin for 4.1.0 is beta and you need to compile by hand. It doesn&amp;#039;t support C++ development for now.&lt;br /&gt;
* Install NetBeans from https://netbeans.org/downloads/ take &amp;quot;Java SE&amp;quot; or &amp;quot;All&amp;quot; Package&lt;br /&gt;
* Under NetBeans create a new SVN (anonymous) repository to https://svn.apache.org/repos/asf/openoffice/devtools/netbeansintegration/ and checkout&lt;br /&gt;
* Create a NBM from the project you get from SVN. On errors install the needed plugins like junit.&lt;br /&gt;
* Install the NBM, now you find the OpenOffice Project under &amp;quot;New Project...&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Features =&lt;br /&gt;
Overview of the features included in the current plugin.&lt;br /&gt;
== Project Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New Project...&amp;amp;quot; and choose category &amp;amp;quot;OpenOffice.org&amp;amp;quot; to open a new project. All project types create working code. Once the project wizard is finished, a working&lt;br /&gt;
compilable project is created. It may not do anything, but it can be used&lt;br /&gt;
in OpenOffice.org from the beginning.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org Client Application Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE client application project with additional support of the &lt;br /&gt;
simple UNO bootstrap feature. To enable this, some pre-compiled glue code is bundled with the client &lt;br /&gt;
application. The result is a portable jar file that bootstraps OpenOffice.org on any supported OS.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an office extension package. The wizard collects the necessary information for new &lt;br /&gt;
Calc built-in functions and abstracts from the underlying UNO technology.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[General_UNO_Component_Project_Type|General UNO Component Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a&lt;br /&gt;
UNO component library and an OpenOffice.org extension package. The wizard collects information about services &lt;br /&gt;
and additional optional interfaces which should be implemented. Additional IDL types can also be&lt;br /&gt;
defined. A complete code skeleton is generated, with the component helper functions and the default interface methods already implemented.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This project type creates an adapted J2SE class library project with special support for a UNO &lt;br /&gt;
component library and an OpenOffice.org extension package. The wizard collects the necessary information for an &lt;br /&gt;
OpenOffice.org Add-On component and generates an Add-On specific code skeleton.&lt;br /&gt;
&lt;br /&gt;
== File Types ==&lt;br /&gt;
Click on &amp;amp;quot;File&amp;amp;quot; - &amp;amp;quot;New File...&amp;amp;quot; and select &amp;amp;quot;OpenOffice.org&amp;amp;quot; as category to create a new file for an OpenOffice.org project. Note, that the OpenOffice.org category is available in all projects, although it only makes sense to use it in one of the projects stated above.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcu file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcu file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;xcs file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Create an empty xcs file type. The files are recognized in NetBeans and &lt;br /&gt;
syntax highlighting is supported. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;UNO idl file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
You can use a file type wizard to create idl files. In the first step, you must select the name location&lt;br /&gt;
and UNO type (e.g. Service or Interface). You can add additional &lt;br /&gt;
information in the second step. When an interface is created, the second step asks about&lt;br /&gt;
the functions that the interface should contain. A complete working idl file is created, and NetBeans provides syntax highlighting. When you choose&lt;br /&gt;
to also create an implementation object (only available for service or interface), a Java skeleton file implementing&lt;br /&gt;
your new idl file will also be created.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Java UNO Object file type&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
This file wizard creates a Java skeleton file that implements all functions defined in an interface or service idl file. If you choose a service, the Java implementation file will also be &lt;br /&gt;
registered in OpenOffice.org when your extension is deployed.&lt;br /&gt;
&lt;br /&gt;
== Create, deploy and debug ==&lt;br /&gt;
These are actions that are available in the context menu of an extension project in the &amp;amp;quot;Project&amp;amp;quot; &lt;br /&gt;
view.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Debug Extension in Target OpenOffice.org&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered in a temporary user installation of OpenOffice.org, which is located in the build directory of the project. (Cleaning of the project removes the user installation again.) Then OpenOffice.org is started with this user installation. To trigger the registered extension, an appropriate action must be done in OpenOffice.org.&lt;br /&gt;
Execution stops at any breakpoints added to the code of the extension and debugging can start from there.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Deploy and Run OpenOffice.org Extension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, &amp;amp;quot;Create OXT&amp;amp;quot; is executed. The resulting OXT file is registered inside the user installation of OpenOffice.org. Then OpenOffice.org is started.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Create OXT&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
If necessary, your code is compiled. The resulting jar file is packed into an OXT file, together with other necessary files such as configuration files, a manifest file, and images. The OXT file is located in the &amp;amp;quot;dist&amp;amp;quot; directory of the project.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Publish Extension on OpenOffice.org Website&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
The starting page for uploading and publishing your extension on api.services.openoffice.org is loaded in your default web browser.&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;External Jars&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Additional external jars that are used in an extension are automatically copied into the OXT file and added to the extension&amp;#039;s classpath. A registered extension in OpenOffice.org can still use the functionality provided there.&lt;br /&gt;
The jars can be added to the project as a single jar or as part of a NetBeans library. Note: All the jars from a library will be added to the OXT file, independent from their usage in the extension.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
Find here links to the specifications of the plugin on the api.openoffice.org page.&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration.odt OpenOffice.org Plugin for NetBeans]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-addon-wizard.odt OpenOffice.org Plugin for NetBeans: Add-On Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-calc-addin-wizard.odt OpenOffice.org Plugin for NetBeans: Add-In Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-component-wizard.odt OpenOffice.org Plugin for NetBeans: Component Wizard]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-debug-component.odt OpenOffice.org Plugin for NetBeans: Debug Feature]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-new-idl-type.odt OpenOffice.org Plugin for NetBeans: IDL type support]&lt;br /&gt;
&lt;br /&gt;
[http://specs.openoffice.org/sdk/tools/spec_openoffice-netbeans-integration-description-xml.odt OpenOffice.org Plugin for NetBeans: Support description.xml]&lt;br /&gt;
&lt;br /&gt;
= Working with the plugin =&lt;br /&gt;
The following section describes how you can work with the plugin and describes the requirements because the plugin  make use of some external stuff provided by an office and the OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
== Requirements ==&lt;br /&gt;
The plugin works only in combination with OpenOffice.org and an appropriate OpenOffice.org Software Development Kit (SDK). The minimal suggested version is OpenOffice.org 2.0.4. With earlier versions, some features of the plugin will not work.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org OpenOffice.org]&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;[http://www.sun.com/staroffice StarOffice 8]&amp;#039;&amp;#039;&amp;#039; or higher versions of both programs&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[http://download.openoffice.org/sdk.html OpenOffice.org Software Development Kit (SDK)]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Note that the versions of OpenOffice.org and the OpenOffice.org SDK must match for everything to work.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Before you can use the new project types you must configure the plugin because it needs an installed OpenOffice.org and OpenOffice.org SDK.&lt;br /&gt;
&lt;br /&gt;
Note: &lt;br /&gt;
* As default settings, a standard installation will be found by the plugin - but only if OpenOffice.org together with the SDK are present.&lt;br /&gt;
* When you choose the OpenOffice.org installation and an appropriate SDK is found, that SDK is chosen, the &amp;amp;quot;OpenOffice.org SDK Installation&amp;amp;quot; field is then disabled.&lt;br /&gt;
* If you change the OpenOffice.org or OpenOffice.org SDK installation, these changes are effective for projects created from now on only.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For changing the office and SDK installation please choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API plugin&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
and select a valid OpenOffice.org and OpenOffice.org SDK installation. &lt;br /&gt;
&amp;lt;br&amp;gt;[[Image:OpenOffice_Extensions_Plugin_Options.png|center]]&amp;lt;br&amp;gt;&lt;br /&gt;
The configuration step automatically installs a new OpenOffice.org library which can be used in other projects to support the OpenOffice.org API. Including this library in your own projects enables context sensitive help and code completion.&lt;br /&gt;
&lt;br /&gt;
Note: on Debian/Ubuntu, the OpenOffice.org installation directory is &amp;lt;code&amp;gt;/usr/lib/openoffice/&amp;lt;/code&amp;gt;. For other *nix platforms the location may vary, but you can find the location by inspecting the shell script &amp;lt;code&amp;gt;/usr/bin/ooffice&amp;lt;/code&amp;gt; to see where the &amp;lt;code&amp;gt;ooqstart&amp;lt;/code&amp;gt; executable is in your installation.&lt;br /&gt;
&lt;br /&gt;
== Working with new Project Types ==&lt;br /&gt;
The plugin integrates four new project types under the category &amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Add-On&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Calc Add-Ins&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Client Application&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;StarOffice/OpenOffice.org Component&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The wizards will collect the necessary information to create the new projects and should follow the NetBeans philosophy. You can simply choose&lt;br /&gt;
*&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;File -&amp;gt; New Project -&amp;gt; OpenOffice.org -&amp;gt; &amp;lt;project_type&amp;gt;&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&lt;br /&gt;
For more details about the project types please take a look at&lt;br /&gt;
*[[OpenOffice_Simple_UNO_Client_Application_Project_Type|OpenOffice.org UNO Client Application Project Type]]&lt;br /&gt;
*[[OpenOffice_Calc_Add-In_Project_Type|OpenOffice.org Calc Add-In Project Type]]&lt;br /&gt;
*[[General_UNO_Component_Project_Type|OpenOffice.org Component Project Type]]&lt;br /&gt;
*[[OpenOffice_Add-On_Project_Type|OpenOffice.org Add-On Project Type]]&lt;br /&gt;
&lt;br /&gt;
== Migrate Projects ==&lt;br /&gt;
To migrate projects from an older version of the plugin to a new one is not necessary - the plugin itself will take care of that: build-uno-impl.xml and the project-uno.properties are updated, when updated versions of these files are needed for new features of the updated plugin. Note that build-uno-impl.xml will be overwritten, but project-uno.properties not. In the properties file, only new entries are added, existing ones are kept as they are. The update of the files happens when an old project is opened with a new version of the plugin and for all opened projects when the new plugin is downloaded and installed.&lt;br /&gt;
&lt;br /&gt;
When migrating from one Office version to another (or porting a project across platforms), only a library has to be changed, called &amp;amp;quot;OpenOffice.org &amp;lt;version_number&amp;gt;&amp;amp;quot; (or &amp;amp;quot;StarOffice &amp;lt;version_number&amp;gt;&amp;amp;quot;). Choose &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Libraries&amp;#039;&amp;#039;&amp;#039; to get an overview of the existing libraries. A library is created when a valid OpenOffice.org and OpenOffice.org SDK is selected in &amp;#039;&amp;#039;&amp;#039;Tools -&amp;gt; Options -&amp;gt; Miscellaneous -&amp;gt; OOo API Plugin&amp;#039;&amp;#039;&amp;#039; (See [[OpenOffice_NetBeans_Integration#Configuration|Configuration]] for more details).&lt;br /&gt;
* To change the library, click right on the project in the &amp;#039;&amp;#039;&amp;#039;Project&amp;#039;&amp;#039;&amp;#039; window and open the properties. Select &amp;#039;&amp;#039;&amp;#039;Libraries&amp;#039;&amp;#039;&amp;#039; as category and remove the one that points to the old installation and add the new one.&lt;br /&gt;
* When porting the project across platforms, NetBeans notifies that a reference problem exists. The steps for changing the libraries also help in this case.&lt;br /&gt;
&lt;br /&gt;
== Known Problems and Missing Features ==&lt;br /&gt;
&lt;br /&gt;
* Context sensitive help does not work on Linux (Solaris not yet tested), even the javadoc generated Java UNO runtime reference documentation does not work on Linux. Under Windows both work as expected.&lt;br /&gt;
* &amp;amp;quot;Red Dot Problem&amp;amp;quot;: When you have created a project that supports own idl files (e.g. a Clac AddIn), a &amp;amp;quot;clean&amp;amp;quot; on the project will produce &amp;amp;quot;red dots&amp;amp;quot; that show that imported functionality is missing. The cause for this is the deleted jar file with the idl types that are used in your project. Although this does not seem to be the case, a compile will work and solve the problem. Sometimes the signs appear when &amp;amp;quot;clean and build&amp;amp;quot; is chosen - here the compiled idl files exist, but NetBeans does not recognize that. Open the offending Java file to solve that. Solution: compile idl files in the background and produce a &amp;amp;quot;shadow&amp;amp;quot; jar file in a temp directory that can be used even if the &amp;amp;quot;official&amp;amp;quot; file in the &amp;lt;project_name&amp;gt;/dist folder is deleted.&lt;br /&gt;
* With NetBeans versions at least 6.1 there is an update problem regarding NetBeans property sheets and node views: property sheet changes are not reflected in the node view. Seems like the notify mechanism for these updates has changed.&lt;br /&gt;
&lt;br /&gt;
= Releases =&lt;br /&gt;
&lt;br /&gt;
{|cellpadding=5 cellspacing=0 border=1 style=&amp;quot;border-collapse:collapse; margin-left: 3em; border-color: #333;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color: #DEDEDE;&amp;quot;&lt;br /&gt;
| Release Version || Planned Release Date || Release Date || Planned Features&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.0 || 05/08/07 || 05/08/07 || -&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1 || 09/01/07 || 09/18/07 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1| see 1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.1 || 03/08 || 03/20/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.1]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.2 || 04/08 || 04/30/08 || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.2]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 1.1.3 || 06/30/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_1.1.x| see 1.1.3]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0 || 09/08 || - || [[OpenOffice_NetBeans_Integration/Releases/Release_2.0| see 2.0]]&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.3 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.4 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.5 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.6 || - || - || bugfixes only&lt;br /&gt;
|- align=center&lt;br /&gt;
| 2.0.7.alpha || - || - || changes to support NetBeans 6.9, opnly available in the file section of the API project, [http://api.openoffice.org/files/documents/22/4772/org-openoffice-extensions-2.0.7.alpha.nbm org-openoffice-extensions-2.0.7.alpha.nbm]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
: &amp;amp;nbsp;&amp;amp;nbsp;Detailed download statistics can be found [[OpenOffice_NetBeans_Integration/Releases/Download_Statistic| here]] (not up-to-date)&lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Releases/Release_1.2#Current_issues_concerning_NetBeans_6|Issues]] for using the plugin with NetBeans 6.&lt;br /&gt;
&lt;br /&gt;
= Planned Features =&lt;br /&gt;
The focus is on creating new wizards for various tasks plus common basic functionality. The main programming language is Java. Support for C++ is also planned and depends on the C++ support in NetBeans which will be available at least for NetBeans 6.0. The planned feature list is not final and more specialized wizards for other service provider interfaces (SPI) are coming in the future.&lt;br /&gt;
&lt;br /&gt;
== New Project Types ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_Scripting_Project_Type|OpenOffice.org Scripting Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will create an adapted J2SE class library project with special support for OpenOffice.org scripting. It should provide you the possibility to import scripts from OpenOffice.org and open documents, edit, change and build these scripts, debug them and export them back (currently the support is planned for Java scripts only).&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_SmartTag_Project_Type|OpenOffice.org SmartTag Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type will simplify the development of SmartTags for the OpenOffice.org Writer application.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;[[OpenOffice_API_Library_Wrapper_Project_Type|OpenOffice.org API Library API Wrapper Project Type]]&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This new project type should create a &amp;#039;&amp;#039;Library Wrapper Module&amp;#039;&amp;#039; to support simple usage of the OpenOffice.org API in your own projects. It bundles the necessary API jar files from OpenOffice.org in the library and in client applications. This of course is necessary to make use of the OpenOffice.org API in clients running on machines where no OpenOffice.org is installed and where the communication with OpenOffice.org is made over a remote socket connection.&lt;br /&gt;
&lt;br /&gt;
== Common Features ==&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Editor for xcu files&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt;This must be defined in detail but we can think of a special editor for OpenOffice .org configuration files.&lt;br /&gt;
&lt;br /&gt;
= Quality Assurance =&lt;br /&gt;
&lt;br /&gt;
If you find bugs please submit a new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=DEFECT issue] in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration_QA|Schedule for OpenOffice.org NetBeans Integration QA ]]&lt;br /&gt;
&lt;br /&gt;
= Localization =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/Localization|Localization Tutorial]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Things to be done =&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration/To-Dos|ToDo list]]&lt;br /&gt;
&lt;br /&gt;
= Feedback =&lt;br /&gt;
We will continuously extend and improve the plugin in the future and your feedback is welcome and highly appreciated. We would like to invite you to discuss it on [mailto:dev@api.openoffice.org dev@api.openoffice.org] (Note: you have to be subscribed on the mailing list).&lt;br /&gt;
&lt;br /&gt;
You can also submit new [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=FEATURE feature] or [http://api.openoffice.org/issues/enter_bug.cgi?component=sdk&amp;amp;issue_type=ENHANCEMENT enhancement] requests in the issue tracker in the category &amp;#039;&amp;#039;&amp;#039;sdk&amp;#039;&amp;#039;&amp;#039; and the subcomponent &amp;#039;&amp;#039;&amp;#039;netbeans-integration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:NetBeans]]&lt;br /&gt;
[[Category:API]]&lt;br /&gt;
[[Category:Effort]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235466</id>
		<title>Pootle User Guide/Release Localized Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235466"/>
		<updated>2014-07-22T21:57:45Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/MasterTOC&lt;br /&gt;
|booktitle=[[Pootle_User_Guide|Pootle User Guide]]&lt;br /&gt;
|toccontent=*[[Pootle_User_Guide/Registration_and_Login|Registration and Login]]&lt;br /&gt;
*[[Pootle_User_Guide/Online_Pootle_User_Interface|Overview Pootle UI]]&lt;br /&gt;
*[[Pootle_User_Guide/Offline_Translation|Offline Translation]]&lt;br /&gt;
*[[Pootle_User_Guide/Quality_Assurance|Quality Assurance]]&lt;br /&gt;
*[[Pootle_User_Guide/Release_Localized_Build|Releasing a Localized Build]]&lt;br /&gt;
*[[Pootle_User_Guide/Technical_Helpers|Technical Helpers]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_AOO_User_Interface|Translation of the User Interface]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_Built-in_Help|Translation of the Built-in Help]]&lt;br /&gt;
*[[Pootle_User_Guide/General_Problems|General Problems]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Release a Localized Build of Apache OpenOffice}}&lt;br /&gt;
&lt;br /&gt;
We have agreed to release a localized version of Apache OpenOffice, if the UI is 100% translated.&lt;br /&gt;
&lt;br /&gt;
And for long-term maintainability we also recommend that:&lt;br /&gt;
* the UI is translated to 100% and&lt;br /&gt;
* the help is translated to 100% too and&lt;br /&gt;
* there is a small team (even just two members) to maintain the translation and ensure QA.&lt;br /&gt;
 &lt;br /&gt;
When you are ready, write an issue in [https://issues.apache.org/ooo/enter_bug.cgi Bugzilla] in the product &amp;#039;&amp;#039;Native-Language&amp;#039;&amp;#039;. Also write an issue, if you later on make changes to the translation and want them to be integrated into the next release. &lt;br /&gt;
&lt;br /&gt;
Once your issue is filed, there are some additional steps that are needed to integrate Pootle translations into OpenOffice. These are typically done by a developer who can commit changes to the source tree and include:&lt;br /&gt;
* conversion of Pootle files for a language to OpenOffice SDF format (see reference at  [http://translate.sourceforge.net/wiki/toolkit/oo2po http://translate.sourceforge.net/wiki/toolkit/oo2po])&lt;br /&gt;
&lt;br /&gt;
These are basically database files that will reside in /extras/l10n/source under the ISO code for the language.&lt;br /&gt;
&lt;br /&gt;
* Some (new) languages might also provide dictionaries as extensions. In this case, the the extensions.lst file in the source tree under /main will need to be updated.&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Note|If you edit strings in Pootle you need to explicitly ask on the mailing list, for them to be integrated into OpenOffice. Integration is not automatic.}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation/HelpNeeded|Please add information how to verify the technical correctness of the translation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;br /&gt;
&lt;br /&gt;
[[de:DE/Pootle_User_Guide]]&lt;br /&gt;
[[it:IT/Localizzazione/Pootle]]&lt;br /&gt;
[[ja:JA/translation/Pootle_User_Guide]]&lt;br /&gt;
[[ko:KO/Pootle 사용자 가이드]]&lt;br /&gt;
[[nl:NL/Localisatie/Pootle gebruikersgids]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235465</id>
		<title>Pootle User Guide/Release Localized Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235465"/>
		<updated>2014-07-22T21:43:53Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/MasterTOC&lt;br /&gt;
|booktitle=[[Pootle_User_Guide|Pootle User Guide]]&lt;br /&gt;
|toccontent=*[[Pootle_User_Guide/Registration_and_Login|Registration and Login]]&lt;br /&gt;
*[[Pootle_User_Guide/Online_Pootle_User_Interface|Overview Pootle UI]]&lt;br /&gt;
*[[Pootle_User_Guide/Offline_Translation|Offline Translation]]&lt;br /&gt;
*[[Pootle_User_Guide/Quality_Assurance|Quality Assurance]]&lt;br /&gt;
*[[Pootle_User_Guide/Release_Localized_Build|Releasing a Localized Build]]&lt;br /&gt;
*[[Pootle_User_Guide/Technical_Helpers|Technical Helpers]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_AOO_User_Interface|Translation of the User Interface]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_Built-in_Help|Translation of the Built-in Help]]&lt;br /&gt;
*[[Pootle_User_Guide/General_Problems|General Problems]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Release a Localized Build of Apache OpenOffice}}&lt;br /&gt;
&lt;br /&gt;
We have agreed to release a localized version of Apache OpenOffice, if the UI is 100% translated.&lt;br /&gt;
&lt;br /&gt;
And for long-term maintainability we also recommend that:&lt;br /&gt;
* the UI is translated to 100% and&lt;br /&gt;
* the help is translated to 100% too and&lt;br /&gt;
* there is a small team (even just two members) to maintain the translation and ensure QA.&lt;br /&gt;
 &lt;br /&gt;
When you are ready, write an issue in [https://issues.apache.org/ooo/enter_bug.cgi Bugzilla] in the product &amp;#039;&amp;#039;Native-Language&amp;#039;&amp;#039;. Also write an issue, if you later on make changes to the translation and want them to be integrated into the next release. &lt;br /&gt;
&lt;br /&gt;
Once your issue is filed, there are some additional steps that are needed to integrate Pootle translations into OpenOffice. These are typically done by a developer who can commit changes to the source tree and include:&lt;br /&gt;
* conversion of Pootle files for a language to OpenOffice SDF format (see reference at  [http://translate.sourceforge.net/wiki/toolkit/oo2po http://translate.sourceforge.net/wiki/toolkit/oo2po])&lt;br /&gt;
&lt;br /&gt;
These are basically database files that will reside in /extras/l10n/source under the ISO code for the language.&lt;br /&gt;
&lt;br /&gt;
* for new language translations -- updating the extensions.lst file in the source tree under /main&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Note|If you edit strings in Pootle you need to explicitly ask on the mailing list, for them to be integrated into OpenOffice. Integration is not automatic.}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation/HelpNeeded|Please add information how to verify the technical correctness of the translation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;br /&gt;
&lt;br /&gt;
[[de:DE/Pootle_User_Guide]]&lt;br /&gt;
[[it:IT/Localizzazione/Pootle]]&lt;br /&gt;
[[ja:JA/translation/Pootle_User_Guide]]&lt;br /&gt;
[[ko:KO/Pootle 사용자 가이드]]&lt;br /&gt;
[[nl:NL/Localisatie/Pootle gebruikersgids]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235464</id>
		<title>Pootle User Guide/Release Localized Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235464"/>
		<updated>2014-07-22T21:42:52Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/MasterTOC&lt;br /&gt;
|booktitle=[[Pootle_User_Guide|Pootle User Guide]]&lt;br /&gt;
|toccontent=*[[Pootle_User_Guide/Registration_and_Login|Registration and Login]]&lt;br /&gt;
*[[Pootle_User_Guide/Online_Pootle_User_Interface|Overview Pootle UI]]&lt;br /&gt;
*[[Pootle_User_Guide/Offline_Translation|Offline Translation]]&lt;br /&gt;
*[[Pootle_User_Guide/Quality_Assurance|Quality Assurance]]&lt;br /&gt;
*[[Pootle_User_Guide/Release_Localized_Build|Releasing a Localized Build]]&lt;br /&gt;
*[[Pootle_User_Guide/Technical_Helpers|Technical Helpers]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_AOO_User_Interface|Translation of the User Interface]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_Built-in_Help|Translation of the Built-in Help]]&lt;br /&gt;
*[[Pootle_User_Guide/General_Problems|General Problems]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Release a Localized Build of Apache OpenOffice}}&lt;br /&gt;
&lt;br /&gt;
We have agreed to release a localized version of Apache OpenOffice, if the UI is 100% translated.&lt;br /&gt;
&lt;br /&gt;
And for long-term maintainability we also recommend that:&lt;br /&gt;
* the UI is translated to 100% and&lt;br /&gt;
* the help is translated to 100% too and&lt;br /&gt;
* there is a small team (even just two members) to maintain the translation and ensure QA.&lt;br /&gt;
 &lt;br /&gt;
When you are ready, write an issue in [https://issues.apache.org/ooo/enter_bug.cgi Bugzilla] in the product &amp;#039;&amp;#039;Native-Language&amp;#039;&amp;#039;. Also write an issue, if you later on make changes to the translation and want them to be integrated into the next release. &lt;br /&gt;
&lt;br /&gt;
Once your issue is filed, there are some additional steps that are needed to integrate Pootle translations into OpenOffice. These are typically done by a developer who can commit changes to the source tree and include:&lt;br /&gt;
* conversion of Pootle files for a language to OpenOffice SDF format (see reference at  [http://translate.sourceforge.net/wiki/toolkit/oo2po http://translate.sourceforge.net/wiki/toolkit/oo2po])&lt;br /&gt;
These are basically database file that will reside in /extras/l10n/source under the ISO code for the language.&lt;br /&gt;
&lt;br /&gt;
* for new language translations -- updating the extensions.lst file in the source tree under /main&lt;br /&gt;
&lt;br /&gt;
{{Documentation/Note|If you edit strings in Pootle you need to explicitly ask on the mailing list, for them to be integrated into OpenOffice. Integration is not automatic.}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation/HelpNeeded|Please add information how to verify the technical correctness of the translation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;br /&gt;
&lt;br /&gt;
[[de:DE/Pootle_User_Guide]]&lt;br /&gt;
[[it:IT/Localizzazione/Pootle]]&lt;br /&gt;
[[ja:JA/translation/Pootle_User_Guide]]&lt;br /&gt;
[[ko:KO/Pootle 사용자 가이드]]&lt;br /&gt;
[[nl:NL/Localisatie/Pootle gebruikersgids]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235463</id>
		<title>Pootle User Guide/Release Localized Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235463"/>
		<updated>2014-07-22T21:39:59Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/MasterTOC&lt;br /&gt;
|booktitle=[[Pootle_User_Guide|Pootle User Guide]]&lt;br /&gt;
|toccontent=*[[Pootle_User_Guide/Registration_and_Login|Registration and Login]]&lt;br /&gt;
*[[Pootle_User_Guide/Online_Pootle_User_Interface|Overview Pootle UI]]&lt;br /&gt;
*[[Pootle_User_Guide/Offline_Translation|Offline Translation]]&lt;br /&gt;
*[[Pootle_User_Guide/Quality_Assurance|Quality Assurance]]&lt;br /&gt;
*[[Pootle_User_Guide/Release_Localized_Build|Releasing a Localized Build]]&lt;br /&gt;
*[[Pootle_User_Guide/Technical_Helpers|Technical Helpers]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_AOO_User_Interface|Translation of the User Interface]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_Built-in_Help|Translation of the Built-in Help]]&lt;br /&gt;
*[[Pootle_User_Guide/General_Problems|General Problems]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Release a Localized Build of Apache OpenOffice}}&lt;br /&gt;
&lt;br /&gt;
We have agreed to release a localized version of Apache OpenOffice, if the UI is 100% translated.&lt;br /&gt;
&lt;br /&gt;
And for long-term maintainability we also recommend that:&lt;br /&gt;
* the UI is translated to 100% and&lt;br /&gt;
* the help is translated to 100% too and&lt;br /&gt;
* there is a small team (even just two members) to maintain the translation and ensure QA.&lt;br /&gt;
 &lt;br /&gt;
When you are ready, write an issue in [https://issues.apache.org/ooo/enter_bug.cgi Bugzilla] in the product &amp;#039;&amp;#039;Native-Language&amp;#039;&amp;#039;. Also write an issue, if you later on make changes to the translation and want them to be integrated into the next release. &lt;br /&gt;
&lt;br /&gt;
Once your issue if files, there are some additional steps that are needed to integrate Pootle translations into OpenOffice. These are typically done by a developer who can commit changes to the source tree and include:&lt;br /&gt;
* conversion of Pootle files for a language to OpenOffice SDF format (see reference at  [http://translate.sourceforge.net/wiki/toolkit/oo2po http://translate.sourceforge.net/wiki/toolkit/oo2po])&lt;br /&gt;
* for new language translations -- updating the extensions.lst file in the source tree &lt;br /&gt;
&lt;br /&gt;
{{Documentation/Note|If you edit strings in Pootle you need to explicitly ask on the mailing list, for them to be integrated into OpenOffice. Integration is not automatic.}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation/HelpNeeded|Please add information how to verify the technical correctness of the translation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;br /&gt;
&lt;br /&gt;
[[de:DE/Pootle_User_Guide]]&lt;br /&gt;
[[it:IT/Localizzazione/Pootle]]&lt;br /&gt;
[[ja:JA/translation/Pootle_User_Guide]]&lt;br /&gt;
[[ko:KO/Pootle 사용자 가이드]]&lt;br /&gt;
[[nl:NL/Localisatie/Pootle gebruikersgids]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235462</id>
		<title>Pootle User Guide/Release Localized Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Pootle_User_Guide/Release_Localized_Build&amp;diff=235462"/>
		<updated>2014-07-22T21:32:35Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Documentation/MasterTOC&lt;br /&gt;
|booktitle=[[Pootle_User_Guide|Pootle User Guide]]&lt;br /&gt;
|toccontent=*[[Pootle_User_Guide/Registration_and_Login|Registration and Login]]&lt;br /&gt;
*[[Pootle_User_Guide/Online_Pootle_User_Interface|Overview Pootle UI]]&lt;br /&gt;
*[[Pootle_User_Guide/Offline_Translation|Offline Translation]]&lt;br /&gt;
*[[Pootle_User_Guide/Quality_Assurance|Quality Assurance]]&lt;br /&gt;
*[[Pootle_User_Guide/Release_Localized_Build|Releasing a Localized Build]]&lt;br /&gt;
*[[Pootle_User_Guide/Technical_Helpers|Technical Helpers]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_AOO_User_Interface|Translation of the User Interface]]&lt;br /&gt;
*[[Pootle_User_Guide/Translation_Built-in_Help|Translation of the Built-in Help]]&lt;br /&gt;
*[[Pootle_User_Guide/General_Problems|General Problems]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Release a Localized Build of Apache OpenOffice}}&lt;br /&gt;
&lt;br /&gt;
We have agreed to release a localized version of Apache OpenOffice, if the UI is 100% translated.&lt;br /&gt;
&lt;br /&gt;
And for long-term maintainability we also recommend that:&lt;br /&gt;
* the UI is translated to 100% and&lt;br /&gt;
* the help is translated to 100% too and&lt;br /&gt;
* there is a small team (even just two members) to maintain the translation and ensure QA.&lt;br /&gt;
 &lt;br /&gt;
When you are ready, write an issue in [https://issues.apache.org/ooo/enter_bug.cgi Bugzilla] in the product &amp;#039;&amp;#039;Native-Language&amp;#039;&amp;#039;. Also write an issue, if you later on make changes to the translation and want them to be integrated into the next release. &lt;br /&gt;
&lt;br /&gt;
Once your issue if files, there are some additional steps that are needed to integrate Pootle translations into OpenOffice. These are typically done by a developer who can commit changes to the source tree and include:&lt;br /&gt;
* conversion of Pootle files for a language to OpenOffice SDF format (see an  reference at --  [http://translate.sourceforge.net/wiki/toolkit/oo2po])&lt;br /&gt;
* for new language translations -- updating the extensions.lst file in the source tree &lt;br /&gt;
&lt;br /&gt;
{{Documentation/Note|If you edit strings in Pootle you need to explicitly ask on the mailing list, for them to be integrated into OpenOffice. Integration is not automatic.}}&lt;br /&gt;
&lt;br /&gt;
{{Documentation/HelpNeeded|Please add information how to verify the technical correctness of the translation.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Localization]]&lt;br /&gt;
&lt;br /&gt;
[[de:DE/Pootle_User_Guide]]&lt;br /&gt;
[[it:IT/Localizzazione/Pootle]]&lt;br /&gt;
[[ja:JA/translation/Pootle_User_Guide]]&lt;br /&gt;
[[ko:KO/Pootle 사용자 가이드]]&lt;br /&gt;
[[nl:NL/Localisatie/Pootle gebruikersgids]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235199</id>
		<title>Documentation/Building Guide AOO</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Documentation/Building_Guide_AOO&amp;diff=235199"/>
		<updated>2014-06-03T00:07:47Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Apache OpenOffice Building Guide}}&lt;br /&gt;
&lt;br /&gt;
= Preface =&lt;br /&gt;
This guide will help you to build Apache OpenOffice from its source code.  It details the prerequisites and explains how to download the source code, prepare and then run the build. [[Documentation/Building_Guide_AOO/Step_by_step|Step-by-step instructions]] for resolving the pre-requisites of individual platforms and building on them are available.&lt;br /&gt;
  &lt;br /&gt;
Here is the short version for the brave and impatient:&lt;br /&gt;
* Download the source:  &amp;lt;code&amp;gt;svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&amp;lt;/code&amp;gt;&lt;br /&gt;
* Configure: &amp;lt;code&amp;gt;cd main/ ; autoconf ; ./configure &amp;lt;some-switches&amp;gt; ; ./bootstrap&amp;lt;/code&amp;gt;&lt;br /&gt;
* Build: &amp;lt;code&amp;gt;source &amp;lt;platform-dependend-name&amp;gt;.sh ; cd instsetoo_native ; build --all&amp;lt;/code&amp;gt;&lt;br /&gt;
* Wait for an hour or more (The build can take up to 3 hours.)&lt;br /&gt;
* Install office&lt;br /&gt;
* Enjoy&lt;br /&gt;
&lt;br /&gt;
The detailed description below gives a broader introduction into the build process and explains for the various steps.&lt;br /&gt;
 &lt;br /&gt;
==Status==&lt;br /&gt;
This document is loosely based on an older [[Documentation/Building Guide|version]].  I have tried to avoid duplication and to move anything that all platforms have in common to this page.  Many details have been removed on purpose because they refer to older version of OpenOffice.  However, there are still some things not explained in the necessary detail on this page:&lt;br /&gt;
* How to use ccache&lt;br /&gt;
&lt;br /&gt;
{{Documentation/SeeAlso|*[[How_to_build_Symphony%27s_source_code]] }}&lt;br /&gt;
&lt;br /&gt;
= Getting help =&lt;br /&gt;
You can get help by searching this wiki or by asking questions on the [http://openoffice.apache.org/mailing-lists.html#development-mailing-list-public developers mailing list].&lt;br /&gt;
&lt;br /&gt;
You can help us improve this guide by pointing out any errors (preferably after finding a solution).&lt;br /&gt;
Or don&amp;#039;t be shy and edit (and improve) these pages yourself.&lt;br /&gt;
&lt;br /&gt;
= Basics =&lt;br /&gt;
&lt;br /&gt;
In order to build Apache OpenOffice you need a proper environment.  This includes&lt;br /&gt;
* a command line interpreter, typically bourne shell compatible (sh or bash) inside a terminal. On Windows you will need to install Cygwin to provide it.&lt;br /&gt;
* C++ compiler and linker.  The exact choice depends on the operating system.&lt;br /&gt;
* Perl interpreter and several modules.&lt;br /&gt;
* Many tools from the Unix world like make or sed.&lt;br /&gt;
&lt;br /&gt;
See section [[#General_Build_Requirements | General Build Requirements]]&lt;br /&gt;
for an exact list of requirements.&lt;br /&gt;
&lt;br /&gt;
= Getting the source =&lt;br /&gt;
&lt;br /&gt;
The source code is available as SVN repository at https://svn.apache.org/repos/asf/openoffice&lt;br /&gt;
&lt;br /&gt;
Check it out with&lt;br /&gt;
&lt;br /&gt;
   svn co https://svn.apache.org/repos/asf/openoffice/trunk aoo&lt;br /&gt;
&lt;br /&gt;
More details about how to check out source code from SVN can be found [http://openoffice.apache.org/source.html here].&lt;br /&gt;
&lt;br /&gt;
== Space Requirements ==&lt;br /&gt;
&lt;br /&gt;
The checked out files take up somewhat over 5GB on disk (more than 150000 files in more than 7000 folders and the SVN overhead). &lt;br /&gt;
&lt;br /&gt;
After building this becomes (on Windows7) almost 17GB (more than 406000 files in more than 23000 folders).&lt;br /&gt;
&lt;br /&gt;
You can use git as well. There exists no guide for this, therefore ask on dev@openoffice.apache.org, if you want to use git.&lt;br /&gt;
&lt;br /&gt;
= Organization of the source and output tree =&lt;br /&gt;
&lt;br /&gt;
The source code has five top level directories:&lt;br /&gt;
;main/:contains most of the so called modules.  Each module typically provides one or more libraries.  The source code of the writer application for example can be found in main/sd/.&lt;br /&gt;
;test/:contains the new [[QA/test_automation_guide | automated testing framework]]&lt;br /&gt;
;ext_libraries/:is the new home of modules that build external libraries (libraries maintained outside of Apache OpenOffice and often outside Apache).&lt;br /&gt;
;ext_sources/:contains the tar balls (archives) of external libraries.  They are included both for convenience and to make sure that specific versions remain available.  Note that the source package of the Apache OpenOffice release does not contain any external tar balls. &lt;br /&gt;
;extras/:holds the localization data.&lt;br /&gt;
&lt;br /&gt;
Most tools and scripts that are used for building are located below &amp;lt;code&amp;gt;main/solenv/&amp;lt;/code&amp;gt;:&lt;br /&gt;
*dmake makefiles in &amp;lt;code&amp;gt;main/solenv/inc/&amp;lt;/code&amp;gt;&lt;br /&gt;
*gmake makefiles in &amp;lt;code&amp;gt;main/solenv/gbuild/&amp;lt;/code&amp;gt;&lt;br /&gt;
*executables and perl files in &amp;lt;code&amp;gt;main/solenv/bin/&amp;lt;/code&amp;gt;&lt;br /&gt;
*perl modules in &amp;lt;code&amp;gt;main/bin/modules/&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Libraries and other output files that are shared between modules are stored in &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=Building=&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice consists of three steps:&lt;br /&gt;
;Configuring/bootstrapping:Detect platform, operating system, compiler, etc. and write the information into a shell script for later use.  The developer can turn on or off certain features in this phase.&lt;br /&gt;
;Building:Compile the source code, transform other input files, apply localization.&lt;br /&gt;
;Packing:Create a set of files, the installation set, that can be installed on the respective operating system.  This can be msi/cab files for windows, deb or rpm for Linux, dmg for Mac.&lt;br /&gt;
&lt;br /&gt;
The configure step has to be carried out only once.  Building and packing is necessary after every source code change.  There are short cuts to avoid parts of these steps (when you know what you are doing.)&lt;br /&gt;
&lt;br /&gt;
The building examples in this wiki document use only command line approaches to building. Depending on your expertise, it may be possible to use an IDE which allows specification of custom build scripts. &lt;br /&gt;
&lt;br /&gt;
== General Build Requirements ==&lt;br /&gt;
&lt;br /&gt;
The general requirements for all platforms are&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
! Requirement&lt;br /&gt;
! Description&lt;br /&gt;
! Configure switch&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Java JDK&lt;br /&gt;
| Java Implementation compatible with [http://java.sun.com/j2se/1.5/ JDK 1.5] or [http://java.sun.com/javase/6/ JDK 1.6]. [http://openjdk.java.net/ OpenJDK] is supported as well.&lt;br /&gt;
&lt;br /&gt;
For Windows [http://www.oracle.com/technetwork/java/javase/downloads/index.html/ JDK 1.7] is recommended.&lt;br /&gt;
| --with-jdk-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Perl&lt;br /&gt;
| Perl 5 - note: for Windows Perl will be installed as part of the cygwin environment.&lt;br /&gt;
&lt;br /&gt;
Also required are the perl packages&lt;br /&gt;
    Archive::Zip&lt;br /&gt;
    LWP::UserAgent&lt;br /&gt;
    XML::Parser&lt;br /&gt;
They can be installed from the shell with (you may have to run it with super user/administrator rights)&lt;br /&gt;
    perl -MCPAN -e shell&lt;br /&gt;
If it is executed for the first time then CPAN will ask for configuration. Choose autoconfiguration.&lt;br /&gt;
Eventually the CPAN shell appeares accepts commands.  Install missing modules with &lt;br /&gt;
    install &amp;lt;module-name&amp;gt;&lt;br /&gt;
Find more details [http://wiki.services.openoffice.org/wiki/CPAN_install here].&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| CUPS&lt;br /&gt;
| cups headers. Provided by a cups-devel package or a libcups2-devel&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| PAM&lt;br /&gt;
| PAM support. Provided by a pam-devel package or a libpam-dev&lt;br /&gt;
&lt;br /&gt;
note: not for Windows&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Apache Ant &lt;br /&gt;
| [http://ant.apache.org/ Ant 1.9 or later] (see note)&lt;br /&gt;
| --with-ant-home=&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| Archiver&lt;br /&gt;
| zip and unzip - note: for Windows zip and unzip will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| gperf&lt;br /&gt;
| [http://www.gnu.org/software/gperf/gperf.html gperf] tool - note: for Windows gperf will be installed as part of the cygwin environment.&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| NSS&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| For Windows the Mozilla build tools&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; are needed to build the nss module. They can be obtained [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32/ here].&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| unowinreg.dll&lt;br /&gt;
| [http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll pre-built unowinreg.dll] (see note)&lt;br /&gt;
Without this file, configure will try to set up cross-compiling with windows.&lt;br /&gt;
note: Not for windows. Required on all non-windows platforms. Download with: &lt;br /&gt;
    cd $SRC/main &amp;amp;&amp;amp;  wget -O external/unowinreg/unowinreg.dll http://tools.openoffice.org/unowinreg_prebuild/680/unowinreg.dll&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Notes:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The nss module (&amp;quot;Network Security Services&amp;quot;) provides security services needed for e.g. password protection. NSS can be disabled using the configure switch &amp;lt;tt&amp;gt;--disable-nss-module&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# NSS is provided by the Mozilla project. Building it on Windows requires the [http://ftp.mozilla.org/pub/mozilla.org/mozilla/libraries/win32 MozillaBuild tools]. Get the latest version, install it and use the configure switch &amp;lt;tt&amp;gt;--with-mozilla-build&amp;lt;/tt&amp;gt; to tell configure where the tools are installed. For example: &amp;lt;tt&amp;gt;--with-mozilla-build=c:/mozilla-build&amp;lt;/tt&amp;gt;&lt;br /&gt;
# Please note that CPAN is not able to deal with usernames containing spaces. To work around this fact, when CPAN asks you to specify the CPAN build and cache directory, change the default suggestion to /cpan.&lt;br /&gt;
# Apache Ant: Assure a proper ant set-up by downloading and installing ant, in total, from the ant site linked above. If you are a Linux developer, your distro may not have ant setup correctly for building Apache OpenOffice.&lt;br /&gt;
# Use &amp;lt;tt&amp;gt;./configure --help&amp;lt;/tt&amp;gt; to see all possible configuration options&lt;br /&gt;
&lt;br /&gt;
See also the platform specific requirements for&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Windows|Windows]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_Linux|Linux]]&lt;br /&gt;
*[[Documentation/Building_Guide_AOO/Building_on_MacOsX|MacOSX]]&lt;br /&gt;
&lt;br /&gt;
==Configuration and bootstrapping==&lt;br /&gt;
This is typically done only once after the source code is checked out.  Repeat this after changing your mind about options given to configure.&lt;br /&gt;
&lt;br /&gt;
The call to&lt;br /&gt;
   autoconf&lt;br /&gt;
creates the main/configure script from main/configure.in and some other input files.&lt;br /&gt;
&lt;br /&gt;
The set of options/switches given to configure depends on the platform and your choice of features. To see all configure options for your system, type:&lt;br /&gt;
  configure --help&lt;br /&gt;
&lt;br /&gt;
A typical configuration call starts like this --&lt;br /&gt;
    configure                                                                                   \&lt;br /&gt;
        --with-dmake-url=http://dmake.apache-extras.org.codespot.com/files/dmake-4.12.tar.bz2 \&lt;br /&gt;
        --with-epm-url=http://www.msweet.org/files/project2/epm-3.7-source.tar.gz                \&lt;br /&gt;
It tells configure where to find the source code of external tools dmake and epm.&lt;br /&gt;
&lt;br /&gt;
By default only source code under [http://www.apache.org/legal/3party.html#category-a category A] licenses is compiled and included.  Besides the Apache License 2.0 this includes for example BSD and MIT/X11 license.  If you want to enable features that rely on third party code under [http://www.apache.org/legal/3party.html#category-b category B] licenses (like MPL, CPL, EPL, etc) then add the option&lt;br /&gt;
        --enable-category-b&lt;br /&gt;
&lt;br /&gt;
For inclusion of externally hosted dictionary extensions add option&lt;br /&gt;
        --enable-bundled-dictionaries&lt;br /&gt;
Note that dictionaries rely on a category B third party library (hunspell). Therefore &amp;lt;code&amp;gt;--enable-category-b&amp;lt;/code&amp;gt; is a prerequisite for &amp;lt;code&amp;gt;--enable-bundled-dictionaries&amp;lt;/code&amp;gt;. Dictionaries have a variety of licenses and are bundled without modification: they are not compiled.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--with-lang&amp;lt;/code&amp;gt; option will introduce the build of additional language resources. This switch accepts one or more RFC 1766 language tags as arguments, unfortunately not all languages are supported. Check the &amp;lt;code&amp;gt;[http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/langlist.mk?view=markup solenv/inc/langlist.mk]&amp;lt;/code&amp;gt; file for all the currently supported language tags. The environment variable WITH_LANG will then contain the language tags of the additional (en-US will always be build) languages. Example:&lt;br /&gt;
        --with-lang=&amp;quot;de fr&amp;quot;&lt;br /&gt;
enables the build of the localized German and French version.&lt;br /&gt;
&lt;br /&gt;
You can run the rat scan while building with option&lt;br /&gt;
         --with-rat-scan&lt;br /&gt;
[[Documentation/Building_Guide_AOO/Rat_Scan|Here]] you can find details of the rat scan.&lt;br /&gt;
&lt;br /&gt;
Finish this step by running&lt;br /&gt;
    ./bootstrap&lt;br /&gt;
This will build dmake and epm, download missing source code tar balls of external libraries, and download missing external dictionary extensions.&lt;br /&gt;
&lt;br /&gt;
==Building==&lt;br /&gt;
Start by including the environment variables prepared by configure into your current environment with&lt;br /&gt;
   &amp;lt;tt&amp;gt;source &amp;lt;shell-script-name&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
where &amp;lt;shell-script-name&amp;gt; depends on your platform:&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!platform id&lt;br /&gt;
!&amp;lt;shell-script-name&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| wntmsci12&lt;br /&gt;
| winenv.set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngi6&lt;br /&gt;
| LinuxX86Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxlngx6&lt;br /&gt;
| LinuxX86-64Env.Set.sh&lt;br /&gt;
|-&lt;br /&gt;
| unxmacci&lt;br /&gt;
| MacOSXX64Env.Set.sh&lt;br /&gt;
|}&lt;br /&gt;
Look into main/set_soenv for more platforms. (search for lines &amp;lt;code&amp;gt;$OUTPATH = &amp;quot;&amp;lt;platform&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt; and the nearby line &amp;lt;code&amp;gt;$outfile = &amp;quot;&amp;lt;shell-script-name&amp;gt;&amp;quot;;&amp;lt;/code&amp;gt;.  Add the suffix &amp;lt;code&amp;gt;.sh&amp;lt;/code&amp;gt; for the bash variant.&lt;br /&gt;
&lt;br /&gt;
If you want to build the whole office and the install sets then&lt;br /&gt;
    cd main/instsetoo_native&lt;br /&gt;
    build --all&lt;br /&gt;
You may want to experiment with the -P options for multi process builds to reduce the build time.&lt;br /&gt;
    build --all -P&amp;lt;m&amp;gt; -- -P&amp;lt;n&amp;gt;&lt;br /&gt;
tells build to use &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; processes (build up to &amp;lt;code&amp;gt;m&amp;lt;/code&amp;gt; modules in parallel) and &amp;lt;code&amp;gt;n&amp;lt;/code&amp;gt; threads for each module.&lt;br /&gt;
&lt;br /&gt;
Details about creating installation sets can be found [[Building_installation_packages|here]].&lt;br /&gt;
&lt;br /&gt;
Building Apache OpenOffice uses a custom build command, build.pl, located in /main/solenv/bin.&lt;br /&gt;
You may find it helpful to learn more about build options from the [http://www.openoffice.org/tools/tools/build.html Build Documentation]&lt;br /&gt;
&lt;br /&gt;
==Partial Builds==&lt;br /&gt;
&lt;br /&gt;
Building the whole office takes a lot of time.  Therefore it may be preferable to build only parts after making changes to the source code.&lt;br /&gt;
There are two different types of partial builds:&lt;br /&gt;
;Compatible:Can be used only when the code changes do not change exported interfaces. Use with care and only when you know what you are doing.&lt;br /&gt;
;Incompatible:Use for code changes that modify exported C++ or IDL interfaces, that modify resources that are used by other modules, or when you are not sure.&lt;br /&gt;
:If you are a new developer, you should probably always assume your changes are &amp;quot;incompatible&amp;quot; and follow the instructions for &amp;#039;&amp;#039;&amp;#039;Incompatible Build&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
===Make Systems Used by Apache OpenOffice===&lt;br /&gt;
&lt;br /&gt;
For the following Build sections you should be aware that Apache OpenOffice uses two different &amp;#039;&amp;#039;&amp;#039;make&amp;#039;&amp;#039;&amp;#039; systems to build its modules.&lt;br /&gt;
*The older one is based on dmake&lt;br /&gt;
*The other and newer one is based on GNU make.  This system is often referred to as gbuild.&lt;br /&gt;
When a module contains, among others, a Makefile and a Module_&amp;lt;module&amp;gt;.mk file then it is a gbuild module.&lt;br /&gt;
&lt;br /&gt;
===Compatible Build===&lt;br /&gt;
&lt;br /&gt;
After changing code in module &amp;lt;module&amp;gt; which does not change any exported interfaces do&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build&lt;br /&gt;
    deliver&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr&lt;br /&gt;
No explicit call to &amp;lt;code&amp;gt;deliver&amp;lt;/code&amp;gt; is necessary for gbuild modules.&lt;br /&gt;
|}&lt;br /&gt;
to compile and deliver the resulting libraries to &amp;lt;code&amp;gt;main/solver/&amp;lt;/code&amp;gt;.  You may want to erase the output of a previous compilation:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|  &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build --from &amp;lt;module&amp;gt; --prepare&lt;br /&gt;
or faster (but without the un-deliver)&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    rm -fr &amp;lt;platform&amp;gt;/&lt;br /&gt;
| &lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make clean&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Incompatible Build===&lt;br /&gt;
&lt;br /&gt;
Modifications that change exported interfaces require not only the module to be rebuild that contains the modified code.  All depending modules (dependencies are defined in &amp;lt;code&amp;gt;&amp;lt;module&amp;gt;/prj/build.lst&amp;lt;/code&amp;gt;) have to be rebuild as well.  This is best done from &amp;lt;code&amp;gt;main/instsetoo_native/&amp;lt;/code&amp;gt;:&lt;br /&gt;
  &amp;lt;tt&amp;gt;cd main/instsetoo_native/&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt; --prepare&amp;lt;/tt&amp;gt;&lt;br /&gt;
  &amp;lt;tt&amp;gt;build --from &amp;lt;incompatible-module&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The second line removes the output of all modules that have to be recompiled. The drawback of this command is that the output of modules which are build via gbuild are not removed. Thus, the following additional command performed after the second one will do the trick:&lt;br /&gt;
  build --from &amp;lt;incompatible-module&amp;gt; --job=&amp;quot;make clean; make clean debug=t&amp;quot; --ignore&lt;br /&gt;
&lt;br /&gt;
===Frequently used options===&lt;br /&gt;
&lt;br /&gt;
In order to add debug information to libraries and executables, add the &amp;lt;code&amp;gt;debug&amp;lt;/code&amp;gt; switch to any &amp;lt;code&amp;gt;build&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt; command:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build debug=t&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr debug=t&lt;br /&gt;
|}&lt;br /&gt;
Remember that for the gbuild system you have to use the debug flag also when cleaning a module (otherwise eg the wrong precompiled headers are deleted and are not rebuilt):&lt;br /&gt;
    make clean debug=t&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can force make to rebuild dependency information by first deleting it with the depend option.  It would be rebuilt automatically with the next build:&lt;br /&gt;
{|class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!dmake&lt;br /&gt;
!gbuild&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    build depend=t&lt;br /&gt;
    build&lt;br /&gt;
|&lt;br /&gt;
    cd &amp;lt;module&amp;gt;&lt;br /&gt;
    make -sr depend=t&lt;br /&gt;
    make -sr&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= [http://wiki.openoffice.org/wiki/Documentation/Building_Guide_AOO/Step_by_step Step-by-Step Building Guide for Different Platforms] =&lt;br /&gt;
[[Category:Documentation]][[Category:Development]][[Category:Porting]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Extensions&amp;diff=234836</id>
		<title>Extensions</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Extensions&amp;diff=234836"/>
		<updated>2014-05-01T21:49:55Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Extensions}}&lt;br /&gt;
{{Extensions_languages}}&lt;br /&gt;
All translated pages may not be up to date - Main language remains English&lt;br /&gt;
&lt;br /&gt;
=== Apache OpenOffice Extensions ===&lt;br /&gt;
&lt;br /&gt;
OpenOffice makes it possible to develop independent 3rd-party extensions. The categories of extensions range from Basic libraries, packages with Java/JavaScript or Python macros to more sophisticated extensions in the form of UNO components implemented in Java, C++ or Python. Even the last category of extensions subdivides into general UNO components providing new implementations for existing functional areas, or specialized components like Calc Add-Ins, Add-Ons, DataPilots, Chart Add-Ins, or linguistic components (e.g. Spellchecker, Hyphenator or Thesaurus). &lt;br /&gt;
&lt;br /&gt;
The Extensions project provides&lt;br /&gt;
* &amp;lt;b&amp;gt;[[Extensions development|Tools, guidelines and initial information]]&amp;lt;/b&amp;gt; to develop new functionality for OpenOffice&lt;br /&gt;
* &amp;lt;b&amp;gt;[http://extensions.services.openoffice.org/ Repository of existing Extensions]&amp;lt;/b&amp;gt;: listing and classification&lt;br /&gt;
* &amp;lt;b&amp;gt;[[Extension Deployement|Deployment to end-users]]&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b&amp;gt;[[Extensions/Ideas|Extension Ideas]]&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can join us at&lt;br /&gt;
&lt;br /&gt;
* API mailing list for building the extensions ecosystem.  Send an email to api-subscribe@openoffice.apache.org to subscribe to the list.&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
=== Translating these pages === &lt;br /&gt;
&lt;br /&gt;
The Extension project has to be strongly bound to Native-Lang communities to relay any local third party development. So we warmly welcomed people interested in providing translations for the Add-ons and also for the documentation and pages of this site.&lt;br /&gt;
&lt;br /&gt;
The naming convention proposed is to &lt;br /&gt;
* Create a new page taking the English page and add your language code as suffix (eg. Extensions_repository_fr)&lt;br /&gt;
* Put a link to this translated page at the top of the English page, with the language code&lt;br /&gt;
* Be aware that if you start a translation, it would be good to monitor it so that it remains as much in sync as possible&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
=== Some extension categories === &lt;br /&gt;
&lt;br /&gt;
* Calc Add-Ins provide new Calc built in functions which can be directly used over the normal function dialog in the Calc application. &lt;br /&gt;
* [[Add-ons]] describe components providing some new functionality and normally coming with an UI integration (e.g. new menu entries or complete new menues, new toolbars).&lt;br /&gt;
* DataPilots provide a new kind of data pilot which can be used directly over the DataPilot dialog in the Calc application.&lt;br /&gt;
* Chart Add-Ins provide a new chart type&lt;br /&gt;
* Linguistic components provide new implementations of known interfaces which can be used directly over the normal UI.&lt;br /&gt;
* Starting with OOo 2.0.4 we have support for [[non-code_extensions|non-code extensions]] (e.g. templates, autotexts)&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
=== Extensions from External Sources === &lt;br /&gt;
The flexible AOO Extensions concept allows to use Extensions from external sources. Similar to the Extensions from the AOO extensions repository, the code is not under control of AOO. So &amp;#039;&amp;#039;&amp;#039;you use those extensions on your own risk&amp;#039;&amp;#039;&amp;#039;. Known external sources are&lt;br /&gt;
* [http://extensions.libreoffice.org/ LibreOffice Extensions Center]&lt;br /&gt;
* [http://sourceforge.net/ SourceForge]&lt;br /&gt;
* [http://www.deutschepost.de/dpag?tab=1&amp;amp;skin=hi&amp;amp;check=yes&amp;amp;lang=de_DE&amp;amp;xmlFile=link1022370_1022369 Deutsche Post]&lt;br /&gt;
:&lt;br /&gt;
&lt;br /&gt;
=== References/Articles ===&lt;br /&gt;
&lt;br /&gt;
* [[Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls|Generic UNO Interfaces for complex toolbar controls]] &lt;br /&gt;
&lt;br /&gt;
* [[Extensions/Extensions_and_Apache_OpenOffice_4.0|Extensions and Apache OpenOffice 4.0]] &lt;br /&gt;
&lt;br /&gt;
* [[Framework/Article/Addon_Menu_Toolbar_Merging|Addon Menu Toolbar Merging]] &lt;br /&gt;
&lt;br /&gt;
* [[Framework/Tutorial/Popup_Menu_Controller|Popup Menu Controller]]&lt;br /&gt;
&lt;br /&gt;
* [[Framework/Tutorial/Statusbar_Controller|Statusbar Controller]] &lt;br /&gt;
&lt;br /&gt;
* [[Documentation/DevGuide|Apache OpenOffice Developer&amp;#039;s Guide]]&lt;br /&gt;
&lt;br /&gt;
* [http://www.linuxjournal.com/article/7802 Linux Journal: &amp;quot;Off the Wall: Macros and Add-ons&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
* In this Wiki: [[SimpleCalcAddIn|a simple Calc AddIn]] and [[CompleteAddIn|a complete AddIn]] and [[ScreenplayFormattingTemplate|a screenplay formatting template]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Project]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Certificate_Detection&amp;diff=234835</id>
		<title>Certificate Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Certificate_Detection&amp;diff=234835"/>
		<updated>2014-05-01T21:32:54Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== OS Dependent Information ==&lt;br /&gt;
On &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039;, OpenOffice will use certificates from the personal key store. &lt;br /&gt;
&lt;br /&gt;
On &amp;#039;&amp;#039;&amp;#039;Macintosh&amp;#039;&amp;#039;&amp;#039; systems, OpenOffice will use certificates from the Mozilla key store (used by Firefox). Users will need to set an environment variable, MOZILLA_CERTIFICATE_FOLDER. A typical example might look like:&lt;br /&gt;
&lt;br /&gt;
  MOZILLA_CERTIFICATE_FOLDER=&amp;quot;sql:/Users/xxx/Library/Application Support/Firefox /Profiles/23d7j.default&amp;quot;&lt;br /&gt;
&lt;br /&gt;
with the last value &amp;#039;&amp;#039;&amp;#039;23d7j.default&amp;#039;&amp;#039;&amp;#039; dependent on your particular setup.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On all other platforms (&amp;#039;&amp;#039;&amp;#039;Linux, Solaris&amp;#039;&amp;#039;&amp;#039;), OpenOffice uses certificate capabilities provided by Mozilla [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS Network Security Services] used by Mozilla apps like Firefox and Thunderbird.&lt;br /&gt;
&lt;br /&gt;
Detection order is&lt;br /&gt;
#  Thunderbird&lt;br /&gt;
#  Mozilla&lt;br /&gt;
#  Firefox&lt;br /&gt;
#  Default (what ever that means...)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is no option to choose another profile. If you are having problems with OpenOffice &amp;#039;&amp;#039;&amp;#039;not finding&amp;#039;&amp;#039;&amp;#039; your digital certificate, you can manually set the location by using the environment variable MOZILLA_CERTIFICATE_FOLDER. Typically, on many *nix systems, the certificate folder [[https://wiki.archlinux.org/index.php/Network_Security_Services can be found]] at $HOME/.pki/nssdb. So, the following lines would need to be included in your default profile control file (maybe .bashrc or .profile)&lt;br /&gt;
&lt;br /&gt;
  export NSS_USE_SHARED_DB=enabled &lt;br /&gt;
  export MOZILLA_CERTIFICATE_FOLDER=sql:$HOME/.pki/nssdb&lt;br /&gt;
&lt;br /&gt;
If you still experience problems, please see the [[https://wiki.mozilla.org/NSS_Shared_DB_And_LINUX additional information from Mozilla]] as well.&lt;br /&gt;
 &lt;br /&gt;
== More Info for the Adventurous ==&lt;br /&gt;
Finally, you can check the detection with this small basic script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Option Explicit&lt;br /&gt;
&lt;br /&gt;
Sub MozProfile&lt;br /&gt;
	Dim oMozBootstrap as Object&lt;br /&gt;
	Dim sMsg as String&lt;br /&gt;
	Dim sDefault as String&lt;br /&gt;
&lt;br /&gt;
	oMozBootstrap = createUnoService( &amp;quot;com.sun.star.mozilla.MozillaBootstrap&amp;quot; )&lt;br /&gt;
	&lt;br /&gt;
	sMsg = &amp;quot;OpenOffice.org Mozilla Profile Detection&amp;quot; + Chr$(10) + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Thunderbird&amp;quot;, com.sun.star.mozilla.MozillaProductType.Thunderbird, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Mozilla&amp;quot;, com.sun.star.mozilla.MozillaProductType.Mozilla, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Firefox&amp;quot;, com.sun.star.mozilla.MozillaProductType.Firefox, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Default&amp;quot;, com.sun.star.mozilla.MozillaProductType.Default, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	sMsg = sMsg + &amp;quot;The first detected path will be used for certificates:&amp;quot; + Chr$(10)&lt;br /&gt;
	if Len( sDefault ) &amp;gt; 0 Then&lt;br /&gt;
		sMsg = sMsg + sDefault&lt;br /&gt;
	else&lt;br /&gt;
		sMsg = sMsg + &amp;quot;No profile found!&amp;quot;&lt;br /&gt;
	end if&lt;br /&gt;
	sMsg = sMsg + Chr$(10) + Chr$(10) + &amp;quot;You can overwrite the path with environment variable MOZILLA_CERTIFICATE_FOLDER&amp;quot; + Chr$(10) + &amp;quot; &amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	MsgBox sMsg,64&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
Sub CheckMozProfile( oMozBootstrap, TypeName, TypeID, sMsg, sDefault )&lt;br /&gt;
	Dim sProfile as String&lt;br /&gt;
	Dim sPath as String&lt;br /&gt;
&lt;br /&gt;
	sMsg = sMsg + TypeName + &amp;quot;:&amp;quot; + Chr$(10) + &amp;quot;Profile name: &amp;quot;&lt;br /&gt;
	sProfile = 	oMozBootstrap.getDefaultProfile(TypeID)&lt;br /&gt;
	if Len( sProfile ) &amp;gt; 0 Then&lt;br /&gt;
		sMsg = sMsg + sProfile&lt;br /&gt;
		sPath = oMozBootstrap.getProfilePath(TypeID, sProfile )&lt;br /&gt;
		sMsg = sMsg + Chr$(10) + &amp;quot;Profile path: &amp;quot; + sPath + Chr$(10)&lt;br /&gt;
		if Len( sDefault ) = 0 Then&lt;br /&gt;
			sDefault = sPath&lt;br /&gt;
		end if&lt;br /&gt;
		&lt;br /&gt;
	else&lt;br /&gt;
		sMsg = sMsg + &amp;quot;NOT FOUND&amp;quot; + Chr$(10)&lt;br /&gt;
	endif&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launching this code gives all the information you need to modify the environment variable MOZILLA_CERTIFICATE_FOLDER :&lt;br /&gt;
&lt;br /&gt;
[[Image:DigitalSignature.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
If you want to choose FireFox launch&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MOZILLA_CERTIFICATE_FOLDER=~/.mozilla/firefox/u1f6p56r.default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
before launching OOo or modify the soffice.sh file.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also=&lt;br /&gt;
* [[How_to_use_digital_Signatures|How to use Digital Signatures]]&lt;br /&gt;
* [http://blogs.sun.com/roller/page/dancer/20050308 Just switch! - Secure document exchange with StarOffice 8 ]&lt;br /&gt;
* [http://marketing.openoffice.org/ooocon2004/presentations/friday/timmermann_digital_signatures.pdf Digital signatures (SUN-pdf file)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital Signature]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Certificate_Detection&amp;diff=234701</id>
		<title>Certificate Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Certificate_Detection&amp;diff=234701"/>
		<updated>2014-04-28T22:38:52Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
On &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039;, OpenOffice will use certificates from the personal key store. &lt;br /&gt;
&lt;br /&gt;
On &amp;#039;&amp;#039;&amp;#039;Macintosh&amp;#039;&amp;#039;&amp;#039; systems, OpenOffice will use certificates from ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On all other platforms (&amp;#039;&amp;#039;&amp;#039;Linux, Solaris&amp;#039;&amp;#039;&amp;#039;), OpenOffice uses certificate capabilities provided by Mozilla [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS Network Security Services].&lt;br /&gt;
&lt;br /&gt;
Detection order is&lt;br /&gt;
1) Thunderbird&lt;br /&gt;
2) Mozilla&lt;br /&gt;
3) Firefox&lt;br /&gt;
4) Default (what ever that means...)&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is no option to choose an other profile. If you are having problems with OpenOffice &amp;#039;&amp;#039;&amp;#039;not finding&amp;#039;&amp;#039;&amp;#039; your digital certificate, you can manually set the location by using the environment variable MOZILLA_CERTIFICATE_FOLDER. Typically, on many *nix systems, the certificate folder [[https://wiki.archlinux.org/index.php/Network_Security_Services can be found]] at $HOME/.pki/nssdb. So, the following lines would need to be included in your default profile control file (maybe .bashrc or .profile)&lt;br /&gt;
&lt;br /&gt;
  export NSS_USE_SHARED_DB=enabled &lt;br /&gt;
  export MOZILLA_CERTIFICATE_FOLDER=sql:$HOME/.pki/nssdb&lt;br /&gt;
&lt;br /&gt;
If you still experience problems, please see the [[https://wiki.mozilla.org/NSS_Shared_DB_And_LINUX additional information from Mozilla]] as well.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Finally, you can check the detection with this small basic script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Option Explicit&lt;br /&gt;
&lt;br /&gt;
Sub MozProfile&lt;br /&gt;
	Dim oMozBootstrap as Object&lt;br /&gt;
	Dim sMsg as String&lt;br /&gt;
	Dim sDefault as String&lt;br /&gt;
&lt;br /&gt;
	oMozBootstrap = createUnoService( &amp;quot;com.sun.star.mozilla.MozillaBootstrap&amp;quot; )&lt;br /&gt;
	&lt;br /&gt;
	sMsg = &amp;quot;OpenOffice.org Mozilla Profile Detection&amp;quot; + Chr$(10) + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Thunderbird&amp;quot;, com.sun.star.mozilla.MozillaProductType.Thunderbird, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Mozilla&amp;quot;, com.sun.star.mozilla.MozillaProductType.Mozilla, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Firefox&amp;quot;, com.sun.star.mozilla.MozillaProductType.Firefox, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Default&amp;quot;, com.sun.star.mozilla.MozillaProductType.Default, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	sMsg = sMsg + &amp;quot;The first detected path will be used for certificates:&amp;quot; + Chr$(10)&lt;br /&gt;
	if Len( sDefault ) &amp;gt; 0 Then&lt;br /&gt;
		sMsg = sMsg + sDefault&lt;br /&gt;
	else&lt;br /&gt;
		sMsg = sMsg + &amp;quot;No profile found!&amp;quot;&lt;br /&gt;
	end if&lt;br /&gt;
	sMsg = sMsg + Chr$(10) + Chr$(10) + &amp;quot;You can overwrite the path with environment variable MOZILLA_CERTIFICATE_FOLDER&amp;quot; + Chr$(10) + &amp;quot; &amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	MsgBox sMsg,64&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
Sub CheckMozProfile( oMozBootstrap, TypeName, TypeID, sMsg, sDefault )&lt;br /&gt;
	Dim sProfile as String&lt;br /&gt;
	Dim sPath as String&lt;br /&gt;
&lt;br /&gt;
	sMsg = sMsg + TypeName + &amp;quot;:&amp;quot; + Chr$(10) + &amp;quot;Profile name: &amp;quot;&lt;br /&gt;
	sProfile = 	oMozBootstrap.getDefaultProfile(TypeID)&lt;br /&gt;
	if Len( sProfile ) &amp;gt; 0 Then&lt;br /&gt;
		sMsg = sMsg + sProfile&lt;br /&gt;
		sPath = oMozBootstrap.getProfilePath(TypeID, sProfile )&lt;br /&gt;
		sMsg = sMsg + Chr$(10) + &amp;quot;Profile path: &amp;quot; + sPath + Chr$(10)&lt;br /&gt;
		if Len( sDefault ) = 0 Then&lt;br /&gt;
			sDefault = sPath&lt;br /&gt;
		end if&lt;br /&gt;
		&lt;br /&gt;
	else&lt;br /&gt;
		sMsg = sMsg + &amp;quot;NOT FOUND&amp;quot; + Chr$(10)&lt;br /&gt;
	endif&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launching this code gives all the information you need to modify the environment variable MOZILLA_CERTIFICATE_FOLDER :&lt;br /&gt;
&lt;br /&gt;
[[Image:DigitalSignature.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
If you want to choose FireFox launch&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MOZILLA_CERTIFICATE_FOLDER=~/.mozilla/firefox/u1f6p56r.default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
before launching OOo or modify the soffice.sh file.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also=&lt;br /&gt;
* [[How_to_use_digital_Signatures|How to use Digital Signatures]]&lt;br /&gt;
* [http://blogs.sun.com/roller/page/dancer/20050308 Just switch! - Secure document exchange with StarOffice 8 ]&lt;br /&gt;
* [http://marketing.openoffice.org/ooocon2004/presentations/friday/timmermann_digital_signatures.pdf Digital signatures (SUN-pdf file)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital Signature]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Certificate_Detection&amp;diff=234700</id>
		<title>Certificate Detection</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Certificate_Detection&amp;diff=234700"/>
		<updated>2014-04-28T22:37:54Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
On &amp;#039;&amp;#039;&amp;#039;Windows&amp;#039;&amp;#039;&amp;#039;, OpenOffice will use certificates from the personal key store. &lt;br /&gt;
&lt;br /&gt;
On &amp;#039;&amp;#039;&amp;#039;Macintosh&amp;#039;&amp;#039;&amp;#039; systems, OpenOffice will use certificates from ...&lt;br /&gt;
&lt;br /&gt;
On all other platforms (&amp;#039;&amp;#039;&amp;#039;Linux, Solaris&amp;#039;&amp;#039;&amp;#039;), OpenOffice uses certificate capabilities provided by Mozilla [https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS Network Security Services].&lt;br /&gt;
&lt;br /&gt;
Detection order is&lt;br /&gt;
1) Thunderbird&lt;br /&gt;
2) Mozilla&lt;br /&gt;
3) Firefox&lt;br /&gt;
4) Default (what ever that means...)&lt;br /&gt;
&lt;br /&gt;
Unfortunately, there is no option to choose an other profile. If you are having problems with OpenOffice &amp;#039;&amp;#039;&amp;#039;not finding&amp;#039;&amp;#039;&amp;#039; your digital certificate, you can manually set the location by using the environment variable MOZILLA_CERTIFICATE_FOLDER. Typically, on many *nix systems, the certificate folder [[https://wiki.archlinux.org/index.php/Network_Security_Services can be found]] at $HOME/.pki/nssdb. So, the following lines would need to be included in your default profile control file (maybe .bashrc or .profile)&lt;br /&gt;
&lt;br /&gt;
  export NSS_USE_SHARED_DB=enabled &lt;br /&gt;
  export MOZILLA_CERTIFICATE_FOLDER=sql:$HOME/.pki/nssdb&lt;br /&gt;
&lt;br /&gt;
If you still experience problems, please see the [[https://wiki.mozilla.org/NSS_Shared_DB_And_LINUX additional information from Mozilla]] as well.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Finally, you can check the detection with this small basic script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Option Explicit&lt;br /&gt;
&lt;br /&gt;
Sub MozProfile&lt;br /&gt;
	Dim oMozBootstrap as Object&lt;br /&gt;
	Dim sMsg as String&lt;br /&gt;
	Dim sDefault as String&lt;br /&gt;
&lt;br /&gt;
	oMozBootstrap = createUnoService( &amp;quot;com.sun.star.mozilla.MozillaBootstrap&amp;quot; )&lt;br /&gt;
	&lt;br /&gt;
	sMsg = &amp;quot;OpenOffice.org Mozilla Profile Detection&amp;quot; + Chr$(10) + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Thunderbird&amp;quot;, com.sun.star.mozilla.MozillaProductType.Thunderbird, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Mozilla&amp;quot;, com.sun.star.mozilla.MozillaProductType.Mozilla, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Firefox&amp;quot;, com.sun.star.mozilla.MozillaProductType.Firefox, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	CheckMozProfile( oMozBootstrap, &amp;quot;Default&amp;quot;, com.sun.star.mozilla.MozillaProductType.Default, sMsg, sDefault )&lt;br /&gt;
	sMsg = sMsg + Chr$(10)&lt;br /&gt;
	sMsg = sMsg + &amp;quot;The first detected path will be used for certificates:&amp;quot; + Chr$(10)&lt;br /&gt;
	if Len( sDefault ) &amp;gt; 0 Then&lt;br /&gt;
		sMsg = sMsg + sDefault&lt;br /&gt;
	else&lt;br /&gt;
		sMsg = sMsg + &amp;quot;No profile found!&amp;quot;&lt;br /&gt;
	end if&lt;br /&gt;
	sMsg = sMsg + Chr$(10) + Chr$(10) + &amp;quot;You can overwrite the path with environment variable MOZILLA_CERTIFICATE_FOLDER&amp;quot; + Chr$(10) + &amp;quot; &amp;quot;&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	MsgBox sMsg,64&lt;br /&gt;
&lt;br /&gt;
End Sub&lt;br /&gt;
&lt;br /&gt;
Sub CheckMozProfile( oMozBootstrap, TypeName, TypeID, sMsg, sDefault )&lt;br /&gt;
	Dim sProfile as String&lt;br /&gt;
	Dim sPath as String&lt;br /&gt;
&lt;br /&gt;
	sMsg = sMsg + TypeName + &amp;quot;:&amp;quot; + Chr$(10) + &amp;quot;Profile name: &amp;quot;&lt;br /&gt;
	sProfile = 	oMozBootstrap.getDefaultProfile(TypeID)&lt;br /&gt;
	if Len( sProfile ) &amp;gt; 0 Then&lt;br /&gt;
		sMsg = sMsg + sProfile&lt;br /&gt;
		sPath = oMozBootstrap.getProfilePath(TypeID, sProfile )&lt;br /&gt;
		sMsg = sMsg + Chr$(10) + &amp;quot;Profile path: &amp;quot; + sPath + Chr$(10)&lt;br /&gt;
		if Len( sDefault ) = 0 Then&lt;br /&gt;
			sDefault = sPath&lt;br /&gt;
		end if&lt;br /&gt;
		&lt;br /&gt;
	else&lt;br /&gt;
		sMsg = sMsg + &amp;quot;NOT FOUND&amp;quot; + Chr$(10)&lt;br /&gt;
	endif&lt;br /&gt;
End Sub&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Launching this code gives all the information you need to modify the environment variable MOZILLA_CERTIFICATE_FOLDER :&lt;br /&gt;
&lt;br /&gt;
[[Image:DigitalSignature.png|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
If you want to choose FireFox launch&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export MOZILLA_CERTIFICATE_FOLDER=~/.mozilla/firefox/u1f6p56r.default&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
before launching OOo or modify the soffice.sh file.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= See also=&lt;br /&gt;
* [[How_to_use_digital_Signatures|How to use Digital Signatures]]&lt;br /&gt;
* [http://blogs.sun.com/roller/page/dancer/20050308 Just switch! - Secure document exchange with StarOffice 8 ]&lt;br /&gt;
* [http://marketing.openoffice.org/ooocon2004/presentations/friday/timmermann_digital_signatures.pdf Digital signatures (SUN-pdf file)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital Signature]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=How_to_use_digital_Signatures&amp;diff=234699</id>
		<title>How to use digital Signatures</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=How_to_use_digital_Signatures&amp;diff=234699"/>
		<updated>2014-04-28T22:11:58Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;1. Where to get a Certificate&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
First of all you need a valid digital certificate. You can get one for free by various Security Providers, for Germany especially for people from Hamburg, you can get such a certificate from the Trustcenter ([http://www.trustcenter.de]), other people may have a look at Comodo([http://www.comodo.com/products/certificate_services/email_certificate.html]), StartSSL ([http://www.startssl.com]) or CAcert ([http://www.cacert.org]). These companies offer such a certificate for free with an expiration time of one year. After that you have to renew it if you like. If not you will not be able to sign documents any longer. &lt;br /&gt;
&lt;br /&gt;
If you do not trust these companies or want a higher Class Certificate you need to pay some money and the company will validate your personal data to make sure that you are the one you say you are. Such companies are Globalsign ([http://www.globalsign.com]), Verisign ([http://www.verisign.com]) and also Trustcenter and StartSSL. In combination with a Freemail Account you can get a digital certificate for Germany at Web.de ([http://www.web.de]). &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1.1 How to make a certificate useable for OpenOffice/[[StarOffice]]&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
OpenOffice supports both the internal certificate store for some systems and the Network Security Service of Mozilla. If you follow the process to get a certificate this will be installed into the keystore of your system. (Please find additional details on this part on the [[Certificate Detection]] page.)   Once installed, you should be able to view your certificate through a variety of means depending on your system.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1.1.1 Prerequisites on Windows&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
This certificate information needed by [[StarOffice]] / OpenOffice.org relies on the Crypto engine  on the users system. On Windows the Microsoft Crypto API is used, therefore nothing has to be done if the Internet Explorer was used to get the Certificate. In case you&amp;#039;ve used Mozilla or Firefox, you have to export your certificate into a file from the Mozilla Certificate store and import it into the Microsoft keystore. To do so, just go to your settings dialog in Mozilla and choose&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 -Manage Certificates from it.&lt;br /&gt;
 -Select the Certificate to export and click on the button Backup&lt;br /&gt;
 -Find a place were you can save the file and name it&lt;br /&gt;
 -Follow the instructions given by Mozilla &lt;br /&gt;
 -To import the Certificate into the Microsoft Cryptoengine, do the following:&lt;br /&gt;
  -travel to the location of the now exported file by using your preferred file manager and &lt;br /&gt;
  -double click the file. &lt;br /&gt;
  -Follow the instructions and that&amp;#039;s it. &lt;br /&gt;
  -You have transferred your certificate into the Microsoft keystore of your Windows installation.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1.1.2 Prerequisites on Linux / Solaris&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
To use your Certificate for digital signing of documents on Linux or Solaris we need some prerequisites&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 - A certificate (obtained from a Certificate Authority)&lt;br /&gt;
 - Mozilla Network Security Services. &lt;br /&gt;
If you install either Mozilla Firefox or Thunderbird, the Mozilla NSS services will likely be installed as part of these packages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[StarOffice]] / OpenOffice.org is looking for a certificate in the mentioned profiles according to the following search order&amp;amp;nbsp;: &lt;br /&gt;
&lt;br /&gt;
 a.) The environment variable MOZILLA_CERTIFICATE_FOLDER&lt;br /&gt;
 b.) The Thunderbird profile&lt;br /&gt;
 c.) The Mozilla suite profile&lt;br /&gt;
 d.) The Firefox profile.&lt;br /&gt;
&lt;br /&gt;
This is especially useful to know as Debian and maybe Fedora Linux Installations seem to set the profile names in another way as suggested by the Mozilla developers. In this case the Certificates are not shown in the digital signature dialog of the Office suite. In this case, locate the appropriate profile folder and set the Environment Variable MOZILLA_CERTIFICATE_FOLDER accordingly. See [[Certificate Detection|Certificate Detection]] for how to set  MOZILLA_CERTIFICATE_FOLDER correctly.&lt;br /&gt;
&lt;br /&gt;
It is also necessary that the trust settings for the root certificates are set to trust the certificate to identify web sites and e-mail users. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1.2 Using card readers&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
There are loads of different types of readers and smart cards. Please read first the documentation of your reader and card and install all necessary software which comes with it.&lt;br /&gt;
&lt;br /&gt;
If you use Linux, then follow the documentation about how to add smart card support to Firefox/Thunderbird. In general, this will require to add a particular library (a pkcs11 module) in the device manager (security devices) in Firefox/Thunderbird. The device manager can be found in the options dialog under the Advanced tab page.&lt;br /&gt;
&lt;br /&gt;
With some readers/cards it is sufficient to install opensc and pcscd. pcscd is a deamon, which is located in /etc/init.d. Then one has to add opensc-pkcs11.so, which may be found under /usr/lib, in the device manager.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. How to sign a document&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
Edit the document you want to sign and save it. Now select Digital Signatures from the File Menu. If you get a warning about a missing Mozilla profile, have a look at chapter 1.1.1 please. You probably use a Debian or Fedora Linux and haven&amp;#039;t set the environment variable in the correct way. &lt;br /&gt;
&lt;br /&gt;
If all is properly set, you get the digital signatures dialog and can click on the Add button. On Linux and Solaris you&amp;#039;re asked for the password for accessing the used keystore, on Windows it depends on the settings made on importing the certificate. Now your stored certificates are shown. Please select the one you want to use and than click on Ok. After that you will be back in [[StarOffice]] / OpenOffice.org Digital Signatures dialog. This dialog will show a small icon in front of the textual representation of the certificate used to sign the Document. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;#039;&amp;#039;&amp;#039;2.1 How to sign a Macro&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
To sign a Macro you have two possible ways. &lt;br /&gt;
&lt;br /&gt;
 1.)Use Tools – Macro – Digital Signature&lt;br /&gt;
 2.)Use File – Digital Signature within the BASIC Editor of [[StarOffice]] / OpenOffice.org&lt;br /&gt;
&lt;br /&gt;
The procedure of adding a certificate to the Macro is the same as used for documents. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Error messages and visual aids&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3.1 Error messages on loading of documents&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
You only get a message on loading the document if the signature of the document and / or the signature of the containing macros is broken. In this case the execution of macros is stopped and you can only activate macros by setting the security level to low and re-loading the document. But this is not recommended. Or remove the broken signature from the document and reload it. In this case make sure the macros contained in the document are not malicious. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3.2 Visual Aids&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
We have four visual aids for the possible states of a document signature. &lt;br /&gt;
&lt;br /&gt;
A sheet with a stylised red seal stating that the document signature(s) are OK and no alteration of the document occurred since the last signing. &lt;br /&gt;
&lt;br /&gt;
The addition (signed) to the title bar of an opened signed document. &lt;br /&gt;
&lt;br /&gt;
A sheet with a stylised red seal and a small yellow triangle with exclamation mark stating that the document signature(s) are OK and no alteration of the document occurred since the last signing but at least one of the used certificates could not be validated. This can be caused by a not available root certificate from the Issuer of one of the certificates used or a not possible connection to the server containing the Revocation List for the Certificate Issuer. This is just an informal message, the document itself isn&amp;#039;t changed after signing. But the decision on how far you can trust this document is up to you. The used certificate is maybe outdated or revoked. &lt;br /&gt;
&lt;br /&gt;
A yellow triangle with black exclamation mark showing that the document signature is broken. So this document has been altered in some way and therefore you should not trust it&amp;#039;s content. &lt;br /&gt;
&lt;br /&gt;
These visual aids will be displayed in the digital signature dialog and the status bar. For the &amp;#039;(signed)&amp;#039; text, this one is shown in the title bar of the document window next to the file name. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. Trusted Macro Source&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
To add a certificate as a trusted macro source, open a document signed with the certificate you want to trust. Then use the dialog that pops up to always trust macros from that source. &lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
&lt;br /&gt;
*[[Certificate Detection|Certificate Detection]] &lt;br /&gt;
*[http://blogs.sun.com/roller/page/dancer/20050308 Just switch! - Secure document exchange with StarOffice 8 ] &lt;br /&gt;
*[http://marketing.openoffice.org/ooocon2004/presentations/friday/timmermann_digital_signatures.pdf Digital signatures (SUN-pdf file)]&lt;br /&gt;
* [[FR/Documentation/Comment utiliser une signature numerique]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Digital_Signature]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
	<entry>
		<id>https://wiki.openoffice.org/w/index.php?title=Extensions_development&amp;diff=234666</id>
		<title>Extensions development</title>
		<link rel="alternate" type="text/html" href="https://wiki.openoffice.org/w/index.php?title=Extensions_development&amp;diff=234666"/>
		<updated>2014-04-15T23:02:41Z</updated>

		<summary type="html">&lt;p&gt;Kschenk: /* Articles, Tutorials  &amp;amp; References */  (checkpoint save)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Extensions}}&lt;br /&gt;
Developing extensions is an efficient way to bring value to OpenOffice.org without diving into core sources. Obviously all developers willing to [[Main_Page|develop at OpenOffice.org sources level]] are welcomed.&lt;br /&gt;
&lt;br /&gt;
OpenOffice.org enables third party tools creation through UNO bridges, allowing using many languages.&lt;br /&gt;
&lt;br /&gt;
The principle is to create UNO packages that can be listed in the OpenOffice.org [http://extensions.services.openoffice.org Extensions repository] and installed by end-users easily.&lt;br /&gt;
&lt;br /&gt;
This section gives newcomers as well as experienced developers some hints for developing Extensions in various languages and provides tools and frameworks to facilitate that development.&lt;br /&gt;
&lt;br /&gt;
Popular Extensions may be integrated into OpenOffice.org, so it is important to follow common policies from beginning to ease this merging.&lt;br /&gt;
&lt;br /&gt;
Finally, extension developers are invited to join our [http://incubator.apache.org/openofficeorg/mailing-lists.html#api-mailing-list API mailing list] to ask questions and share ideas.&lt;br /&gt;
&lt;br /&gt;
==== Starting in a language ====&lt;br /&gt;
Addons can be written in various languages. Each section gives starting information to help you create your addon. Each section is dedicated to a language. It deals with specific points concerning the Extensions aspect. Resources regarding the OpenOffice.org API can be found on the [http://api.openoffice.org API project] and the UNO bridge language issues are at [http://udk.openoffice.org UDK project]. The [http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OpenOffice.org_Developers_Guide OpenOffice.org Developer&amp;#039;s Guide] is a valuable source of information as well.&lt;br /&gt;
&lt;br /&gt;
The translations of these pages are welcomed and [[Extensions#Translating_these_pages|guidelines are available]].&lt;br /&gt;
&lt;br /&gt;
* [[Extensions_development_python|Starting in Python]]&lt;br /&gt;
* [[Extensions_development_basic|Starting in Basic]] and [[Documentation/BASIC_Guide|Documentation BASIC Guide]]&lt;br /&gt;
* [[Extensions_development_java|Starting in Java]]&lt;br /&gt;
*  [[Uno/Cpp/Tutorials/Introduction_to_Cpp_Uno|Introduction to C++ and UNO]] and [[Using_Cpp_with_the_OOo_SDK|Using C++ with OOoSDK]]&lt;br /&gt;
* [[Extensions_development_vfp|Starting in Visual FoxPro (French)]]&lt;br /&gt;
* [[Non-code_extensions|Non programmatic Extensions]]&lt;br /&gt;
* [[Extensions_packaging|Extensions packaging]]&lt;br /&gt;
* [[Extensions_Integration_into_Installation_Set|Extensions Integration into Installation Set]]&lt;br /&gt;
* [[Spellchecker_Integration_into_Installation_Set|Adding Spellchecker Extensions into Installation Set]]&lt;br /&gt;
* [[Filter_extensions|Import and Export filter extensions using code or xslt]]&lt;br /&gt;
&lt;br /&gt;
==== Articles, Tutorials &amp;amp; Reference Information ====&lt;br /&gt;
&lt;br /&gt;
* [[Framework/Article/Generic_UNO_Interfaces_for_complex_toolbar_controls|Generic UNO Interfaces for complex toolbar controls]] &lt;br /&gt;
&lt;br /&gt;
* [[Framework/Article/Addon_Menu_Toolbar_Merging|Addon Menu Toolbar Merging]] &lt;br /&gt;
&lt;br /&gt;
* [[Framework/Tutorial/Popup_Menu_Controller|Popup Menu Controller]]&lt;br /&gt;
&lt;br /&gt;
* [[Framework/Tutorial/Statusbar_Controller|Statusbar Controller]]&lt;br /&gt;
&lt;br /&gt;
* [[Documentation/DevGuide/Extensions/Extensions|DevGuide -- Extensions]]&lt;br /&gt;
&lt;br /&gt;
==== Books on OpenOffice.org Basic Programming ====&lt;br /&gt;
&lt;br /&gt;
* [http://www.amazon.com/OpenOffice-org-Macros-Explained-Andrew-Pitonyak/dp/1930919514/ OpenOffice.org Macros Explained] by Andrew Pitonyak&lt;br /&gt;
* [http://www.lulu.com/content/2905912 OpenOffice.org Basic Crash Course] by Dmitri Popov&lt;br /&gt;
* [http://www.amazon.com/Learn-OpenOffice-org-Spreadsheet-Macro-Programming/dp/1847190979/ Learn OpenOffice.org Spreadsheet Macro Programming] by Mark, Alexander Bain&lt;br /&gt;
* [http://www.amazon.de/Makros-OpenOffice-org-2-3-StarBasic-OpenOffice/dp/3836211114/ Makros in OpenOffice.org 2.3] von Thomas Krumbein (in German)&lt;br /&gt;
* [http://www.amazon.fr/Programmation-OpenOffice-org-Macros-OOoBasic-API/dp/2212125224/ Programmation OpenOffice.org 3] de Bernard Marcelly, Laurent Godard (in French)&lt;br /&gt;
&lt;br /&gt;
==== Tools &amp;amp; Frameworks ====&lt;br /&gt;
&lt;br /&gt;
* [http://codesnippets.services.openoffice.org Code snippets available in many languages]&lt;br /&gt;
* [[API/Samples|Code snippets in the Wiki]] (Sample extensions, etc.)&lt;br /&gt;
* [[Extensions_development_translation|Translation framework]]&lt;br /&gt;
* [[Extensions_Packager|Extensions Packager]] - BasicAddonBuilder - Extension Compiler&lt;br /&gt;
* Predefined wizards&lt;br /&gt;
* [[Extensions_introspection|Introspection Tools]]: discover the API&lt;br /&gt;
* [[OpenOffice_Eclipse_Integration|OpenOffice.org Eclipse Integration]] - OpenOffice.org development with Eclipse&lt;br /&gt;
* [[OpenOffice_NetBeans_Integration|OpenOffice.org NetBeans Integration]] - plug-in for NetBeans providing some nice features to simplify the development with and for OpenOffice.org (highlevel wizards, UNOIDL and xcu syntax highlighting, code completion, integrated API reference, ...)&lt;br /&gt;
* [[Extension_Development_with_IntelliJ_IDEA|Extension Development with IntelliJ IDEA]]: simple introduction how you can use the IntelliJ IDEA to develop OpenOffice.org extensions.&lt;br /&gt;
* [[OpenOffice_Maven2_Integration|OpenOffice.org Maven 2 integration]] - Maven plugin to build OpenOffice.org extensions.&lt;br /&gt;
* [[OpenOffice_CMake_Integration|OpenOffice.org CMake integration]] - CMake module for development of OpenOffice.org extensions and other OpenOffice.org-relate projects.&lt;br /&gt;
&lt;br /&gt;
==== Best Practices ====&lt;br /&gt;
* [[Extensions_best_practices|How to write OO.o GUI Extensions today]]&lt;br /&gt;
&lt;br /&gt;
==== Project: Enhancing the Extensions Infrastructure of OpenOffice.org ====&lt;br /&gt;
* [[Extensions_improvements_proposal|Project Proposal (agreed by the Community June 2006)]]&lt;br /&gt;
* [[Extensions_improvements_plan_and_status|Project Status]]&lt;br /&gt;
&lt;br /&gt;
==== Improving the Extension Manager ====&lt;br /&gt;
* [[Extensions_feature_ideas|Feature ideas]]&lt;br /&gt;
[[Category:Extensions]]&lt;br /&gt;
[[Category:Build_System]]&lt;/div&gt;</summary>
		<author><name>Kschenk</name></author>
	</entry>
</feed>