197 lines
5.8 KiB
Makefile
197 lines
5.8 KiB
Makefile
#################################################################
|
|
# #
|
|
# Copyright 2001, 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. #
|
|
# #
|
|
#################################################################
|
|
|
|
#
|
|
##########################################################################################
|
|
#
|
|
# gtm_env_sp.mk - environment variable values and aliases specific to Linux
|
|
# if not Linux we assume Cygwin and x86
|
|
#
|
|
##########################################################################################
|
|
# GNU assembler options
|
|
|
|
gt_as_assembler=as
|
|
gt_as_option_DDEBUG=
|
|
gt_as_option_debug=--gstabs
|
|
gt_as_option_nooptimize=
|
|
gt_as_option_optimize=
|
|
gt_as_options=
|
|
gt_as_options_common=--64
|
|
gt_as_src_suffix=.s
|
|
|
|
ifeq ($(gt_machine_type), ia64)
|
|
gt_as_assembler=gcc -c
|
|
gt_as_option_debug=
|
|
else
|
|
ifeq ($(gt_machine_type), s390x)
|
|
gt_as_options_common=-march=z9-109 -m64
|
|
gt_as_option_debug=--gdwarf-2
|
|
else
|
|
ifeq ($(gt_machine_type), CYGWIN)
|
|
gt_as_option_debug=--gdwarf-2
|
|
gt_as_options_common=--defsym cygwin=1
|
|
endif
|
|
endif
|
|
endif
|
|
ifeq ($(gt_build_type), 32)
|
|
ifeq ($(gt_os_type),Linux)
|
|
gt_as_options_common=--32
|
|
endif
|
|
endif
|
|
|
|
# C compiler options
|
|
|
|
gt_cc_shl_fpic=-fPIC
|
|
gt_cc_options_common=-c -ansi
|
|
ifeq ($(gt_os_type),CYGWIN)
|
|
gt_cc_option_debug=$(gt_cc_option_debug) -gdwarf-2 -fno-inline -fno-inline-functions
|
|
gt_cc_shl_fpic=
|
|
gt_cc_options_common=-c
|
|
endif
|
|
|
|
gt_cc_compiler=cc
|
|
gt_cc_option_DBTABLD=-DNOLIBGTMSHR
|
|
gt_cc_option_DDEBUG=-DDEBUG
|
|
gt_cc_option_debug=-g
|
|
gt_cc_option_nooptimize=
|
|
gt_cc_option_optimize=-O2 -fno-defer-pop -fno-strict-aliasing -ffloat-store
|
|
gt_cc_options_common+= -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_XOPEN_SOURCE=600 -fsigned-char
|
|
|
|
ifeq ($(gt_build_type),32)
|
|
gt_cc_option_I=-I-
|
|
endif
|
|
|
|
ifeq ($(gt_machine_type), x86_64)
|
|
ifeq ($(gt_build_type),32)
|
|
# Do not lookup the source directory before include directories specified by -I.
|
|
# gcc complains about -I- being obsolete, but using -iquote cause build errors for gcc and as - ABS 2008.12.09
|
|
#
|
|
# The -I- option is only needed for 32 bit builds on x86_64. It provides a feature that is not present in
|
|
# -iquote - namely -I- disables the ability to search the current directory for include files. This is needed
|
|
# when compiling something in sr_port which includes a file that is in both sr_port and the architecture specific
|
|
# sr_386. We don't want the sr_port version. An example is sr_port/code_gen.c which includes emit_code.h.
|
|
# emit_code.h is found in both sr_port and sr_i386. Using -I- will find the sr_i386 version, but without it the
|
|
# sr_port version is used. SLJ 2010.03.31
|
|
|
|
# The /emul/ia32-linux/... directory doesn't exist on most machines, but when it's there we need it. No problem
|
|
# with always includeing it.
|
|
|
|
gt_cc_option_I+= -I/emul/ia32-linux/usr/include/
|
|
else
|
|
gt_cc_option_I=
|
|
endif
|
|
endif
|
|
|
|
# autodepend option
|
|
gt_cc_dep_option=-w
|
|
|
|
ifeq ($(gt_machine_type), ia64)
|
|
gt_cc_option_optimize=-O
|
|
else
|
|
gt_cc_options_common+= $(gt_cc_shl_fpic) -Wmissing-prototypes -D_LARGEFILE64_SOURCE
|
|
ifeq ($(gt_build_type),32)
|
|
gt_cc_option_optimize+= -march=i686
|
|
endif
|
|
endif
|
|
|
|
gt_cc_shl_options=-c $(gt_cc_shl_fpic)
|
|
|
|
ifeq ($(gt_os_type),CYGWIN)
|
|
gt_cc_options_common+= -DNO_SEM_TIME -DNO_SEM_GETPID
|
|
endif
|
|
|
|
# Linker definitions:
|
|
|
|
gt_ld_aio_syslib=
|
|
gt_ld_ci_options=-Wl,-u,gtm_ci -Wl,-u,gtm_filename_to_id -Wl,--version-script,gtmshr_symbols.export
|
|
gt_ld_ci_u_option=-Wl,-u,gtm_ci
|
|
gt_ld_linker=$(gt_cc_compiler)
|
|
gt_ld_m_shl_linker=ld
|
|
gt_ld_m_shl_options=-shared
|
|
gt_ld_option_output=-o
|
|
gt_ld_options_all_exe=-rdynamic -Wl,-u,gtm_filename_to_id -Wl,-u,gtm_zstatus -Wl,--version-script,gtmexe_symbols.export
|
|
gt_ld_options_bta=-Wl,-M
|
|
gt_ld_options_common=-Wl,-M
|
|
gt_ld_options_dbg=-Wl,-M
|
|
gt_ld_options_gtmshr=-Wl,-u,gtm_filename_to_id -Wl,--version-script,gtmshr_symbols.export
|
|
gt_ld_options_pro=-Wl,-M
|
|
gt_ld_shl_linker=cc
|
|
gt_ld_shl_options=-shared
|
|
gt_ld_shl_suffix=.so
|
|
gt_ld_syslibs= -lrt -lelf -lncurses -lm -ldl
|
|
gt_ld_sysrtns=
|
|
|
|
ifeq ($(gt_build_type),32)
|
|
gt_ld_m_shl_options=
|
|
gt_ld_syslibs= -lrt -lncurses -lm -ldl
|
|
endif
|
|
|
|
|
|
# -lrt for async I/O in mupip recover/rollback
|
|
ifeq ($(gt_build_type), 64)
|
|
gt_ld_syslibs=-lrt -lelf -lncurses -lm -ldl
|
|
else
|
|
ifeq ($(gt_os_type),Linux)
|
|
gt_ld_syslibs=-lrt -lncurses -lm -ldl
|
|
else
|
|
gt_ld_syslibs=-lncurses -lm -lcrypt
|
|
endif
|
|
endif
|
|
|
|
# lint definition overrides
|
|
gt_lint_linter=
|
|
gt_lint_options_library=-x
|
|
gt_lint_options_common=
|
|
|
|
gt_cpus=$(shell grep -c process /proc/cpuinfo)
|
|
# used to build VPATH
|
|
# Apparently Ubuntu does not like the -e option for echo, delete this if the *.mdep make files generate an error
|
|
ifeq ($(distro),ubuntu)
|
|
gt_echoe=echo
|
|
else
|
|
gt_echoe=echo -e
|
|
endif
|
|
|
|
ifeq ($(gt_build_type), 32)
|
|
gt_cc_options_common+=-m32
|
|
gt_ld_options_gtmshr+=-m32
|
|
gt_cc_shl_options+=-m32
|
|
gt_ld_options_common+=-m32
|
|
endif
|
|
#
|
|
# gas assembly - the preprocessor works
|
|
#
|
|
define gt-as
|
|
$(gt_as_assembler) $(gt_as_options) $< -o $@
|
|
endef
|
|
define gt_cpp
|
|
$(gt_cpp_compiler) -E $(gt_cpp_options_common) $(gt_cc_option_I) $< > $<_cpp.s
|
|
endef
|
|
define gt-as_cpp
|
|
$(gt_as_assembler) $(gt_as_options) $<_cpp.s -o $@
|
|
endef
|
|
#
|
|
# gcc specific rule to get the depend file (CC -M)
|
|
#
|
|
define gt-dep
|
|
@echo $*.o $*.d : '\' > $@; \
|
|
echo $(notdir $(filter-out /usr/include% /usr/lib% /usr/local/include% /usr/local/lib/%, $(filter %.c %.h,$(shell $(gt_cc_compiler) -M $(gt_cc_options) $(gt_cc_dep_option) $<)))) >> $@
|
|
endef
|
|
define gt-export
|
|
@echo "{" >$@
|
|
@echo "global:" >>$@
|
|
@sed 's/\(.*\)/ \1;/g' $< >>$@
|
|
@echo "local:" >>$@
|
|
@echo " *;" >>$@
|
|
@echo "};" >>$@
|
|
endef
|
|
|