GT.M High end TP database engine
Go to file
Luis Ibanez 45896c02f9 ENH: Isolated sr_port files that are 64 bits specific.
A couple of files in the sr_port directory are not intended to
be used in 32 bits platforms.
2012-02-19 10:43:42 -05:00
fis-gtm-src-extras ENH: Adding the extra files generated by mumps. 2012-02-16 22:19:49 -05:00
sr_i386 ENH: Improved CMakeLists.txt files in first directories. 2012-02-18 20:38:50 -05:00
sr_linux ENH: Improved CMakeLists.txt files in first directories. 2012-02-18 20:38:50 -05:00
sr_port ENH: Isolated sr_port files that are 64 bits specific. 2012-02-19 10:43:42 -05:00
sr_port_cm ENH: Added sr_port and sr_port_cm. 2012-02-18 22:32:55 -05:00
sr_unix ENH: Configured sr_unix_gnp directory. 2012-02-18 21:59:23 -05:00
sr_unix_cm ENH: Configuring sr_unix_cm and sr_unix_nsb directories. 2012-02-18 21:11:03 -05:00
sr_unix_gnp ENH: Configured sr_unix_gnp directory. 2012-02-18 21:59:23 -05:00
sr_unix_nsb ENH: Configuring sr_unix_cm and sr_unix_nsb directories. 2012-02-18 21:11:03 -05:00
sr_x86_64 ENH: Added CMakeLists.txt file for sr_x86_64. 2012-02-19 10:24:41 -05:00
sr_x86_regs ENH: Initial import from sourceforge. 2012-02-05 11:35:58 -05:00
CMakeLists.txt ENH: Add CMake selection of 64 vs 32 bits. 2012-02-19 10:19:50 -05:00
COPYING ENH: Initial import from sourceforge. 2012-02-05 11:35:58 -05:00
README ENH: Initial import from sourceforge. 2012-02-05 11:35:58 -05:00
gtmconfig.h.in ENH: Improved CMakeLists.txt files in first directories. 2012-02-18 20:38:50 -05:00

README

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