blob: 1dc876ecb5414626f8fcd4a04ffff0dbe5e32798 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=us-ascii">
<title>Apache OpenOffice - Build tools</title>
</head>
<body>
<h2>Tools Provided for Building and Installing</h2>
<p>The following table describes the tools provided to build and
install the office suite. It also indicates what tree these tools
reside in after you build. For more information on
<code>solenv</code> and <code>solver</code>, see Source Trees and
Output Trees.</p>
<table border="0" cellspacing="0" cellpadding="5" width="400">
<tr valign="top">
<th>Tool</th>
<th>Location</th>
<th>Description</th>
</tr>
<tr valign="top">
<td><code>_mkout</code></td>
<td><code>solenv</code></td>
<td>A small utility for creating an output tree, normally
<code>$OUTPATH.$PROEXT</code>, for a project. The <code>dmake</code>
command executes <code>solenv/$OUTPATH.$PROEXT/bin/_mkout</code>
when building the first files in a project
<code>solenv/$OUTPATH.$PROEXT/bin/_mkout</code>. You can also call
this utility from the command line. The <code>_mkout</code> utility
is built in the <code>tools</code> module.</td>
</tr>
<tr valign="top">
<td><code>bmp</code></td>
<td><code>solver</code></td>
<td>A tool for generating image lists. The <code>bmp</code> tool
takes a <code>.srs</code> input resource file, searches for the
individual bitmaps, and creates an image list from them. The image
lists are used in toolbars. You must include the directory paths of
the bitmaps. The syntax for this tool is as follows:
<pre>
bmp <var>srs-input-resource-file</var> <br>
<var>path-to-bitmaps</var> <var>location-of-language-dependent-bitmaps</var>
</pre>
<p>For example, the following command creates an image list from
the resource file <code>appl.srs</code> of the German bitmaps in
<code>../../win/res</code> to the directory
<code>/german/testdir</code>:</p>
<pre>
% <kbd>bmp ../../wntmsci3/srs/appl.srs ../../win/res
/german/testdir ../../wntmsci3/res/49 deut</kbd>
</pre>
<p>Note that in this example, you must specify <code>49</code> and
<code>deut</code> to create a list of the German resources. Note
that <code>49</code> is part of the destination directory name, and
<code>deut</code> specifies language-dependent bitmaps mostly taken
from the module <code>res</code>.</p>
<p>Use the <code>-f</code> option to write a success message to a
file. If the BMP_WRITES_FLAG parameter is set, this file is
checked. The following example creates an image list for German,
and writes a log to the <code>../../common/misc</code>
directory:</p>
<pre>
% <kbd>bmp ../../wntmsci3/srs/appl.srs ../../win/res
../../wntmsci3/res/49 deut -f ../../common/misc</kbd>
</pre>
<p>For this tool to work on UNIX systems, you must set the
<code>DISPLAY</code> variable properly. You must also be able to
access the UNIX system. A Win32 version of this tool is available,
with a GUI. This tool is built in the module
<code>svtools</code>.</p>
</td>
</tr>
<tr valign="top">
<td><code>build</code></td>
<td><code>solenv</code></td>
<td>
<p>This utility iterates through the module directories, spawning
<code>dmake</code> in each module directory. The <code>prj/build.lst</code>
list specifies the build prerequisites and a build sequence is determined.</p>
<p><code>build</code> is aliased to <code>"perl $SRC_ROOT/solenv/bin/build.pl"</code></p>
<p>The <code>build</code> utility is located at
<code>solenv/$OUTPATH/bin/build.pl</code>.</p>
<p>For more information on the build utility refer to the <a href="tools/build.html">detailed documentation</a>.
<p>For more information
on the <code>dmake</code> tool, see <a href="#dmake">dmake</a>.
<p>The command line options for <code>build</code> are as
follows:</p>
<p><code>-file</code></p>
<p>Specifies the temporary file that is created to support the set
of commands that need to be executed. This option is mandatory.</p>
<p><code>-all</code></p>
<p>Specifies to build all module dependencies. The
<code>build</code> utility builds these modules and delivers
them.</p>
<p><code>-get</code></p>
<p>Checks out the latest source of the project from the CVS tree
using the <code>$WORK_STAMP</code> tag string. <b>Note</b> that
this will not work for OpenOffice checkouts</p>
<p><code>-listall</code></p>
<p>Lists the order that the modules are built in. This list appears
in the file specified by the option <code>-file</code>.</p>
<p><code>-make</code></p>
<p>Specifies which <code>make</code> utility to run, for example
<code>dmake</code> on Linux, Solaris, or Mac OS X. The
<code>make</code> utility is built in the <code>tools</code> module
directory.</p>
<p>All unknown parameters are handed over to
<code>dmake</code>.</p>
</td>
</tr>
<tr valign="top">
<td><code>cc, cpp.lcc</code></td>
<td><code>solenv</code></td>
<td>Wrapper script for preprocessing <code>.c</code> files with
carriage return and line feed line ends.
<p>Needed for Solaris only because the Workshop C compiler on
Solaris (<code>SUNWspro</code>) cannot handle multiline macros in
files with MS-DOS line end convention.</p>
</td>
</tr>
<tr valign="top">
<td><code>checkdll</code></td>
<td><code>solenv</code></td>
<td>This performs a simple test-it tries to load the library. This
executable is wrapped in a shell script called
<code>checkdll.sh</code>.</td>
</tr>
<tr valign="top">
<td><code>cppumaker</code></td>
<td><code>solver</code></td>
<td>Generates <code>file.hpp</code> and <code>file.hdl</code> from
the type library or registry database <code>applicat.rdb</code>.
The <code>.hpp</code> files are the class definition of the UNO IDL
files. The <code>.hdl</code> files are included in the
<code>.hpp</code> files and contain definitions. This utility is
built in the module <code>codemaker</code> and is located in the
<code>solver</code> tree.
<p>You can use the following options with the
<code>cppumaker</code> tool:</p>
<p><code>-O</code><var>path</var></p>
<p>The <i>path</i> parameter describes the root directory for the
generated output. The output directory tree is generated under this
directory.</p>
<p><code>-T</code><var>name</var></p>
<p>The <var>name</var> parameter specifies a type or a list of
types. The <code>cppumaker</code> tool generates output for this
type. If you do not specify a <code>-T</code> option, then the
<code>cppumaker</code> tool generates output for all types. For
example, <code>com.sun.star.uno.XInterface</code> is a valid
type.</p>
<p><code>-B</code><var>name</var></p>
<p>The <var>name</var> parameter specifies the base node. The
<code>cppumaker</code> tool searches all types under this node. The
default is the root directory of the registry files.</p>
<p><code>-L</code></p>
<p>For Win32 only. Generates the <code>getCppuType</code> function
in a short form. Only the name and TypeClass of the type are
used.</p>
<p><code>-C</code></p>
<p>The <code>getCppuType</code> function is generated with
comprehensive type information.</p>
<p><code>-G</code></p>
<p>Use this option to generate only target files which do not
exist.</p>
<p><code>-Gc</code></p>
<p>Use this option to generate only target files whose content will
be changed.</p>
<p>The following is an example of using the <code>cppumaker</code>
tool with some of the options available:</p>
<p><code>%</code> <kbd>cppumaker -C -BUCR -O../$OUTPATH.$PROEXT/inc
$SRC_ROOT/solver/$UPD/$OUTPATH.$PROEXT/bin/applicat.rdb</kbd></p>
</td>
</tr>
<tr valign="top">
<td><code>deliver</code></td>
<td><code>solenv</code></td>
<td>Copies headers, generated headers, binaries, shared libraries,
resources, and so on to <code>solver</code>. The file
<var>module-name</var><code>/prj/d.lst</code> describes where to
locate each file, and where to deliver it to.
<p>Formerly, the <code>deliver</code> tool could also correct the
include path for the delivered include files to the <code>solver</code>
tree. These were marked with <code>hedabu</code> in the
<code>d.lst</code> file. This directed <code>deliver</code> to build
a new header file by merging header files. Surplus comments and
empty lines were removed.</p>
<p><code>hedabu</code> functionality meanwhile (SRC680 m209) got
removed for the main development code line.</p>
</td>
</tr>
<tr valign="top">
<td><a name="dmake"></a><code>dmake</code></td>
<td><code>solenv</code></td>
<td>A make utility similar to <code>GNU make</code>, used when building AOO.
<p>For more information on <code>dmake</code>, see the <a href=
"dmake/index.html">dmake page</a> or for a description of
OpenOffice makefiles see <a href="build_env_mkfiles.html">our
description</a>.</p>
<p>Some useful additional <code>dmake</code> switches and targets
are also available, as follows:</p>
<p><code>dmake debug=true</code></p>
<p>Compiles with debug information.</p>
<p><code>dmake depend=true</code></p>
<p>Removes dependency information, dependencies are regenerated on
the next <code>dmake</code> run.</p>
<p><code>dmake -v -p</code></p>
<p>Dump out the make file as it is running, provides lots of
information.</p>
<p><code>dmake -u</code></p>
<p>Rebuild everything in the current directory. The use of the
<code>-u</code> flag can result in unnecessary builds of objects
because of the recursive nature of the dependencies. Do not use
this option unless you are sure you understand what you are doing.
Using this option can cause the following problems:</p>
<ul>
<li>The <code>dmake</code> tool tries to rebuild the generated
headers, because they are in the dependency list
(<code>.dpc</code>). This causes an error because the generated
headers are built elsewhere.</li>
<li>Some object files appear in more than one target. When
<code>dmake</code> uses one of these object files in a build, it
updates the timestamp on the file. The <code>dmake</code> tool then
uses this timestamp to ensure that the object file is built in the
correct order, and also to apply the correct build switches to the
object file. If this timestamp is ignored, <code>dmake</code>
builds the object a second time, this time with incorrect
switches.</li>
</ul>
<p><code>dmake killobj</code></p>
<p>Remove all objects for sources in the current directory.</p>
<p><code>dmake killsrs</code></p>
<p>Remove search resource string files from the current
directory.</p>
<p><code>dmake killres</code></p>
<p>Remove resource files from the current directory.</p>
<p><code>dmake killdef</code></p>
<p>Remove existing built targets.</p>
<p>The default alias of <code>dmake</code> is as follows:
<code>dmake product=full</code></p>
</td>
</tr>
<!--
<tr VALIGN=TOP>
<TD>
<CODE>include</CODE>
</TD>
<TD>
<CODE>solenv</CODE>
</TD>
<TD>This parses the database generated by the <CODE>incparse</CODE> tool and
writes the include statements to standard output. If you want to add an
include statement for a specific class, struct, typedef, or macro in your
source code, you can use the include tool to get the correct include statement
for it. You can also use this tool with text editors such as <CODE>vi</CODE>
or <CODE>emacs</CODE>.</TD>
</TR>
<tr VALIGN=TOP>
<TD>
<CODE>incparse</CODE>
</TD>
<TD>
<CODE>solver</CODE>
</TD>
<TD>Win32 only. The <CODE>incparse</CODE>, or include parse tool generates
a database of all C and C++ data types. You can use this tool to find the
location of a header file. For example, if you know that a class called
<CODE>string</CODE> exists, you can check this database to find the header
file for this class.</TD>
</TR>
-->
<tr valign="top">
<td><code>javadep</code></td>
<td><code>solenv</code></td>
<td>Creates Java dependency files. These files are stored in
<var>module-name</var>/<code>$OUTPATH$PROEXT/misc/*.dpj</code>
files. This utility is similar to the <code>makedepn</code>
utility. It resides in the <code>solenv</code> tree.</td>
</tr>
<tr valign="top">
<td><code>javamaker</code></td>
<td><code>solver</code></td>
<td>Like the <code>cppumaker</code> tool, this generates Java files
from the type library or registry database
<code>applicat.rdb</code>. This utility is built in the module
<code>codemaker</code> and is located in the <code>solver</code>
tree.
<p>The syntax is as follows:</p>
<p><code>javamaker [-options] file_1 ... file_n</code></p>
<p>You can use the following options with the
<code>javamaker</code> tool:</p>
<p><code>-O</code><var>path</var></p>
<p>The <var>path</var> parameter describes the root directory for
the generated output. The output directory tree is generated under
this directory.</p>
<p><code>-T</code><var>name</var></p>
<p>The <var>name</var> parameter specifies a type or a list of
types. The <code>javamaker</code> tool generates output for this
type. If you do not specify a <code>-T</code> option, then the
<code>javamaker</code> tool generates output for all types. For
example, <code>com.sun.star.uno.XInterface</code> is a valid
type.</p>
<p><code>-B</code><var>name</var></p>
<p>The <var>name</var> parameter specifies the base node. The
<code>cppumaker</code> tool searches all types under this node. The
default is the root directory of the registry files.</p>
</td>
</tr>
<tr valign="top">
<td><code>ldump</code></td>
<td><code>solenv</code></td>
<td>Dumps all the symbols of a library and filters the symbols by
discarding all that contain one of the entries in a
<code>.flt</code> file. This output is used to build the
<code>.def</code> files.
<p>The tools <code>ldump2.exe</code> and <code>ldump3.exe</code>
perform similar functions. The <code>.flt</code> file is used to
limit the number of exported symbols.</p>
<p>On UNIX platforms, map files perform a similar function.</p>
</td>
</tr>
<tr valign="top">
<td><code>lzip</code></td>
<td><code>solver</code></td>
<td>Generates an install package.</td>
</tr>
<tr valign="top">
<td><code>makedepn</code></td>
<td><code>solenv</code></td>
<td>This tool generates dependencies for source files. If you
introduce new source files, makedepn executes automatically at make
time. The syntax for this tool is irregular. Command line
parameters are as follows:
<p><code>-I:</code> <var>pathname</var></p>
<p>Include files in the specified paths.</p>
<p><code>-E:</code> <var>pathname</var></p>
<p>Exclude dependent files in the specified paths.</p>
<p><code>-O</code></p>
<p>Output file.</p>
<p><code>-V</code></p>
<p>Verbose mode.</p>
<p><code>-D</code></p>
<p>Debug mode.</p>
<p>Thus dependencies are not hard-coded into the makefiles but are
generated at make time. The output dependency list file is created
as <code>filename.dpc</code> in the following directory:</p>
<p><var>module-name</var><code>/$INPATH/misc</code></p>
<p>The <code>makedepn</code> tool is built in the
<code>tools</code> module.</p>
</td>
</tr>
<tr valign="top">
<td><code>mksvconf</code></td>
<td><code>solenv</code></td>
<td>A minor utility that provides information about the underlying
system. For example, it provides information about the byte size of
integers, byte alignment, and so on. The <code>mksvconf</code>
utility is built in the <code>tools</code> module.
<p>It creates a <code>svconf.h</code> file in the
<code>tools/include</code> directory.</p>
</td>
</tr>
<tr valign="top">
<td><code>msg_filter</code></td>
<td><code>solenv</code></td>
<td>A Perl script that contains a list of redundant messages from
the compiler that cannot be removed. It filters these redundant
messages from the compiler. It resides in
<code>solenv/bin</code>.</td>
</tr>
<tr valign="top">
<td><code>rdbmaker</code></td>
<td><code>solver</code></td>
<td>Maintains and merges <code>.rdb</code> files for different
projects.</td>
</tr>
<!--
<tr valign="top">
<td><code>registerimplementations</code></td>
<td><code>solenv</code></td>
<td>This tool registers and unregisters the following in the
registry database (<code>applicat.rdb</code>):
<ul type="DISC">
<li>Shared libraries (DLLs)</li>
<li>Class names</li>
<li>URLs of jar files</li>
</ul>
<p>Command line options are as follows:</p>
<p><code>-register</code></p>
<p>Register the implementations.</p>
<p><code>-revoke</code></p>
<p>Unregister the implementations.</p>
<p>The <code>registerimplementations</code> tool is built in the
module <code>usr</code>.</p>
<p><b>Note:</b> This tool is no longer used.</p>
</td>
</tr>
-->
<tr valign="top">
<td><code>regview<br>regmerge</code></td>
<td><code>solver</code></td>
<td>These are tools for viewing and manipulating the registry
(<code>applicat.rdb</code>). This tool is built in the module
<code>registry</code>.</td>
</tr>
<tr valign="top">
<td><code>rsc, rsc2</code></td>
<td><code>solver</code></td>
<td>This resource compiler generates the <code>.res</code> and
<code>.srs</code> resource files. The <code>rsc2</code> tool is
called from within the <code>rsc</code> utility. For more
information, run these commands with the <code>-h</code> option.
These tools are built in the <code>rsc</code> module.</td>
</tr>
<tr valign="top">
<td><code>rscdep</code></td>
<td><code>solenv</code></td>
<td>This tool generates dependencies for resource files
(<code>filename.src</code>). The <code>rscdep</code> tool is the
resource compiler equivalent of <code>makedepn</code>. In other
words, the tool generates resource file dependencies similar to
<code>makedepn</code>. The <code>rscdep</code> tool creates the
output dependency list file in the
<var>module-name</var><code>/$OUTPATH.$PROEXT/misc</code> directory
as <var>filename</var><code>.dpr</code>. The <code>rscdep</code>
tool is built in the <code>tools</code> module.</td>
</tr>
<tr valign="top">
<td><code>rscpp</code></td>
<td><code>solenv</code></td>
<td>Resource compiler preprocessor.</td>
</tr>
<tr valign="top">
<td><code>sbllink</code></td>
<td><code>solver</code></td>
<td>Merges interface descriptions for BASIC modules.</td>
</tr>
<tr valign="top">
<td><code>scpcomp</code></td>
<td><code>solver</code></td>
<td>Script particle compiler. Generates <code>.par</code> files
from <code>.scp</code> files. The <code>scplink</code> tool uses
the <code>.par</code> files to create installation configuration
files.</td>
</tr>
<tr valign="top">
<td><code>scplink</code></td>
<td><code>solver</code></td>
<td>Creates installation configuration files from <code>.par</code>
files. The <code>setup</code> program uses these <code>.ins</code>
installation configuration files.</td>
</tr>
<tr valign="top">
<td><code>setsolar</code></td>
<td><code>solenv</code></td>
<td>
<p>This is not used in OpenOffice, it is used in StarOffice
builds.</p>
<!--
This information is out of date. I cant fix this, so commenting out.
<p>Sets environment variables from a database.
It generates a shell script that you must run the <CODE>source</CODE> command
on. It is built in the <CODE>tools</CODE> module.
<P>The <CODE>stand.lst</CODE> file specifies the platforms to build on, and
a list of the modules to build. It also contains references to two files:
a <CODE>.ini</CODE> file and a <CODE>.lst</CODE> file. The <CODE>.ini</CODE>
file specifies the configuration compiler pathnames that are needed to
build. The <CODE>.lst</CODE> lists the module directories and the
dependencies between these modules.
-->
</td>
</tr>
<tr valign="top">
<td><code>svidl</code></td>
<td><code>solver</code></td>
<td>The View application IDL compiler. This tool has now been
superseded by <code>unoidl</code> but is still used in places. This
tool is built in the module <code>idl</code>.</td>
</tr>
<tr valign="top">
<td><code>unocpp</code></td>
<td><code>solver</code></td>
<td>This is the UNO IDL preprocessor. This tool is built in the
module <code>idl</code>.</td>
</tr>
<tr valign="top">
<td><code>unoidl</code></td>
<td><code>solver</code></td>
<td>IDL compiler for <code>.idl</code> files, supplied with
backends for C++, Java, documentation, and so on. For more
information, run this command with the <code>-h</code> option. This
tool is built in the module <code>unoidl</code>.</td>
</tr>
<tr valign="top">
<td><code>zipdep</code></td>
<td><code>solenv</code></td>
<td>Generates dependencies between zipped files. The
<code>zipdep</code> tool is derived from version 2.0.1 of the
common zip utility.</td>
</tr>
</table>
</body>
</html>