Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > bd5c3d824c3db63ffd9226c15941e6ad > files > 1440

mozart-1.4.0-1mdv2010.0.i586.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>6.3 Building Mozart</TITLE><LINK href="ozdoc.css" rel="stylesheet" type="text/css"></HEAD><BODY><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node8.html#section.cygwin.packages">&lt;&lt; Prev</A></TD><TD><A href="node6.html">- Up -</A></TD><TD><A href="node10.html#section.cygwin.documentation">Next &gt;&gt;</A></TD></TR></TABLE><DIV id="section.cygwin.building"><H2><A name="section.cygwin.building">6.3 Building Mozart</A></H2><P> Now we can get to the real thing. Retrieve the sources from the CVS: </P><BLOCKQUOTE class="code"><CODE>cvs&nbsp;-d&nbsp;cvs.mozart-oz.org:/services/mozart/CVS&nbsp;get&nbsp;mozart<BR>cvs&nbsp;-d&nbsp;cvs.mozart-oz.org:/services/mozart/CVS&nbsp;get&nbsp;mozart-stdlib</CODE></BLOCKQUOTE><P> (specify <CODE>-r&nbsp;mozart-1-3-0-fixes</CODE> to get the fixes branch). See <A href="http://www.mozart-oz.org/download/view.cgi?action=cvs">http://www.mozart-oz.org/download/view.cgi?action=cvs</A> for details about anonymous CVS. Let <I>mozart</I> be the directory created by the first <CODE>cvs&nbsp;get</CODE> command and <I>stdlib</I> the one created by the second. </P><DIV class="apropos"><P class="margin">Environment Variables</P><P> We need to start with a clean <CODE>PATH</CODE>, which in particular must not contain any Mozart installation. The following works on my system: </P><BLOCKQUOTE class="code"><CODE><SPAN class="builtin">export</SPAN>&nbsp;<SPAN class="variablename">PATH</SPAN>=/usr/bin:/bin:</CODE><I>emacs</I><CODE>/bin:/cygdrive/c/WINNT/system32:/cygdrive/c/WINNT</CODE></BLOCKQUOTE><P> Furthermore, we want to tell the configuration scripts where we placed our Windows DLLs: </P><BLOCKQUOTE class="code"><CODE><SPAN class="builtin">export</SPAN>&nbsp;<SPAN class="variablename">windlldir</SPAN>=</CODE><I>packages</I><CODE>/dlls</CODE></BLOCKQUOTE><P> </P></DIV><DIV class="apropos"><P class="margin">The Fun Part</P><P> Say we want to install Mozart into directory <I>install</I>. Then we can configure, build, and install Mozart as follows: </P><BLOCKQUOTE class="code"><CODE><SPAN class="builtin">cd</SPAN>&nbsp;</CODE><I>build</I><CODE>&nbsp;<BR>mkdir&nbsp;mozart-build<BR><SPAN class="builtin">cd</SPAN>&nbsp;mozart-build<BR><SPAN class="variablename">CXX</SPAN>=g++&nbsp;</CODE><I>mozart</I><CODE>/configure&nbsp;\&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;--prefix=</CODE><I>install</I><CODE>&nbsp;\&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;--with-inc-dir=</CODE><I>packages</I><CODE>/include&nbsp;\&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;--with-lib-dir=</CODE><I>packages</I><CODE>/lib&nbsp;\&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;--with-tcl=</CODE><I>packages</I><CODE>&nbsp;\&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;--with-tk=</CODE><I>packages</I><CODE>&nbsp;\&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;--disable-contrib-compat&nbsp;\&nbsp;<BR>make&nbsp;bootstrap<BR>make&nbsp;install</CODE></BLOCKQUOTE><P> <CODE>oztool</CODE> (which is required for building some of the contributions) does not work if given a cygwin symbolic link to the executable it should run. Currently cygwin has <CODE>c++</CODE> as a symbolic link to <CODE>g++</CODE>. We get around this by setting <CODE><SPAN class="variablename">CXX</SPAN>=g++</CODE> during the configure process, which will then choose <CODE>g++</CODE> as our default C++ compiler. </P></DIV><P> We will build the standard library in a different directory, but it will be installed in the same one where Mozart is. This is specified in during the configuration. Then we can configure, build, and install Mozart as follows: </P><BLOCKQUOTE class="code"><CODE><SPAN class="builtin">cd</SPAN>&nbsp;</CODE><I>build</I><CODE>&nbsp;<BR>mkdir&nbsp;stdlib-build<BR><SPAN class="builtin">cd</SPAN>&nbsp;stdlib-build<BR>../</CODE><I>stdlib</I><CODE>/configure&nbsp;--prefix=</CODE><I>install</I><CODE>&nbsp;<BR>make<BR>make&nbsp;install</CODE></BLOCKQUOTE><P> </P><P> A note on the configuration options: Most of these should be clear, they simply convey to the configuration scripts the knowledge of where we placed our packages. More information on configuration options can be found in <A href="node12.html#chapter.src.configure">Chapter&nbsp;7</A>. We have to disable the <CODE>compat</CODE> contrib because it does not build in bootstrap mode (yet). This is why we have to build it separately once we have our installed system: </P><BLOCKQUOTE class="code"><CODE><SPAN class="builtin">cd</SPAN>&nbsp;</CODE><I>build</I><CODE>&nbsp;<BR>mkdir&nbsp;compat-build<BR><SPAN class="builtin">cd</SPAN>&nbsp;compat-build<BR><SPAN class="builtin">export</SPAN>&nbsp;<SPAN class="variablename">PATH</SPAN>=</CODE><I>install</I><CODE>/bin:$<SPAN class="variablename">PATH</SPAN>&nbsp;<BR><SPAN class="variablename">CXX</SPAN>=g++&nbsp;</CODE><I>mozart</I><CODE>/contrib/compat/configure&nbsp;--with-global-oz&nbsp;--prefix=</CODE><I>install</I><CODE>&nbsp;<BR>mkdir&nbsp;share<BR>cp&nbsp;</CODE><I>build</I><CODE>/mozart-build/share/Makefile.boot&nbsp;share<BR>make<BR>make&nbsp;install</CODE></BLOCKQUOTE><P> And yeah, verily, thus and so - we're done. </P><DIV class="apropos"><P class="margin">Using Mozart</P><P> To use Mozart, you simply have to extend your <CODE>PATH</CODE>: </P><BLOCKQUOTE class="code"><CODE><SPAN class="builtin">export</SPAN>&nbsp;<SPAN class="variablename">PATH</SPAN>=</CODE><I>install</I><CODE>/bin:$<SPAN class="variablename">PATH</SPAN></CODE></BLOCKQUOTE><P> Then you can start <CODE>oz</CODE>, <CODE>ozc</CODE> and so on, as you would expect. </P></DIV></DIV><TABLE align="center" border="0" cellpadding="6" cellspacing="6" class="nav"><TR bgcolor="#DDDDDD"><TD><A href="node8.html#section.cygwin.packages">&lt;&lt; Prev</A></TD><TD><A href="node6.html">- Up -</A></TD><TD><A href="node10.html#section.cygwin.documentation">Next &gt;&gt;</A></TD></TR></TABLE><HR><ADDRESS><A href="http://www.ps.uni-sb.de/~duchier/">Denys&nbsp;Duchier</A>, <A href="http://www.ps.uni-sb.de/~kornstae/">Leif&nbsp;Kornstaedt</A>, <A href="http://www.ps.uni-sb.de/~scheidhr/">Ralf&nbsp;Scheidhauer</A> and&nbsp;<A href="http://www.ps.uni-sb.de/~schulte/">Christian&nbsp;Schulte</A><BR><SPAN class="version">Version 1.4.0 (20090610)</SPAN></ADDRESS></BODY></HTML>