blob: cf3f1723d7f05fabd26fa76b9ee30a778737ed2f [file] [log] [blame]
<html><head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
</head>
<body>
<H2>Implementation of Porting</H2>
<a href="http://wiki.services.openoffice.org/wiki/Porting_Efforts">Porting Efforts</a> in the OpenOffice.org wiki.
<br>
<P>The first task you must complete is to create the bootstrapping
process, so that the build tools to build the office suite are
available.</P>
<H3>Building dmake</H3>
<P>For a full description of building <CODE>dmake</CODE>
on different platforms read the makefile in the <CODE>$SRC_ROOT/dmake</CODE>
directory. The following is an example of how to build <CODE>dmake</CODE>
on Linux. Use this example as a guide when attempting to build <CODE>dmake</CODE>
on another operating system.</P>
<OL>
<LI>Change to the <CODE>$SRC_ROOT/dmake</CODE>
directory, and run the <codeconfigure</code> and <CODE>make</CODE> commands, as
follows:
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>cd $SRC_ROOT/dmake</KBD>
% <KBD>configure</KBD>
% <KBD>make</KBD>
</PRE>
</TD>
</TR>
</TABLE>
<P>If the compile is successful, the system creates the
<CODE>$SRC_ROOT/dmake/dmake</CODE> file.</P>
<p>If the configure is not successful you may have to relate your platform to
a specific setup, take a look at the configure.in, modify and run
<code>autoreconf</code>.
</LI>
<LI>Install <CODE>dmake</CODE>
into the build environment by executing the following commands:
<TABLE WIDTH=746 BORDER=1 CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>cp $SRC_ROOT/dmake/dmake $SRC_ROOT/solenv/unxlngi3/bin/dmake</KBD>
% <KBD>chmod -Rf a+rx $SRC_ROOT/solenv/unxlngi3/bin</KBD>
</PRE>
</TD>
</TR>
</TABLE>
<P>For information on the derivation of the directory name <CODE>unxlngi3</CODE>,
see the information on OUTPATH in the
<A HREF="http://tools.openoffice.org/build_env.html">Build Environment</A> document.
This name is equivalent to the value of the <CODE>$OUTPATH</CODE>
variable.</P>
</LI>
<LI>Create the specific compiler flags
and options in the file, for example, see <CODE>unxlngi3.mk</CODE>
in the directory <CODE>$SRC_ROOT/solenv/inc</CODE>.
</LI>
<LI>Modify <CODE>unx.mk</CODE>
to switch to this file depending on the values, for example:
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
.IF
"$(COM)$(OS)$(CPU)$(GLIBC)" == "GCCLINUXI2REDHAT60"
.INCLUDE : unxlngi3.mk
.ENDIF
</PRE>
</TD>
</TR>
</TABLE>
</LI>
</OL>
<H3>Creating the Rest of the Build Tools</H3>
<P>To create the remaining build tools, you need to build the
following modules:
</P>
<UL TYPE=DISC>
<LI><CODE>sal</CODE>
</LI>
<LI><CODE>vos</CODE>
</LI>
<LI><CODE>tools</CODE>
</LI>
<LI><CODE>rscpp</CODE>
</LI>
</UL>
<P>To build these modules, follow these steps:</P>
<OL>
<LI>First you need to create a minimum
build environment. The various makefiles require <CODE>csh</CODE>
to run properly, so if you are not running the <CODE>csh</CODE>
shell, change to it by executing the following command:
<TABLE WIDTH=746 BORDER=1 CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>csh</KBD>
</PRE>
</TD>
</TR>
</TABLE>
</LI>
<LI>The makefiles need several
environment variables to be set to work properly. The <CODE>configure</CODE>
process creates a file of the environment variables that need to be
set. For example, for Linux on Intel, the <CODE>configure</CODE>
process creates a <CODE>LinuxIntelEnv.Set</CODE> file,
as follows:
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
setenv SRC_ROOT <VAR>OpenOffice-top-level-directory-tree</VAR>
setenv DMAKEROOT $SRC_ROOT/solenv/inc/startup
setenv PATH $SRC_ROOT/solenv/$OUTPATH/bin:$SRC_ROOT/solenv/bin:"$PATH"
setenv OS LINUX
setenv SOLARENV $SRC_ROOT/solenv
setenv SOLARVER $SRC_ROOT/solver
setenv UPD <VAR>build-number</VAR>
setenv INPATH unxlngi3.pro
setenv OUTPATH unxlngi3
setenv PRODUCT full
setenv GUI UNX
setenv GUIBASE unx
setenv COM GCC
setenv CPU I
setenv CPUNAME INTEL
setenv GVER VCL
setenv CVER C295
setenv USE_NAMESPACE TRUE
setenv UPDATER YES
setenv SOL_TMP $HOME
setenv SOLARINC "-I. -I$SRC_ROOT/sal/inc -I$SRC_ROOT/vos/inc
-I$SRC_ROOT/std2 -I$SRC_ROOT/std2/stl"
setenv SOLARLIB "-L$SRC_ROOT/sal/unxlngi3.pro/lib
-L$SRC_ROOT/vos/unxlngi3.pro/lib"
</PRE>
</TD>
</TR>
</TABLE>
<P>There is a stub version of the <CODE>_mkout</CODE>
and <CODE>makedepn</CODE> tools to build the core tools
located in the <CODE>$SRC_ROOT/solenv/bin</CODE>
directory. For information on the environment variables in this
file, see the <A HREF="http://tools.openoffice.org/build_env.html">Build Environment</A> document.</P>
</LI>
<LI>Build the <CODE>sal</CODE> project. Change to
the <CODE>sal</CODE> directory, then create a directory
for the operating system that you are porting to. If you are porting
to a POSIX functions-compliant operating system, you can create this
directory under the <CODE>unx</CODE> directory.
<P>Compile the code by executing the following commands:
</P>
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>cd $SRC_ROOT/sal</KBD>
% <KBD>mkdir</KBD> <VAR>platform-name</VAR>
% <KBD>dmake</KBD>
</PRE>
</TD>
</TR>
</TABLE>
</LI>
<LI>Manually install the files that
the next project needs by executing the following commands:
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>mkdir -p $SRC_ROOT/solver/$UPD/$OUTPATH.pro/inc/sal</KBD>
% <KBD>cp $SRC_ROOT/sal/version.mk $SRC_ROOT/$OUTPATH.pro/inc/sal</KBD>
</PRE>
</TD>
</TR>
</TABLE>
</LI>
<LI>Build the <CODE>vos</CODE>
project by performing the following steps. Compile the code by
executing the following commands.
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>cd $SRC_ROOT/vos</KBD>
% <KBD>dmake</KBD>
</PRE>
</TD>
</TR>
</TABLE>
</LI>
<LI>Manually install the files that
the next project needs by executing the following commands:
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>mkdir -p $SRC_ROOT/solver/$UPD/unxmacxp.pro/inc/vos</KBD>
% <KBD>cp $SRC_ROOT/vos/version.mk $SRC_ROOT/solver/$UPD/$OUTPATH.pro/inc/vos</KBD>
</PRE>
</TD>
</TR>
</TABLE>
</LI>
<LI>Build the <CODE>tools</CODE>
project. Run the following commands to compile the code:
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>cd $SRC_ROOT/tools</KBD>
% <KBD>dmake</KBD>
</PRE>
</TD>
</TR>
</TABLE>
</LI>
<LI>Install the build tools that were
compiled in the previous steps by executing the following commands:
<TABLE WIDTH=746 BORDER="1" CELLPADDING=5 CELLSPACING=0>
<TR>
<TD VALIGN=TOP>
<PRE>
% <KBD>cp $SRC_ROOT/tools/$OUTPATH.pro/bin/* $SRC_ROOT/solenv/$OUTPATH/bin</KBD>
% <KBD>cp $SRC_ROOT/rscpp/$OUTPATH.pro/bin/* $HOME/dev/solenv/$OUTPATH/bin</KBD>
% <KBD>chmod -Rf a+rx $SRC_ROOT/solenv/$OUTPATH/bin</KBD>
% <KBD>rehash</KBD>
</PRE>
</TD>
</TR>
</TABLE>
</LI>
</OL>
<P>You can now build the office suite.</P>
</body>
</html>