Building NOM
Note that this information is for the OS/2 build. This is a first draft. It's quite possible some stuff is missing (e.g. some non-standard library I have installed but forgot about).
If you have problems visit the #netlabs channel on the eCS IRC network and try to catch Cinc.
Prerequisites
The following tools must be installed properly
- GCC V3.3.x
- GNU make V3.81r1 (other versions may or may not work)
- GLIB V2.6.5 libs and headers (or possibly any later version)
- A *nix alike shell. Look here for a version of ash which may (or may not) suit your needs: ftp://ftp.netlabs.org/pub/libc/alpha/
- The GNU file utilities like cp, rm,... ftp://ftp.netlabs.org/pub/libc/alpha/
- GNU text utilities
- Autoconf 2.59 and friends if configure fails for you
- pkgconfig-0.18
- popt-1.7
Note that the links are for the OS/2 versions of the various packages. For other platforms you have to look somewhere else.
Getting the source
The source is available in the netlabs.org SVN repository. All development is done in the trunk atm.
You have to install the subversion client for OS/2. Get it from http://silk.apana.org.au/subversion/. Just put the binaries in your path and set your HOME directory in config.sys (you need a home dir anyway for most *nix programs).
SET HOME=x:\my_home_dir
Create a working directory on your system, cd into it and check out the source. I strongly recommend to put the sources on the same drive your *nix tree is located.
This will get all the stuff including everything what's deprecated.
Compiling It
There's no main makefile atm. You have to build the various pieces on your own in the order shown below.
Note that you may safely ignore the ORBit2-2.14.0 directory.
Before you start change the paths in x:/source_base/nom/trunk/make.inc to match your setup.
Garbage Collector
NOM uses garbage collected memory only. Go to http://www.hpl.hp.com/personal/Hans_Boehm/gc/index.html if you want to learn more about the GC. The GC will be statically linked to the NOM runtime.
- CD into x:/source_base/nom/trunk/gc6.8
- Run ./configure
- If configure fails, fix the problem and try again...
- Run make
Note that this is a typical *nix package. Having a sane build environment is key to success. Failing 'configure' is not a rare thing but more or less the rule.
Be sure to have several different releases of gmake around for trying.
Be sure to have several different autoconf packages around to recreate the configure script if necessary.
Set the config.sys variables properly according to the various readme files. The following environment variables may be useful for you:
- SET MAKESHELL=...
- SET MAKE_SHELL=...
- SET CONFIG_SHELL=...
- SET CONFIG_SITE=...
- SET UNIXROOT=<drive letter with your *nix stuff>
- SET M4=...
- SET AC_PREFIX=...
IDL Compiler
- CD into .../nom/trunk/idl-compiler
- Run make
After successfully building the compiler you should have a bin directory holding the executable (nom-idl-compiler.exe).
x:\source_base\bin
NOM Kernel and Runtime
- CD into .../nom/trunk/nom
- Change the paths in make.inc to match your setup
- Run make
Test program
- CD into .../nom/trunk/test
- Run make
The resulting executable nom-test.exe can be found in x:\source_base\bin.
Running it shouldn't show any errors.