107 lines
4.4 KiB
Plaintext
107 lines
4.4 KiB
Plaintext
|
The make file enclosed (sr_unix/comlist.mk) will build GT.M from source.
|
||
|
The prerequisites are GNU make, GT.M binary installation (which you can
|
||
|
download from http://sourceforge.net/projects/fis-gtm/), Linux x86, tcsh,
|
||
|
Unicode and GPG include files. Unicode include files are automatically
|
||
|
installed if ICU is installed. GPG include files require installing the
|
||
|
GNUPG and related library development packages. GNU make 3.81,
|
||
|
Ubuntu 10.04 LTS and RHEL 5.0 were used to do the test builds for this
|
||
|
distribution. The default ICU and GPG packages were taken from the OS
|
||
|
vendors' repositories.
|
||
|
|
||
|
To build a production version GT.M for linux do the following steps:
|
||
|
1. Fulfill the pre-requisites.
|
||
|
Download and install GT.M binary distribution from SourceForge if you
|
||
|
do not have GT.M installed already. The build procedure needs an
|
||
|
existing GT.M mumps installed on the machine.
|
||
|
|
||
|
You can download GT.M from http://sourceforge.net/projects/fis-gtm/
|
||
|
Unpack the tar file and run the configure script as root. Note: the tar
|
||
|
file unpacks everything into your current working directory, not a new
|
||
|
subdirectory. The Linux Standard Base (LSB) install path for GT.M
|
||
|
V54002 is /opt/lsb-gtm/V5.4-002_i686 or /opt/lsb-gtm/V5.4-002_x8664.
|
||
|
$ tar xfz gtm_V54002_linux_i686_src.tar.gz
|
||
|
$ sudo sh ./configure
|
||
|
|
||
|
2. Unpack the GT.M sources
|
||
|
Change directory in the directory that you will place the GT.M source,
|
||
|
here after referred to as <gtm-directory>.
|
||
|
$ mkdir <gtm-directory>
|
||
|
$ cd <gtm-directory>
|
||
|
$ tar xfz gtm_V54002_linux_i686_src.tar.gz
|
||
|
|
||
|
You should find this README, COPYING file and sr_* source directroies.
|
||
|
|
||
|
3. Define environment variables needed to build GT.M
|
||
|
You will need to use tcsh to build GT.M. GT.M uses several csh script
|
||
|
files the define environment variables used in the build process. You
|
||
|
will need to define several variables prior to intiating your GT.M build.
|
||
|
|
||
|
- Define 'gtm_curpro' and 'gtm_exe' so that you can compile M programs.
|
||
|
This is the directory in which you installed the GT.M binaries from
|
||
|
SourceForge.
|
||
|
$ setenv gtm_curpro <path to installed GT.M>
|
||
|
$ setenv gtm_exe $gtm_curpro
|
||
|
$ setenv HOSTOS `uname -s`
|
||
|
|
||
|
- Define 'gtm_tools' and 'gtm_inc'
|
||
|
$ setenv gtm_tools $PWD/sr_linux
|
||
|
$ setenv gtm_inc $PWD/sr_linux
|
||
|
|
||
|
- [OPTIONAL] Ubuntu users must define 'distro'
|
||
|
$ setenv distro ubuntu
|
||
|
|
||
|
- [OPTIONAL] By default the build procedure will build 64 bit version of
|
||
|
GT.M on a x86_64 bit machine.
|
||
|
If you intend to build 32 bit version of GT.M on a x86_64 bit machine you
|
||
|
have to explicitly set the environment variable 'OBJECT_MODE' to '32'
|
||
|
$ setenv OBJECT_MODE 32
|
||
|
|
||
|
- Specify which ICU version is installed.
|
||
|
ICU version needs to be of the form #.# If the result of running
|
||
|
"icu-config --version" has the form #.#.#, just use the first two
|
||
|
parts. For example, if "icu-config --version" returns 3.8.1, use
|
||
|
3.8 in the "setenv" step.
|
||
|
$ icu-config --version
|
||
|
$ setenv gtm_icu_version <result of previous step>
|
||
|
|
||
|
- Define 'gtm_version_change' and execute gtm_env.csh
|
||
|
$ setenv gtm_version_change 1
|
||
|
$ source sr_unix/gtm_env.csh
|
||
|
|
||
|
4. Building GT.M -
|
||
|
|
||
|
By default, the gmake will build a production version GT.M. The build type
|
||
|
of GT.M can be controlled by a parameter "buildtypes" - dbg (debug),
|
||
|
bta (beta), and pro (production). Passing a subset of dbg, bta, or pro in
|
||
|
"buildtypes" from the environment or the command line will build that subset.
|
||
|
For example:
|
||
|
|
||
|
gmake -f sr_unix/comlist.mk -I./sr_unix -I./sr_linux buildtypes=dbg gtm_ver=$PWD
|
||
|
|
||
|
will build just a debuggable GT.M release.
|
||
|
|
||
|
You can clean your builds by appending 'clean' to the make line.
|
||
|
For example:
|
||
|
gmake -f sr_unix/comlist.mk -I./sr_unix -I./sr_linux buildtypes=dbg gtm_ver=$PWD clean
|
||
|
|
||
|
5. Packaging GT.M -
|
||
|
|
||
|
Once the required builds have been done the object distribution can be
|
||
|
tar'ed by doing:
|
||
|
|
||
|
gmake -f sr_unix/comlist.mk -I./sr_unix -I./sr_linux gtm_ver=$PWD package
|
||
|
|
||
|
Again, buildtypes can be used to package just a subset. For example:
|
||
|
|
||
|
gmake -f sr_unix/comlist.mk -I./sr_unix -I./sr_linux buildtypes=pro gtm_ver=$PWD package
|
||
|
|
||
|
Appendix: Known warnings and errors
|
||
|
- "cc1: note: obsolete option -I- used, please use -iquote instead"
|
||
|
You can safely ignore this warning
|
||
|
|
||
|
- "chk2lev.mdep:2: *** missing separator. Stop."
|
||
|
tcsh is using the builtin echo, you need to set the environment variable
|
||
|
'distro' to 'ubuntu' and clean your build.
|
||
|
$ setenv distro ubuntu
|
||
|
|