fis-gtm/sr_unix/get_lib_dirs.mk

152 lines
3.9 KiB
Makefile

#################################################################
# #
# Copyright 2002, 2011 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. #
# #
#################################################################
############### Define platform-specific directory ring-down ##################################
# The purpose of this file is to define the source directories
# for each platform
# It also defines
# - gt_build_type <--- significance for 32bit Linux
# - gt_use_nsb <--- 32bit Linux and CYGWIN use NSB
# - gt_build_xfer_desc <- ia64/x86_64 Linuxen and HPUX IA64 use this
# Preserve sanity ###############################################
# 32bit Linux/CYGWIN are the only GT.M builds that use
# non-shared binaries, aka nsb. 32bit Linux builds are
# the most error prone since x86 starts at i386 till i686
# and you can build 32bit on x86_64 by setting OBJECT_MODE
# to 32
# We must do these checks first to ID NSB builds and 32bit
# linux builds which throw a monkey wrench into the whole
# process.
##################################
# gt_machine_type set in comlist.mk to $(shell uname -m)
# gt_os_type set in comlist.mk to $(shell uname -s)
# only HPUX ia64 and Linux ia64/x86_64 need this option
# optimize for not using it
gt_build_xfer_desc=0
# default to using shared libraries
gt_use_nsb=0
# Sanitize the CYGWIN gt_os_type and mark it as NSB
ifeq ($(findstring CYGWIN,$(gt_os_type)), CYGWIN)
$(info Cygwin Host)
gt_os_type=CYGWIN
gt_use_nsb=1
endif
# BEGIN Linux host, check for 32 bitness
gt_build_type=0
ifeq ($(gt_os_type), Linux)
gt_build_type=64
ifeq ($(gt_machine_type),i386)
gt_use_nsb=1
gt_build_type=32
endif
ifeq ($(gt_machine_type),i686)
gt_use_nsb=1
gt_build_type=32
endif
ifeq ($(OBJECT_MODE),32)
gt_use_nsb=1
gt_build_type=32
# Checking for OBJECT_MODE 32 is not accurate
# throw an error if the ARCH is not x86_64
ifneq ($(gt_machine_type),x86_64)
$(error OBJECT_MODE set to 32, but arch is $(gt_machine_type)))
endif
endif
$(info Linux Host $(gt_build_type))
endif
# END Linux host, check for 32 bitness
# BEGIN common dirs, optimized for shared libs
common_dirs_sp=unix_gnp unix_cm unix port_cm port
ifeq ($(gt_use_nsb), 1)
common_dirs_sp=unix_gnp unix_cm unix_nsb unix port_cm port
endif
# END common dirs, optimized for shared libs
# BEGIN ARCH dirs
ifeq ($(gt_os_type), SunOS)
lib_dirs_sp=sun sparc $(common_dirs_sp)
endif
ifeq ($(gt_os_type), AIX)
lib_dirs_sp=aix rs6000 $(common_dirs_sp)
endif
ifeq ($(gt_os_type), OSF1)
lib_dirs_sp=dux alpha $(common_dirs_sp)
endif
ifeq ($(gt_os_type), CYGWIN)
lib_dirs_sp=linux i386 x86_regs $(common_dirs_sp)
endif
ifeq ($(gt_os_type), Linux)
## Begin Linux specific cludgery
### Ugliness due to building 32bit x86 GT.M on x86_64 machines
ifeq ($(gt_build_type),32)
linux_arch=linux i386 x86_regs
else
linux_arch=linux x86_64 x86_regs
gt_build_xfer_desc=1
endif
### WARNING: leave all 64bit Linuxen below this point
ifeq ($(gt_machine_type),s390x)
linux_arch=l390 s390 linux
endif
ifeq ($(gt_machine_type), ia64)
linux_arch=linux ia64
gt_build_xfer_desc=1
endif
## now set lib_dirs_sp
lib_dirs_sp=$(linux_arch) $(common_dirs_sp)
$(info Linux Host $(linux_arch))
## End Linux specific cludgery
endif
ifeq ($(gt_os_type), HP-UX)
ifeq ($(gt_machine_type),ia64)
lib_dirs_sp=hpux ia64 $(common_dirs_sp)
gt_build_xfer_desc=1
else
lib_dirs_sp=hpux hppa $(common_dirs_sp)
endif
endif
ifeq ($(gt_os_type), OS/390)
lib_dirs_sp=os390 s390 $(common_dirs_sp)
endif
# END Arch
# final sources list, prepend sr_
gt_src_list:=$(addprefix sr_, $(lib_dirs_sp))
## in house. override the above selections
## dunno what this is for
ifdef usertype
gt_src_list:=src inc tools pct
endif
$(info Source Directory List: $(gt_src_list))