Skip to content

Commit

Permalink
V6.3-000
Browse files Browse the repository at this point in the history
  • Loading branch information
shabiel committed Apr 12, 2016
1 parent b7137a2 commit 60e7e2d
Show file tree
Hide file tree
Showing 2,601 changed files with 194,062 additions and 18,358 deletions.
154 changes: 86 additions & 68 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#################################################################
# #
# Copyright 2012, 2014 Fidelity Information Services, Inc #
# Copyright (c) 2012-2016 Fidelity National Information #
# Services, Inc. and/or its subsidiaries. All rights reserved. #
# #
# This source code contains the intellectual property #
# of its copyright holder(s), and is made available #
Expand All @@ -26,7 +27,7 @@ foreach(lang ${languages})
endforeach()

# Defaults
set(version V6.2-002A)
set(version V6.3-000)
if("${version}" STREQUAL "")
set(version V9.9-0)
endif()
Expand All @@ -36,12 +37,6 @@ if(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
endif()

if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
set(GTM_BUILD_TYPE "pro")
elseif("${CMAKE_BUILD_TYPE}" STREQUAL "Debug")
set(GTM_BUILD_TYPE "dbg")
endif()

# Enable GT.M debug options unless directed not to enable them. Added to build without whitebox tests.
set(GTM_ENABLE_DEBUG 1 CACHE BOOL "Enable GT.M debug options")
if(GTM_ENABLE_DEBUG)
Expand All @@ -63,7 +58,7 @@ set(gen_xfer_desc 0)
set(gtm_osarch_libs "")

# Define these ahead of establishing platforms
set(gt_src_list)
set(gt_src_list gen)
set(sources_used "")
set(extralibs "")
message("--> OS = ${CMAKE_SYSTEM_NAME} / ARCH = ${CMAKE_SYSTEM_PROCESSOR}")
Expand Down Expand Up @@ -129,18 +124,18 @@ foreach(d ${gt_src_list})
file(GLOB sources_${d} RELATIVE ${source_dir_${d}}
${d}/*.c ${d}/*.s ${d}/*.si ${d}/*.txt)
endforeach()
# Prefer generated sources over all other locations.
file(MAKE_DIRECTORY ${GTM_BINARY_DIR}/gen)
set(source_dir_gen ${GTM_BINARY_DIR}/gen)
# Hard-code list since we cannot glob files that do not exist.
set(sources_gen gtm_threadgbl_deftypes.h gtm_threadgbl_deftypes_asm.si)
if(gen_bootstrap)
# Prefer generated sources over all other locations.
set(gt_src_list gen ${gt_src_list})
set(source_dir_gen ${GTM_BINARY_DIR}/gen)
# Hard-code list since we cannot glob files that do not exist.
set(sources_gen cmerrors_ctl.c cmierrors_ctl.c gdeerrors_ctl.c merrors_ctl.c ttt.c
gtmthreadgblasm.m gtm_threadgbl_deftypes.h gtm_threadgbl_deftypes_asm.si)
set(sources_gen ${sources_gen} cmerrors_ctl.c cmierrors_ctl.c gdeerrors_ctl.c merrors_ctl.c ttt.c)
endif()

# The C preprocessor include search path consists of every source
# directory ordered by 'gt_src_list'.
set(includes)
set(includes ${GTM_BINARY_DIR}/gen)
foreach(d ${gt_src_list})
list(APPEND includes ${source_dir_${d}})
endforeach()
Expand Down Expand Up @@ -236,7 +231,7 @@ set(source_used_dtgbldir.c 1) # exclude unused source
set(libmumps_SOURCES "")
foreach(d ${gt_src_list})
foreach(s ${sources_${d}})
if(NOT source_used_${s})
if(NOT source_used_${s} AND "${s}" MATCHES "\\.(c|s|si)$")
list(APPEND libmumps_SOURCES ${d}/${s})
set(source_used_${s} 1)
list(APPEND sources_used ${source_dir_${d}}/${s})
Expand Down Expand Up @@ -341,53 +336,31 @@ endif()
add_executable(gtm_threadgbl_deftypes ${gtm_threadgbl_deftypes_SOURCES})
if(gen_xfer_desc)
add_dependencies(gtm_threadgbl_deftypes gen_xfer_desc)
elseif(gen_bootstrap)
add_dependencies(gtm_threadgbl_deftypes gen_bootstrap)
endif()

if(gen_bootstrap)
add_custom_command(
OUTPUT gen/gtm_threadgbl_deftypes.h
DEPENDS gtm_threadgbl_deftypes
COMMAND gtm_threadgbl_deftypes > gen/gtm_threadgbl_deftypes.h
)
set(gtmthreadgblasmaccess "${gtmthreadgblasmaccessdir}/gtm_threadgbl_asm_access.txt")
select_file(gtmthreadgblasmaccess "gtm_threadgbl_asm_access.txt")
add_custom_command(
OUTPUT ${GTM_BINARY_DIR}/gen/gtmthreadgblasm.m
DEPENDS ${GTM_SOURCE_DIR}/sr_unix/gtmthreadgblasm.m
COMMAND ${CMAKE_COMMAND} -E copy ${GTM_SOURCE_DIR}/sr_unix/gtmthreadgblasm.m ${GTM_BINARY_DIR}/gen/gtmthreadgblasm.m
)
add_custom_command(
OUTPUT ${GTM_BINARY_DIR}/gen/gtm_threadgbl_deftypes_asm_${GTM_BUILD_TYPE}.si
DEPENDS ${GTM_BINARY_DIR}/gen/gtmthreadgblasm.m gen/gtm_threadgbl_deftypes.h ${gtmthreadgblasmaccess}
${GTM_SOURCE_DIR}/sr_unix/mumps.cmake ${gen_bootstrap_depend}
WORKING_DIRECTORY ${GTM_BINARY_DIR}/gen
COMMAND ${CMAKE_COMMAND}
-D gtm_dist=${gen_bootstrap_dist}
-D gtm_inc=${GTM_BINARY_DIR}/gen
-D gtmroutines=.
-D mumps=${gen_bootstrap_mumps}
-D "args=-r;gtmthreadgblasm;${gtmthreadgblasmaccess};gtm_threadgbl_deftypes.h;gtm_threadgbl_deftypes_asm_${GTM_BUILD_TYPE}.si"
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
VERBATIM
)
add_custom_command(
OUTPUT gen/gtm_threadgbl_deftypes_asm.si
DEPENDS gen/gtm_threadgbl_deftypes_asm_${GTM_BUILD_TYPE}.si
COMMAND ${CMAKE_COMMAND} -E copy gen/gtm_threadgbl_deftypes_asm_${GTM_BUILD_TYPE}.si gen/gtm_threadgbl_deftypes_asm.si
)
add_custom_target(gen_gtm_threadgbl_deftypes
DEPENDS ${GTM_BINARY_DIR}/gen/gtm_threadgbl_deftypes.h ${GTM_BINARY_DIR}/gen/gtm_threadgbl_deftypes_asm.si)
else()
select_file(gtm_threadgbl_deftypes_asm "gtm_threadgbl_deftypes_asm_${GTM_BUILD_TYPE}.si")
add_custom_command(
OUTPUT gtm_threadgbl_deftypes_asm.si
DEPENDS ${gtm_threadgbl_deftypes_asm}
COMMAND ${CMAKE_COMMAND} -E copy ${gtm_threadgbl_deftypes_asm} gtm_threadgbl_deftypes_asm.si
)
add_custom_target(gen_gtm_threadgbl_deftypes DEPENDS gtm_threadgbl_deftypes_asm.si)
endif()
# gtm_threadgbl_deftypes
set(gtmthreadgblasmhdr "gen/gtm_threadgbl_deftypes.h")
add_custom_command(
OUTPUT ${gtmthreadgblasmhdr}
DEPENDS gtm_threadgbl_deftypes
COMMAND gtm_threadgbl_deftypes > ${gtmthreadgblasmhdr}
)
# gtm_threadgbl_deftypes_asm.si
set(gtmthreadgblasmfile "gen/gtm_threadgbl_deftypes_asm.si")
select_file(gtmthreadgblasmaccess "gtm_threadgbl_asm_access.txt")
add_custom_command(
OUTPUT ${gtmthreadgblasmfile}
DEPENDS ${gtmthreadgblasmhdr}
COMMAND ${CMAKE_COMMAND}
-D "gtmthreadgblasmfile=${gtmthreadgblasmfile}"
-D "gtmthreadgblasmhdr=${gtmthreadgblasmhdr}"
-D "gtmthreadgblasmaccess=${gtmthreadgblasmaccess}"
-P ${GTM_SOURCE_DIR}/${srdir}/gen_threadgbl_asm.cmake
VERBATIM
)

add_custom_target(gen_gtm_threadgbl_deftypes
DEPENDS ${GTM_BINARY_DIR}/${gtmthreadgblasmhdr} ${GTM_BINARY_DIR}/${gtmthreadgblasmfile})

foreach(exp exe shr)
set(out gtm${exp}_symbols.export)
Expand Down Expand Up @@ -664,13 +637,15 @@ set(m_files_sr_port
gdetempl.m
)
file(GLOB m_files_sr_unix RELATIVE ${GTM_SOURCE_DIR}/sr_unix ${GTM_SOURCE_DIR}/sr_unix/*.m)
file(GLOB m_files_sr_x86_64 RELATIVE ${GTM_SOURCE_DIR}/sr_x86_64 ${GTM_SOURCE_DIR}/sr_x86_64/*.m)
file(GLOB m_files_sr_i386 RELATIVE ${GTM_SOURCE_DIR}/sr_i386 ${GTM_SOURCE_DIR}/sr_i386/*.m)
file(GLOB mpt_files_sr_port RELATIVE ${GTM_SOURCE_DIR}/sr_port ${GTM_SOURCE_DIR}/sr_port/*.mpt)
file(GLOB mpt_files_sr_unix RELATIVE ${GTM_SOURCE_DIR}/sr_unix ${GTM_SOURCE_DIR}/sr_unix/*.mpt)

set(gtm_chset_dir_ "")
set(gtm_chset_dir_UTF-8 "/utf8")

foreach(d sr_port sr_unix)
foreach(d ${gt_src_list})
foreach(m ${m_files_${d}})
get_filename_component(m_name "${m}" NAME_WE)
string(TOUPPER "${m_name}" m_upper)
Expand All @@ -686,7 +661,12 @@ foreach(d sr_port sr_unix)
list(APPEND gtm_chset_routines_${gtm_chset} "${m_out}")
endforeach()
else()
set(m_out "${GTM_BINARY_DIR}/${m_upper}.m")
if(";${m_name};" MATCHES ";GTMDefinedTypesInit[a-zA-Z]*;")
set(m_out "${GTM_BINARY_DIR}/${m_name}.m")
set(${m_name}_found 1)
else()
set(m_out "${GTM_BINARY_DIR}/${m_upper}.m")
endif()
add_custom_command(
OUTPUT "${m_out}"
DEPENDS ${GTM_SOURCE_DIR}/${d}/${m}
Expand Down Expand Up @@ -774,10 +754,31 @@ else()
message(FATAL_ERROR "Unable to find 'icu-config'. Set ICUCONFIG in CMake cache.")
endif()

if (gtm_icu_version GREATER 10)
message("libicu version ${gtm_icu_version} > 10")
string(REGEX REPLACE "([0-9])([0-9]).*" "\\1.\\2" gtm_icu_version "${gtm_icu_version}")
message("Fixing gtm_icu_version to ${gtm_icu_version}.\nThis had better be the default")
find_program(LOCALECFG NAMES locale)
if(LOCALECFG)
execute_process(
COMMAND ${LOCALECFG} -a
OUTPUT_VARIABLE locale_list
RESULT_VARIABLE locale_failed
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if(locale_failed)
message(FATAL_ERROR "Command\n ${LOCALECFG} -a\nfailed (${locale_failed}).")
endif()
STRING(REGEX REPLACE "\n" ";" locale_list "${locale_list}")
foreach(lc ${locale_list})
string(TOLOWER "${lc}" lc_lower)
if("x${lc_lower}" MATCHES "^xen_us\\.?utf-?8")
set(LC_ALL ${lc})
message("-- Setting locale to ${LC_ALL}")
break()
endif()
endforeach(lc)
if("${LC_ALL}" STREQUAL "")
message("Locale undefined. Expect to see NONUTF8LOCALE during MUMPS routine compilation\n")
endif()
else()
message(FATAL_ERROR "Unable to find 'locale'. Set LOCALECFG in CMake cache.")
endif()

foreach(gtm_chset "" "UTF-8")
Expand All @@ -792,6 +793,7 @@ foreach(gtm_chset "" "UTF-8")
-D gtmroutines=.
-D gtm_chset=${gtm_chset}
-D gtm_icu_version=${gtm_icu_version}
-D LC_ALL=${LC_ALL}
-D mumps=$<TARGET_FILE:mumps>
-D "args=${in}"
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
Expand Down Expand Up @@ -850,6 +852,22 @@ Halt")
install(FILES ${GTM_BINARY_DIR}/${help}help.dat DESTINATION ${GTM_INSTALL_DIR})
install(FILES ${GTM_BINARY_DIR}/${help}help.gld DESTINATION ${GTM_INSTALL_DIR})
endforeach()
if (GTMDefinedTypesInit${CMAKE_BUILD_TYPE}_found)
add_custom_command(
OUTPUT GTMDEFINEDTYPESTODB.o
DEPENDS gtmhelp.dat gtmhelp.gld GTMDefinedTypesInit${CMAKE_BUILD_TYPE}.m
COMMAND ${CMAKE_COMMAND} -E copy GTMDefinedTypesInit${CMAKE_BUILD_TYPE}.m ${GTM_BINARY_DIR}/GTMDefinedTypesInit.m
COMMAND ${CMAKE_COMMAND}
-D gtm_dist=${GTM_BINARY_DIR}
-D gtmroutines=.
-D gtmgbldir=${GTM_BINARY_DIR}/gtmhelp
-D mumps=$<TARGET_FILE:mumps>
-D "args=-run;GTMDEFINEDTYPESTODB"
-P ${GTM_SOURCE_DIR}/sr_unix/mumps.cmake
VERBATIM
)
list(APPEND files_to_place GTMDEFINEDTYPESTODB.o)
endif(GTMDefinedTypesInit${CMAKE_BUILD_TYPE}_found)
#-----------------------------------------------------------------------------

set(GTM_TOP "${GTM_BINARY_DIR}")
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
All software in this package is part of FIS GT.M (http://fis-gtm.com) which is Copyright 2015 Fidelity Information
All software in this package is part of FIS GT.M (http://fis-gtm.com) which is Copyright 2016 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
Expand Down
45 changes: 11 additions & 34 deletions README
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
All software in this package is part of FIS GT.M (http://fis-gtm.com)
which is Copyright 2015 Fidelity Information Services, Inc., and
which is Copyright 2016 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
Expand All @@ -11,52 +11,29 @@ package.
GT.M relies on CMake to generate the Makefiles to build GT.M from source. The
prerequisites are CMake (at least 2.8.5), GNU make (at least 3.81), Linux
(either x86 or x86_64), libraries and development files for libz, Unicode,
OpenSSL and GPG. Debian 6, Ubuntu 12.04/14.04 LTS and RHEL 6.0 were used to do
OpenSSL and GPG. Debian 7, Ubuntu 12.04/14.04 LTS and RHEL 6.0 were used to do
the test builds for this distribution. The default ICU and GPG packages were
taken from the distribution repositories.

To build GT.M for Linux, do the following steps:

1. Fulfill the pre-requisites
Install developement libraries libelf, zlib, libicu, libgpgme, libgpg-error,
libgcrypt, libssl, libconfig.

Ensure that your locale settings are correct, otherwise you will see
GTM-E-NONUTF8LOCALE messages. Refer the Messages and Recovery Procedures
Manual if you do encounter these messages. The following should give you a
valid locale:

$ locale -a | gawk 'BEGIN{IGNORECASE=1}/en_us.utf-*8/{print;exit}'
en_US.utf8
$ export LANG=C LC_ALL= LC_CTYPE="<answer from above>" LC_COLLATE=C

[optional] The GT.M source tarball includes pre-generated files. To generate
these files requires a binary distribution of GT.M. 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 V6.2-002A is /opt/fis-gtm/V6.2-002A_i586 or
/opt/fis-gtm/V6.2-002A_x8664. These instructions are written using x8664, please
use i586 as necessary.

$ tar xfz gtm_V62002A_linux_x8664_pro.tar.gz

# Note down the installation path for use with cmake below

$ sudo sh ./configure
libgcrypt, libssl, libconfig. There may be other library dependencies. If
CMake issues a NOTFOUND error, please see the FAQ below.

2. Unpack the GT.M sources
The GT.M source tarball extracts to a directory with the version number in
the name, fis-gtm-V6.2-002A
$ tar xfz fis-gtm-V6.2-002A.tar.gz
$ cd fis-gtm-V6.2-002A
the name, fis-gtm-V6.3-000
$ tar xfz fis-gtm-V6.3-000.tar.gz
$ cd fis-gtm-V6.3-000

You should find this README, LICENSE, COPYING and CMakeLists.txt file and
sr_* source directories.

3. Building GT.M -
<fis-gtm-build> can be a sub directory of the source directory,
fis-gtm-V6.2-002A, or any other valid path.
fis-gtm-V6.3-000, or any other valid path.

$ mkdir <fis-gtm-build>
$ cd <fis-gtm-build>
Expand All @@ -75,16 +52,16 @@ To build GT.M for Linux, do the following steps:
#
# -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package
#
$ cmake -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package <path to>/fis-gtm-V6.2-002A
$ cmake -D CMAKE_INSTALL_PREFIX:PATH=${PWD}/package <path to>/fis-gtm-V6.3-000

$ make

$ make install

$ cd package/lib/fis-gtm/V6.2-002A_x86_64
$ cd package/lib/fis-gtm/V6.3-000_x86_64

# Now you are ready to install GT.M. Answer a few questions and install it.
# The recommended installation path is /opt/fis-gtm/V6.2-002A_x86_64
# The recommended installation path is /opt/fis-gtm/V6.3-000_x86_64

$ sudo ./configure

Expand Down
Loading

0 comments on commit 60e7e2d

Please sign in to comment.