<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>

