<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>OpenOffice.org - Background for building</title>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>

<H1><A NAME="1.BackgroundInformationforBuildingOpenOffice|outline"></A>
Background Information</H1>

<P>This section provides background information about the build process 
for Star/OpenOffice.org.
Note that StarOffice and OpenOffice.org are developed together, 
but are two different products, for details 
see <a href="http://www.openoffice.org/license.html">licenses</a> or the 
<a href="http://www.openoffice.org/FAQs/faq-questions.html#licensing">FAQ</a>.
Some parts of Star Office use third party code that cannot be used with
OpenOffice.org.  Some of this code has been replaced with Open Source code
and some is left as a future project, for example the grammar checker.
</P>

<P>The document is split into the following sections:</P>
<UL TYPE=DISC>
  <li><a href="#1.1.SourceTreesandOutputTrees|outline">
	  Source Trees and Output Trees</a></li>
  <li><a href="#1.2.UsingIdenticalBuildProcesses|outline">
	  Using Identical Build Processes</a></li>
  <li><a href="#1.3.ReleaseEngineeringBuilds|outline">
	  Release Engineering Builds</a></li>
  <li><a href="#1.4.DevelopingOpenOffice|outline">
	  Developing in the OpenOffice.org Project</a></LI>
</UL>

<H2><A NAME="1.1.SourceTreesandOutputTrees|outline"></A>Source Trees
and Output Trees</H2>

<P>OpenOffice.org developers work in parallel on all platforms. The
source code for all platforms is identical, with the exception of the
code for the interface to the operating and windows systems. This
allows you to build for the different platforms
simultaneously from a single <b>source tree</b>, i.e. the 
directory structure that stores all of the source code for
the office suite. 
</P>

<P>The <SAMP CLASS="code">solenv</SAMP> tree contains the environment
tools that the build process uses, for all supported platforms. 
Formerly it
also included the platform-specific build tools. Now these 
build tools are created with a <SAMP CLASS="code">bootstrap</SAMP> 
script created with the <SAMP CLASS="code">configure</SAMP> script.
</P>

<P>The build process generates files from the source tree and copies
them into an <B>output tree</B>, i.e. a directory
structure that the build process populates with all the files
necessary to build. The output tree is called <SAMP CLASS="code">solver</SAMP>.
</P>

<P>When you run bootstrap, the <SAMP CLASS="code">solver</SAMP>
directory is created. Initially, the <SAMP CLASS="code">solver</SAMP> directory
is empty. The build process populates this directory. The build
process delivers all binary files, shared libraries, and dynamic link
libraries to <SAMP CLASS="code">solver</SAMP>. 
</P>

<P>When you want to build a specific project, you only need the
sources of the relevant CVS modules and the output tree <SAMP CLASS="code">solver</SAMP>.
You do not need the entire source tree, though typically a developer will check
out one of the <a href="builds">branches</a> and build it from scratch.
</P>

<P>For more information on the <SAMP CLASS="code">solenv</SAMP> and
<SAMP CLASS="code">solver</SAMP> trees, see the <A HREF="http://tools.openoffice.org">Tools 
Project</A>.</P>

<H2><A NAME="1.2.UsingIdenticalBuildProcesses|outline"></A>
Using Identical Build Processes</H2>

<P>The build process in OpenOffice.org is identical for all platforms. 
</P>

<P>A OpenOffice.org make tool called <SAMP CLASS="code">dmake</SAMP> controls
the build process.</p>
<p>There are makefiles (<SAMP CLASS="code">makefile.mk</SAMP>) and 
project <a href=build_env_tools.html>build</a> files
<SAMP CLASS="code">prj/build.lst</SAMP>, handling 
the interdependencies of modules and directories throughout 
the source tree. The same makefiles are used for all platforms.  
Macros used control eventual platform-specific steps in the build 
process. This 
guarantees a minimum of effort when porting to a new platform as 
only the macros in the makefiles need to be adapted. The build process
does not require any further scripts or platform-dependent makefiles.
</P>
<P>Star/OpenOffice.org developers rewrote many of the build tools to make the
OpenOffice.org build experience as close as possible to the normal open
source build experience. As a result of this, all of the tools used
in the make process are portable. OpenOffice.org developers wrote some of
them, others are standard open source tools, usually GNU utilities.</P>
<P>The <SAMP CLASS="code">dmake</SAMP> tool is a make utility similar
to GNU <SAMP CLASS="code">make</SAMP> or the Workshop Compiler <SAMP CLASS="code">dmake</SAMP>.
This utility has an irregular syntax but is available from source on all
platforms.
The OpenOffice.org version of <SAMP CLASS="code">dmake</SAMP>
is a modified version of the original freeware <SAMP CLASS="code">dmake</SAMP>.
</P>
<P>When you run <SAMP CLASS="code">dmake</SAMP> from the top-level directory 
of the source tree all modules are built.  This is acheived by simply running
the <SAMP class="code">build -all</samp> in the instsetoo directory.  The build command is described in other <a href=build_env_tools.html>documentation</a>.
There are many dependencies between the modules,
so <SAMP CLASS="code">build</SAMP> must build them in a particular
order. The <SAMP CLASS="code">dmake</SAMP> tool builds the various direcotires
in the modules,
then delivers all header files, generated header files, binary files,
shared libraries, resources, and so on to the <SAMP CLASS="code">solver</SAMP>
tree.</P>
<P>For more information on the <SAMP CLASS="code">dmake</SAMP> tool,
see the <A HREF="http://tools.openoffice.org">Tools 
Project</A>.</P>
<H2><A NAME="1.3.ReleaseEngineeringBuilds|outline"></A>Release
Engineering Builds</H2>
<P>The OpenOffice.org source tree is structured into <B>project</B>s.</p>
<p>A project builds a particular
component of the office suite. For example, the Writer
project builds the Writer application. A project is an
application, function, or simply a summary of classes. A project may be 
subdivided into modules.
A module is the smallest unit of the office suite that
can be built.</P>
<P>Modules correspond to the directories under the 
top-level directory of the source tree. For example, the Writer project
includes the <SAMP CLASS="code">sw</SAMP>, <SAMP CLASS="code">starmath</SAMP>,
<SAMP CLASS="code">res</SAMP> modules, etc.
</P>
<p>To determine which project that a module belongs to look at the
CVS/Repository file.  For example</p>
<pre>
froddo: /data2/office
$ cd config_office

froddo: /data2/office/config_office
$ cat CVS/Repository
tools/config_office
</pre>
<p>We find out that the config_office directory (module) is part of the tools
project.</p>
<P>There are many dependencies between the modules, 
and the modules must build in a particular order. 
Module prerequisites are described in first line of the file 
<SAMP CLASS="code">prj/build.lst</SAMP> for example</p>
<pre>
froddo: /data2/office/sw/prj
$ cat build.lst
sw      sw      :       connectivity svx stoc uui sch NULL
</pre>
<p>We find that sw depends on connectivity etc.  These modules in turn depend
on others creating a large complex depency tree.</p>

<H3><A NAME="1.3.1.FullBuildsandRespinBuilds|outline"></A>Full Builds</H3>

<P>OpenOffice.org developers typically perform a <B>full build</B> of
OpenOffice.org in order to build their modules.
A full build also recompiles all of the source code. It can take up
to 16 hours to perform a full build of OpenOffice.org. Using tools such as
distcc and ccache can have dramatic time improvements however.
</P>

<P>
To avoid the need of a time-expensive complete 
re-build each time a change 
in the code is introduced, the developers are asked to 
introduce only <b>binary compatible</b> changes in the 
code unless the it is agreed with the project owner.
This means that the changes made 
are of such a nature that no recompilation of further dependent 
modules become necessary (inserting a new, non-virtual 
method in a C++ class would be an example of such a binary compatible change).
The office suite will then be re-compiled as a so-called 
<B>respin build</B> before the next 'master' s declared. A
respin build obeys only weak dependencies, i.e. 
dependencies within a module. Using weak
dependencies allows you to, for example, to modify a base library header
file without needing to perform a full build. 
Since a respin build relies on binary compatible changes, modules 
can be build in parallel, and the build takes much less time (a few 
hours) in contrast to a full build. 
</P>
<P>By contrast, <B>binary incompatible</B> changes require a full
build. For reasons of efficiency, this is allowed with the approval of the
project owner.
</p>


<H3><A NAME="1.3.2.MilestoneBuilds|outline"></A>Snapshots / Milestone Builds</H3>

<p>OpenOffice.org is built and tested. 
Tarballs of the current source as well as <SAMP CLASS="code">solver</SAMP> 
and installation tarballs are published in the  
<a href="http://download.openoffice.org/index.html">download page</a> 
at www.openoffice.org. This happens roughly every four weeks. As a result, a 
<b>snapshot</b> of the current state of OpenOffice.org is available. In case the snapshot 
contains some outstanding 'milestone' improvements in functionality or coding, we may also refer 
to the snapshot as a <b>milestone build</b>.

</P>
<H2><A NAME="1.4.DevelopingOpenOffice|outline"></A>Developing
in the OpenOffice.org Project</H2>

<P>The following is an illustration of how open source developers contribute to
the OpenOffice.org project.  Suppose that you want to update a method called
<SAMP CLASS="code">xyz</SAMP> that is defined in the <SAMP
CLASS="code">svtools</SAMP>
module. Suppose also that the <SAMP CLASS="code">svx</SAMP> module
uses the method <SAMP CLASS="code">xyz</SAMP>. You can proceed as
follows:</P>
<OL>
	<LI>Download the milestone <SAMP CLASS="code">solver</SAMP>
	tarball for the platform you want to develop on.</LI>
	<LI>Check out the Utilities project from the CVS tree. This
	copies the <SAMP CLASS="code">svtools</SAMP> module to your local
	environment.</LI>
	<LI>Update the method in the <SAMP CLASS="code">svtools</SAMP>
	module. 
	</LI>
	<LI>Check what is the effect of updating the method on other
	modules. You may want to check how many  modules use the method <SAMP CLASS="code">xyz</SAMP>.
	This may be difficult to establish. You may conclude that the only
	other module that uses the <SAMP CLASS="code">xyz</SAMP> method is
	the <SAMP CLASS="code">svx</SAMP> module. If you are happy that you
	can make a compatible modification, you can continue.</LI>
	<LI>Make the change to the method <SAMP CLASS="code">xyz</SAMP>
	in the module <SAMP CLASS="code">svtools</SAMP>. 
	</LI>
	<LI>Build <SAMP CLASS="code">svtools</SAMP>, this delivers the
	output to the appropriate output tree. 
	</LI>
	<LI>In the <SAMP CLASS="code">svx</SAMP> module, make the changes
	corresponding to the changes that you made in <SAMP CLASS="code">svtools</SAMP>.</LI>
	<LI>Build <SAMP CLASS="code">svx</SAMP>, this delivers the output
	to the appropriate output tree. 
	</LI>
	<LI>Test your changes.</LI>
	<LI>Submit the patch.</LI>
	<LI>A community volunteer or the project owner checks the patch,
	comments on or approves it</li>
	<li>The patch is commited to the CVS tree.</li>
</OL>
<P><B>Note: </B>Another
project that you have not checked out may use the same method name.</P>

<H3><A NAME="1.4.1.TipsonHowtoAvoidBreakingtheBuild|outline"></A>Tips
on How to Avoid Breaking the Build</H3>

<P>When you are developing in OpenOffice.org,
your code must respect the order in which the modules are built.
Otherwise, you may create a circular dependency. A circular
dependency is created when a module attempts to use features in
another module that is built after it. 
</P>

<P>For example, if you change the <SAMP CLASS="code">sot</SAMP>
module so that it uses header or library files from the <SAMP CLASS="code">toolkit</SAMP>
module, you create a circular dependency. The <SAMP CLASS="code">toolkit</SAMP> module is built
after the <SAMP CLASS="code">sot</SAMP> module, and indirectly
depends on it. When the <SAMP CLASS="code">sot</SAMP> module refers
to the <SAMP CLASS="code">toolkit</SAMP> module, it becomes dependent on it, and the circular
dependency is created. This will cause the build to break and another solution
must be found.</P>

<P>Note that the build process builds one
directory completely, and then builds the next directory.
</P>

<P>When you are working within a module, your code must respect the existing
structure of the module, in the following ways:</P>

<UL TYPE=DISC>
	<LI>Separate the building of objects from the linking of libraries. Create
	links in the <CODE>utils</CODE> directory
	as much as possible. This also enables you to find link targets
	easily.</LI>
	<LI>To reduce how long it takes to
	build, keep the source subdirectories to a reasonable size, that is,
	less than 50 files. 
	</LI>
	<LI>When more than one directory uses
	a header or library file, put the file in the <CODE>inc</CODE> directory.
	When you build, it appears in the <CODE><VAR>module-name</VAR>/inc</CODE>
	directory 
	of the shared output tree after the deliver phase of build process.</li>
</UL>
</BODY>
</html>
