DotGNU Portable.NET Source Installation Guide
This document explains how to install DotGNU
Portable.NET by building it from the source distribution. Visit the
Portable.NET Packages page
for instructions on installing the binary package distributions.
Source Code Downloads
The most recent version can be downloaded from the
Savannah's download area.
It may however be best to grab the latest development version
from Savannah CVS.
This project's CVS repository can be checked out through anonymous
CVS with the following instruction set.
cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/dotgnu-pnet co .
NOTE: Before you can build the cvs version, you need to run
auto_gen.sh in order to create the Makefile.in and
configure files.
Building
There are three main components that you must install in the following
order to use DotGNU Portable.NET:
treecc
pnet
pnetlib
And there are two optional components:
pnetC
ml-pnet
You will need "pnetC" if you wish to use the C compiler.
You may need "ml-pnet" if you wish to use Mono libraries
such as "System.Data".
Another component, "cscctest", is only available via CVS
because it changes very often - always use the most recent CVS version.
See the CVS instructions above for information on obtaining it.
You will need flex and bison to build DotGNU Portable.NET. We use
flex 2.5.4 and bison 1.28. Some support is provided for the BSD
version of yacc, but bison is recommended. Other versions of lex
or yacc may not work.
You typically unpack and install each component as follows:
gunzip -d <name-version.tar.gz | tar xvf -
cd name-version
./configure
make
make install
If you are building the CVS version, you should run ./auto_gen.sh
before ./configure.
See the "README" and "HACKING" files
(where present) in each distribution for further information on
install configuration options.
Most platforms will install and build using the above instructions.
The following sections provide special instructions for some platforms.
Building under MS Windows
You will need to install the Cygwin package to build DotGNU Portable.NET under
MS Windows. It can be obtained from http://sources.redhat.com/cygwin/.
Follow the instructions in the previous section to build the distribution.
This will build the Cygwin version, which can be installed and run from
within the Cygwin environment.
If you wish to run DotGNU Portable.NET as a regular MS Windows application,
outside the Cygwin environment, then you must build the "mingw32" version
instead. To do this, configure and build as follows:
gunzip -d <name-version.tar.gz | tar xvf -
cd name-version
./configure --disable-cygwin
make
make install
Building under Mac OS X
Install the development tools from the Developer Tools CD that should be
included with your pack of Mac CDs. If you don't have the CD, get an account
at connect.apple.com and download
from the net. The download is well over 100 megabytes.
Next, install Fink (fink.sourceforge.net). Using the GUI program Fink Commander,
install the package called libtool. Alternatively, this can
be done from a terminal by typing "sudo apt-get install libtool"
(without quotes) and entering an administrative password.
For each directory in treecc, pnet, pnetlib, etc, perform the following
command:
./configure && make LIBTOOL=glibtool && sudo make install LIBTOOL=glibtool
Type in your usual admin password for the account on your computer when
it asks for it (towards the end of each install).
It is important that you use the Fink version of the "glibtool"
program when compiling "pnetlib". Other versions of
libtool will not work.
Getting a more recent version
The most recent release version of the source code will always be
available on the project's Download site.
However, it is recommended that developers use the CVS version when
updating the source code. The CVS version will always be more recent
than the release versions.
cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/dotgnu-pnet co .
where component is the name of the component that you
wish to check out. When prompted for a password, just hit the Enter key.
NOTE: Before you can build the cvs version, you need to run
auto_gen.sh in order to create the Makefile.in and
configure files.
Running the examples
Once you have built the system, you can test it on the examples within
the "samples" directory:
$ cd samples
$ ../engine/ilrun hello.exe
$ ../engine/ilrun fib.exe
The PNetMark program, listed above, is a more involved example.
Instructions for running PNetMark can be found within its
README file. You may also want to have a look at
the "demos and sample programs" webpage.
Documentation
Online documentation for the tools can be found
here.
Information on changes to individual versions can be found in the
NEWS file within the distribution.
The Converted Virtual Machine (CVM) instruction set has been documented
using embedded XML tags in the source. A HTML version of the documentation
can be found here.
Common problems
Some platforms may have problems building "libffi" and
"libgc". You can use the configure options
"--without-libffi" and "--without-libgc" to
disable them. The system may not fully work if you do this, so you
will probably have to update those packages for your platform.
Sometimes "./auto_gen.sh" can fail, giving errors about
missing LIBTOOL macros. If this happens, then change the line that
says "aclocal" to "aclocal -I ./" and retry.