68 lines
3.2 KiB
Tcsh
68 lines
3.2 KiB
Tcsh
#################################################################
|
|
# #
|
|
# Copyright 2007, 2010 Fidelity Information Services, Inc #
|
|
# #
|
|
# This source code contains the intellectual property #
|
|
# of its copyright holder(s), and is made available #
|
|
# under a license. If you do not know the terms of #
|
|
# the license, please stop and do not read further. #
|
|
# #
|
|
#################################################################
|
|
#
|
|
###########################################################################################
|
|
#
|
|
# check_unicode_support.csh - Checks if icu library and utf8 locale is available
|
|
# setenv is_unicode_support to TRUE/FALSE
|
|
# Returns :
|
|
# TRUE - if both icu library and utf8 locale is installed
|
|
# FALSE - if either of them is not available
|
|
###########################################################################################
|
|
|
|
set found_icu = 0
|
|
set utflocale = `locale -a | grep -i en_us | grep -i utf | grep '8$'`
|
|
if ("OS/390" == $HOSTOS) then
|
|
# z/OS has both en_US.UTF-8 and En_US.UTF-8 with both .xplink and .lp64 suffixes - we need .lp64
|
|
set utflocale = `locale -a | grep En_US.UTF-8.lp64 | sed 's/.lp64$//'`
|
|
endif
|
|
|
|
# This _could_ not work on new platforms or newly installed supported platforms.
|
|
# It should be manually tested using this command :
|
|
# ssh <some host> ls -l {/usr/local,/usr,}/lib{64,,32}/libicuio.{a,so,sl}
|
|
|
|
foreach libdir ( {/usr/local,/usr,}/lib{64,,32}/libicuio.{a,so,sl} )
|
|
# 36 is the least version GT.M supports for ICU.
|
|
# We have to get the numeric value from the ICU library. On non-AIX platforms, this can be done by
|
|
# first getting the library to which libicuio.so is pointing to (this is always TRUE, in the sense
|
|
# ICU always ships libicuio.so linked to the appropriate version'ed library).
|
|
# The ICU libraries are formatted like "libicu<ALPHANUM>.<EXT>.<MAJOR_VER><MINOR_VER>". So, we can
|
|
# use awk to get the last part of the 'ls -l' on libicuio.so and use awk and cut to get the version
|
|
# numbers. However on AIX and z/OS, ICU libraries are formatted like "libicu<ALPHANUM><MAJOR_VER><MINOR_VER>.<EXT>"
|
|
# and hence it is not as straightforward to extract the MAJOR_VER. So, we first eliminate the prefix
|
|
# part of the library name that contains libicu<ALPHANUM> using sed and use cut now to extract the
|
|
# version number.
|
|
if ( ! -l $libdir ) continue
|
|
|
|
set icu_versioned_lib = `ls -l $libdir | awk '{print $NF}'`
|
|
|
|
if ($HOSTOS == "AIX" || $HOSTOS == "OS/390") then
|
|
set icu_ver = `echo $icu_versioned_lib | sed 's/libicuio//g' | cut -f 1 -d '.'`
|
|
else
|
|
set icu_ver = `echo $icu_versioned_lib | cut -f 3 -d '.'`
|
|
endif
|
|
|
|
if ($icu_ver >= "36") then
|
|
set found_icu = 1
|
|
break
|
|
endif
|
|
end
|
|
# The calling gtm installation script should sould source this script in order to avoid duplication of 'setenv LD_LIBRARY_PATH'
|
|
# The gtm-internal test system runs it within `...` in a few places and sets the return value to an env variable
|
|
# To aid both the cases above, do a 'setenv is_unicode_support' as well as 'echo' of TRUE/FALSE
|
|
if ($found_icu && $utflocale != "") then
|
|
setenv is_unicode_support TRUE
|
|
echo "TRUE" # the system has unicode/utf8 support
|
|
else
|
|
setenv is_unicode_support FALSE
|
|
echo "FALSE" # the system doesn't have unicode/utf8 support
|
|
endif
|