= 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 [http://www.ecomstation.com/community.phtml?url=nls/en/content/ircnetwork.html&title=eComStation%20IRC%20Network%20Explained eCS IRC network] and try to catch Cinc. == Prerequisites == The following tools must be installed properly * GCC [http://svn.netlabs.org/libc V3.3.x] * [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=make+3.81&stype=all&sort=type&dir=%2Fpub%2Fos2 GNU make V3.81r1] (other versions may or may not work) * [http://hobbes.nmsu.edu/cgi-bin/h-search?sh=1&button=Search&key=glib&stype=all&sort=type&dir=%2Fpub%2Fos2 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 * [ftp://ftp.netlabs.org/pub/gcc/contrib/libs/ pkgconfig-0.18] * [ftp://ftp.netlabs.org/pub/gcc/contrib/libs/ 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. ''svn co http://svn.netlabs.org/repos/voyager/nom/'' 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. 1. CD into ''x:/source_base/nom/trunk/gc6.8'' 1. Run ''./configure'' 1. If configure fails, fix the problem and try again... 1. 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= * SET M4=... * SET AC_PREFIX=... === IDL Compiler === 1. CD into ''.../nom/trunk/idl-compiler'' 1. 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 === 1. CD into ''.../nom/trunk/nom'' 1. Change the paths in ''make.inc'' to match your setup 1. Run ''make'' === Test program === 1. CD into ''.../nom/trunk/test'' 1. Run ''make'' The resulting executable ''nom-test.exe'' can be found in ''x:\source_base\bin''. Running it shouldn't show any errors.