GT.M High end TP database engine
Go to file
Luis Ibanez f8183f64f3 WIP: Fix mumps.list 2012-06-13 14:10:29 -04:00
sr_i386 WIP: Fix mumps.list 2012-06-13 14:10:29 -04:00
sr_linux ENH: Version 5.5000 from sourceforge. 2012-03-24 14:06:46 -04:00
sr_port ENH: Version 5.5000 from sourceforge. 2012-03-24 14:06:46 -04:00
sr_port_cm ENH: Version 5.5000 from sourceforge. 2012-03-24 14:06:46 -04:00
sr_unix ENH: Version 5.5000 from sourceforge. 2012-03-24 14:06:46 -04:00
sr_unix_cm ENH: Version 5.5000 from sourceforge. 2012-03-24 14:06:46 -04:00
sr_unix_gnp ENH: Version 5.5000 from sourceforge. 2012-03-24 14:06:46 -04:00
sr_unix_nsb ENH: Version 5.5000 from sourceforge. 2012-03-24 14:06:46 -04:00
sr_x86_64 WIP: Fix mumps.list 2012-06-13 14:10:29 -04:00
sr_x86_regs ENH: Initial import from sourceforge. 2012-02-05 11:35:58 -05:00
CMakeLists.txt WIP: Working our way through list of sources. 2012-06-13 11:43:15 -04:00
COPYING ENH: Initial import from sourceforge. 2012-02-05 11:35:58 -05:00
README ENH: Version 5.5000 from sourceforge. 2012-03-24 14:06:46 -04:00
gtmexe_symbols.export WIP: Sample exe export link script 2012-06-13 14:09:53 -04:00

README

All software in this package is part of FIS GT.M (http://fis-gtm.com) 
which is Copyright 2012 Fidelity Information Services, Inc., and
provided to you under the terms of a license. If there is a COPYING 
file included in this package, it contains the terms of the license under
which the package is provided to you. If there is not a COPYING file in
the package, you must ensure that your use of FIS GT.M complies with the
license under which it is provided. If you are unsure as to the terms of
your license, please consult with the entity that provided you with the package.

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