# # arch_spec.mk # # Architecture/site specific makefile fragment # for global inclusion. # # This is included by standard.mk, so should not be included elsewhere # # # David R. Quarrie, Feb 95 # Bob Jacobsen, April 1995 - added a few machines, fixed error notification # Bob Jacobsen, Feb 96 - SunOS4 option update, as it no longer uses f77bb # Bob Jacobsen March 1996 - updated compilation options to be consistent # with f77bb # Bob Jacobsen April, 1996 - switched to gcc 2.7.2 # Bob Jacobsen June 6, 1996 - switched back, see Hypernews code-mgmt/44.html # Bob Jacobsen June 26 1996 - OSF1 -static, g++ for CXX, -g for f77 # Bob Jacobsen July 5, 1996 - remove -static from SunOS5 due to missing # symbols from dl and nsl libraries. Not understood # # the default compiler for CC (and hence CXX) was changed to # the specific 2.7.2 version of gcc on April 24, 1996. This requires # explicit reference to libstdc++.a due to a design change to g++ itself # Unfortunately, the HP compiler is NFG, so we stay with the site # defaults (whatever, but usually 2.6.3) for now # # 19970915 kreymer # AIX - redircted CXX (c++ compilation) to Pasha's freeware 2.7.2.2 # # 19970911 kreymer@fnal.gov # Added comments to arch sections # AIX - # # 19971114 gcooper@fnal.gov (Glenn Cooper) # Add DEFECTS macros; various cleanups from Rob Kennedy; # use --strict and -D__KAI_STRICT switches for KCC # # 8-Dec-1997 jonckheere@fnal.gov # Added an entirely new NT4 section, removed old CYGWIN32-NT4 section. # # 19980504 flavia@fnal.gov & matteo@fnal.gov # Added OSF specific flags for KAI and use f77 for OSF1 at CDF. # # 19980511 jonckheere@fnal.gov # Added DEFECTS += -DDEFECT_NO_EXPLICIT_QUALIFICATION # Due to a bug in Kai 3.2, acknowledged by kai, found by Scott Snyder and # Dave Adams. They have code, recommended by Kai that implements the # fix turned on by this define # # 19980527 wb@fnal.gov # Update NT4 section: correct preprocessor to simulate MSVC50 environment, # allow alternate source code suffixes, etc. Changes recommended by # Philippe Canal, approved by Gordon Watts. # # 19981014 russo@fnal.gov # Modified D0-specific section in IRIX v6 to support KCC v3.3 in the # D0 build environment. # # 19990209 russo@fnal.gov # Modified D0-specific section in Linux2 to support KCC v3.3 in the # D0 build environment. # # Modified D0-specific section in IRIX v6 and Linux v2 to remove # --COMPO_pl -q from compiles. Users want them to be noisy. # # 19990216 russo@fnal.gov # Modified D0-specific sections to remove LOADLIBES and LDFLAGS from # archive step. Propagated standard D-Zero compiler flags to OSF. # # general flag values; note these should NOT be overrides testLink := -L F90C := f90 ARFLAGS := r override CXXFLAGS += -g override FCFLAGS += -g override CPPMFLAGS += -M # used by all but SunOS5's CC # Specify cpp to be used by the f7bb replacement in standard.mk FCPP := $(CPP) #OPT1 support. Warning! This interface will not be preserved in future # versions of SRT. OPT1subtractAll := -g OPT1addCC := OPT1addCXX := OPT1addFC := OPT1addLD := ##################################################### # # # ########################################### # # # # # # # Specific entries for architectures # # # # # # # ########################################### # # # ##################################################### ########################################### # # # AIX # # # ########################################### ifneq (,$(findstring AIX,$(BFARCH))) ifneq (,$(findstring -CC,$(BFARCH))) CC := CC CXX := CC CPP := g++ FPP := g77 else ifneq (,$(findstring -KCC,$(BFARCH))) CPP := KCC CC := KCC --c CXX := KCC AR := KCC FPP := g77 # this is probably wrong but I don't know what else to use...LSK override CXXCFLAGS += --no_implicit_include override CXXFLAGS += +K0 ifeq (D0,$(EXPERIMENT)) CC := cc override CXXFLAGS += --exceptions ifeq (,$(findstring KCC_,$(BFARCH))) # kcc 3.2 override CXXFLAGS += --no_split AR := kcc-ar2 override ARFLAGS := --no_split -o else # kcc 3.3+ override CXXFLAGS += --one_per override ARFLAGS := --one_per -o endif else ARFLAGS := -o endif override DEFECTS += -DDEFECT_STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_NO_EXPLICIT_QUALIFICATION else CC := gcc -O1 CXX := g++ override CXXFLAGS += -O1 -mcpu=powerpc # CXX := xlC -O1 -mcpu=ppc /* can't use this, not supported # CXX := /cdf/software/freeware/powerpc-ibm-aix4.2.0.0/bin/gcc # add -Wall for more diagnostics # FCPP := /usr/lib/cpp FCPP := g++ CPP := g++ FPP := g77 SHAREDAR := gcc SHAREDARFLAGS := -shared -o PICFLAG := -fPIC ifeq (D0,$(EXPERIMENT)) override CXXFLAGS += -fhandle-exceptions endif override DEFECTS += -DDEFECT_GCC27_STRINGSTREAM_STR override DEFECTS += -DDEFECT_NO_IOSFWD_HEADER override DEFECTS += -DDEFECT_NO_STDLIB_NAMESPACES override DEFECTS += -DDEFECT_NO_NAMESPACES override DEFECTS += -DDEFECT_NO_IOSTREAM_NAMESPACES override DEFECTS += -DDEFECT_NO_STDC_NAMESPACES override DEFECTS += -DDEFECT_OLD_IOSTREAM_HEADERS override DEFECTS += -DDEFECT_OLD_STRINGSTREAM override DEFECTS += -DDEFECT_OLD_STL_HEADERS override DEFECTS += -DDEFECT_OLD_STL_COUNT endif endif override FCPPFLAGS += -E -C -P \ -DFORTRAN -DLANGUAGE_FORTRAN -DAIX -DRS6000 override FCPPMFLAGS += -x c override FCFLAGS += -qhalt=E -qflttrap=OV:ZERO:INV:EN -qextname \ -qfixed=132 -qarch=com F90C := xlf90 override LOADLIBES += -lstdc++ -lld -lm DEFINES = -Daix -DUNIX -DAIX DEFINES += -D__UNIX__ -D__AIX__ DATAREP = -DDATAREP_BIG_IEEE -DDATAREP_BIG_ENDIAN -DAIX_4_1_4_GPP_2_7_2_1 override DEFECTS += -DDEFECT_NO_APPEND override DEFECTS += -DDEFECT_NO_READONLY override DEFECTS += -DDEFECT_NO_STRUCTURE override DEFINES += $(DATAREP) $(DEFECTS) override CPPFLAGS += $(DEFINES) ifdef MAPFILE override LDFLAGS += -bloadmap:$(MAPFILE) endif ########################################### # # # SunOS5/Solaris # # # ########################################### else ifneq (,$(findstring SunOS5,$(BFARCH))) testLink := -h override FCPPFLAGS += -C -P -DSunOS # -static removed due to link trouble with libdl.so and libnsl.a # override LDFLAGS += -static DATAREP = -DDATAREP_BIG_IEEE -DDATAREP_BIG_ENDIAN DEFINES = -DUNIX -DSunOS DEFINES += -D__UNIX__ -D__SUNOS__ #FNAL-AML: add support of Kai C++ ifneq (,$(findstring -KCC,$(BFARCH))) CPP := KCC CC := KCC --c CXX := KCC FPP := g77 AR := KCC override CXXCFLAGS += --no_implicit_include # no optimize; require standard code, explicit includes only override CXXFLAGS += +K0 override CXXFLAGS += -DHAS_BUILTIN_BOOL -LANG:ansi-for-init-scope=on override CXXFLAGS += --strict override CPPFLAGS += -D__KAI_STRICT ifeq (D0,$(EXPERIMENT)) CC := cc override CXXFLAGS += --exceptions ifeq (,$(findstring KCC_,$(BFARCH))) # kcc 3.2 override CXXFLAGS += --no_split AR := kcc-ar2 override ARFLAGS := --no_split -o else # kcc 3.3+ override CXXFLAGS += --one_per override ARFLAGS := --one_per -o endif else ARFLAGS := -o endif override DEFECTS += -D__STANDARD_CPLUSPLUS -DDEFECT_STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_NO_EXPLICIT_QUALIFICATION # # This is what is currently being used by CMS at Fermilab else CC := CC CXX := CC CPP := CC FPP := g77 AR := CC SHAREDAR := CC override CXXFLAGS += -ptr${workdir} override ARFLAGS := -xar -ptr${workdir} -o override SHAREDARFLAGS := -G -ptr${workdir} -o override CPPMFLAGS := -xM CPPFLAGS += -I$(STL_DIR)/include PICFLAG := -pic FCPICFLAG := -Kpic endif override DEFINES += $(DATAREP) $(DEFECTS) override CPPFLAGS += $(DEFINES) ########################################### # # # SunOS4 # # # ########################################### else ifneq (,$(findstring SunOS4,$(BFARCH))) CC := gcc -V2.7.2 CXX := g++ -V2.7.2 SHAREDAR := gcc SHAREDARFLAGS := -shared -o PICFLAG := -fPIC # the following change to LOADLIBES will happen _after_ the # specific GNUmakefile's additions, as this file is included by # standard.mk. This is a Good Thing. override LOADLIBES += -lstdc++ # RANLIB needs to run in a writable directory RANLIB = cd $(workdir); ranlib override LOADLIBES += -lm testLink := -h # !!!SLAC specific crock!!! fix bug in backlevel compiler override CXXFLAGS += -DNULL=0 # Fortran options for this platform FCPP := /usr/lib/cpp override FCPPFLAGS += -C -P -DSunOS override FCFLAGS += -Nl101 # !!!SLAC specific crock!!! FC for new compiler FC := f77-3.0.1 DATAREP = -DDATAREP_BIG_IEEE -DDATAREP_BIG_ENDIAN DEFINES = -DUNIX -DSunOS $(DATAREP) DEFINES += -D__UNIX__ -D__SUNOS__ ########################################### # # # OSF # # # ########################################### else ifneq (,$(findstring OSF,$(BFARCH))) ifneq (,$(findstring -CC,$(BFARCH))) # # Native C/GNU C++ # CC := CC CXX := CC CPP := g++ else ifneq (,$(findstring -KCC,$(BFARCH))) # # KAI C++ # CPP := KCC CXX := KCC CC := KCC --c AR := KCC ifeq (CDF,$(EXPERIMENT)) unexport BIN_SH endif override CXXCFLAGS += --no_implicit_include override CXXFLAGS += +K0 ifeq (D0,$(EXPERIMENT)) CC := cc override CXXFLAGS += +K0 -O0 override CXXFLAGS += --exceptions override CXXFLAGS += --display_error_number override CXXFLAGS += --diag_suppress 111,177,191,550 ifeq (,$(findstring KCC_,$(BFARCH))) # kcc 3.2 override CXXFLAGS += --no_split override ARFLAGS := --no_split -o override AR := kcc-ar2 else # kcc 3.3+ override CXXFLAGS += --one_per override ARFLAGS := --one_per -o override AR := KCC endif override LDFLAGS += --backend -taso else ARFLAGS := -o endif ifeq (CDF,$(EXPERIMENT)) override CXXFLAGS += --no_exceptions ARFLAGS := --no_exceptions -o override LDFLAGS += --no_exceptions --backend -taso override DEFECTS += -D__STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_RECL_WORDS endif override DEFECTS += -DDEFECT_STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_NO_EXPLICIT_QUALIFICATION else # # GNU C and GNU C++ # CC := gcc CXX := g++ CPP := g++ SHAREDAR := gcc SHAREDARFLAGS := -shared -o PICFLAG := -fPIC override FCPPFLAGS += -DFORTRAN -DLANGUAGE_FORTRAN -DOSF1 ifeq (D0,$(EXPERIMENT)) override CXXFLAGS += -fhandle-exceptions override LDFLAGS += -taso endif override DEFECTS += -DDEFECT_GCC27_STRINGSTREAM_STR override DEFECTS += -DDEFECT_NO_IOSFWD_HEADER override DEFECTS += -DDEFECT_OLD_IOSTREAM_HEADERS override DEFECTS += -DDEFECT_OLD_STRINGSTREAM override DEFECTS += -DDEFECT_OLD_STL_HEADERS override DEFECTS += -DDEFECT_OLD_STL_COUNT override DEFECTS += -DDEFECT_NO_STDLIB_NAMESPACES override DEFECTS += -DDEFECT_NO_STDLIB_NAMESPACES override DEFECTS += -DDEFECT_NO_NAMESPACES override DEFECTS += -DDEFECT_NO_IOSTREAM_NAMESPACES override DEFECTS += -DDEFECT_NO_STDC_NAMESPACES override DEFECTS += -DDEFECT_RECL_WORDS endif endif # # the following change to LOADLIBES will happen _after_ the # specific GNUmakefile's additions, as this file is included by # standard.mk. This is a Good Thing, as its needed during a -static link # ifneq (D0,$(EXPERIMENT)) override LOADLIBES += -ldnet_stub endif ifneq (CDF,$(EXPERIMENT)) ifneq (D0,$(EXPERIMENT)) override LDFLAGS += -static endif endif FPP := g77 ifeq (CDF,$(EXPERIMENT)) FPP := f77 endif ifeq (D0,$(EXPERIMENT)) FPP := f77 endif ifeq (CDF,$(EXPERIMENT)) override FCFLAGS += -static -extend_source endif RANLIB = ranlib override FCPPFLAGS += -C -P -DOSF1 -DUNIX -extend_source override DEFINES = -Dosf1 -DUNIX -DOSF1 override DEFINES += -D__UNIX__ -D__OSF1__ # This definition is needed for fixedtypes. override DEFINES += -DOSF1_4_0_GPP_2_7_2_3 # OSF pointers are 8 bytes regardless of the -taso option. override DEFINES += -DPOINTERS_ARE_8_BYTES -DFVOIDP=INTEGER*8 DATAREP = -DDATAREP_LITTLE_IEEE -DDATAREP_LITTLE_ENDIAN # Set this until we enable FFLAGS += -assume byterecl override DEFECTS += -DDEFECT_RECL_WORDS override DEFINES += $(DATAREP) $(DEFECTS) override CPPFLAGS += $(DEFINES) ########################################### # # # VxWorks # # # ########################################### else ifneq (,$(findstring VxWorks,$(BFARCH))) RANLIB = ranlib DATAREP = -DDATAREP_BIG_IEEE -DDATAREP_BIG_ENDIAN DEFINES = -DUNIX $(DATAREP) DEFINES += -D__UNIX__ ########################################### # # # HP-UX # # # ########################################### else ifneq (,$(findstring HP-UX,$(BFARCH))) testLink := -h ARFLAGS := rf # fort77 is standard fortran compiler from days of old FC := fort77 CC := gcc CXX := g++ FPP := g77 SHAREDAR := gcc SHAREDARFLAGS := -shared -o PICFLAG := -fPIC SHAREDEXT := .sl ifneq (,$(findstring -aCC,$(BFARCH))) CXX := aCC PICFLAG := +z SHAREDAR := aCC SHAREDARFLAGS := -o endif # Fortran options needed for this platform # +T added on March 12, 96 for consistency with f77bb, but what does it do? # [it produces a traceback after a crash - TW] override FCFLAGS += +ppu +T -K override FCPPFLAGS += -C -P -DHPUX DATAREP = -DDATAREP_BIG_IEEE -DDATAREP_BIG_ENDIAN DEFINES = -Dhpux -DUNIX -DHPUX $(DATAREP) DEFINES += -D__UNIX__ -D__HPUX__ ########################################### # # # IRIX5 # # # ########################################### else ifneq (,$(findstring IRIX5,$(BFARCH))) OPT1addFC := -O2 testLink := -h override FCPPFLAGS += -C -P -DIRIX ifneq (CDF1,$(EXPERIMENT)) # Necessary because we still use ansi CPP for experiments other than CDF1 override FCPPMFLAGS += -x c ifneq (D0,$(EXPERIMENT)) # can't use this for D0's simulation code override FCFLAGS += -acpp endif endif override FCFLAGS += -G0 -mips2 -static -u -d_lines -Nc32 -Nn30000 -trapuv -extend_source FPP := f77 ifneq (,$(findstring -CC,$(BFARCH))) CC := CC CXX := CC CPP := g++ override CXXFLAGS += -n32 -experimental -DHAS_BUILTIN_BOOL else ifneq (,$(findstring -KCC,$(BFARCH))) CPP := KCC CC := KCC --c CXX := KCC AR := KCC ARFLAGS := -o override CXXCFLAGS += --no_implicit_include override CXXFLAGS += +K0 OPT1addCXX := +K3 OPT1addCC := +K3 ifeq (D0,$(EXPERIMENT)) CC := cc override CXXFLAGS += --exceptions ifeq (,$(findstring KCC_,$(BFARCH))) # kcc 3.2 override CXXFLAGS += --no_split AR := kcc-ar2 override ARFLAGS := --no_split -o else # kcc 3.3+ override CXXFLAGS += --one_per override ARFLAGS := --one_per -o endif else ARFLAGS := -o endif override DEFECTS += -DDEFECT_STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_NO_EXPLICIT_QUALIFICATION else CC := cc CXX := g++ CPP := g++ ifeq (D0,$(EXPERIMENT)) override CXXFLAGS += -fhandle-exceptions endif endif endif DATAREP = -DDATAREP_BIG_IEEE -DDATAREP_BIG_ENDIAN -DIRIX_5_3_GPP_2_7_2_1 DEFINES = -Dsgi -D_SVR4_SOURCE -DUNIX -DIRIX5 -DMIPS $(DATAREP) DEFINES += -D__UNIX__ -D__IRIX5__ ifdef MAPFILE override LDFLAGS += -Wl,-m LDOUT = >$(MAPFILE) endif ########################################### # # # IRIX6 # # # ########################################### else ifneq (,$(findstring IRIX6,$(BFARCH))) OPT1addFC := -O2 testLink := -h DATAREP = -DDATAREP_BIG_IEEE -DDATAREP_BIG_ENDIAN override DEFECTS = DEFINES += -DUNIX -DMIPS -DIRIX6 ifneq (,$(findstring IRIX6_5,$(BFARCH))) DEFINES += -DIRIX6_5 else DEFINES += -DIRIX6_2 endif DEFINES += -D__UNIX__ -D__IRIX6__ FPP := f77 override FCPPMFLAGS = #============================================================================= # IRIX6: SGI MipsPro v7.1nx (-n32 -experimental) #============================================================================= ifneq (,$(findstring -CC,$(BFARCH))) CC := cc CXX := CC CPP := CC override CPPMFLAGS := -c -M override CXXFLAGS += -O0 # Suppress compiler warnings: override CXXFLAGS += -woff 1552 -woff 1555 -woff 1174 #FNAL-GC # Suppress linker warnings: # 15 - multiple symbol definition # 47 - instructions that degrade performance on R4000 CPU's # 84 - library not used to resolve any references # 85 - same as 84 but for DSO's override CXXFLAGS += -Wl,-woff,84,-woff,15,-woff,47,-woff,85 override CXXFLAGS += -LANG:ansi-for-init-scope=on override FCFLAGS += -G0 -static -n32 -u -d_lines -trapuv override FCFLAGS += -extend_source -woff 1189 # Compiler version-specific stuff ifneq (,$(findstring -CC_7_3,$(BFARCH))) override CXXFLAGS += -n32 -mips3 -LANG:std override CXXCFLAGS += -n32 -mips3 override DEFINES += -DIRIX_6_5_CC32_7_3 override DEFINES += -DIRIX_CC64 # for ZMutility/FixedTypes.h # Size of pointers on an n32 system are 4 bytes override DEFINES += -DPOINTERS_ARE_4_BYTES -DFVOIDP=INTEGER*4 override DEFECTS += -DDEFECT_OLD_STDC_HEADERS override DEFECTS += -DDEFECT_NO_STDC_NAMESPACES else ifneq (,$(findstring -CC_7_2_1a,$(BFARCH))) override CXXFLAGS += -n32 -mips3 override CXXCFLAGS += -n32 -mips3 override DEFINES += -DIRIX_6_5_CC32_7_2_1a # Size of pointers on an n32 system are 4 bytes override DEFINES += -DPOINTERS_ARE_4_BYTES -DFVOIDP=INTEGER*4 override DEFECTS += -DDEFECT_OLD_STDC_HEADERS override DEFECTS += -DDEFECT_OLD_IOSTREAM_HEADERS override DEFECTS += -DDEFECT_NO_IOSFWD_HEADER override DEFECTS += -DDEFECT_NO_IOSTREAM_NAMESPACES override DEFECTS += -DDEFECT_OLD_STRINGSTREAM override DEFECTS += -DDEFECT_NO_STDC_NAMESPACES else # 7.2 and earlier ifeq (CDF,$(EXPERIMENT)) override CXXFLAGS += -32 -mips2 override CXXCFLAGS += -32 -mips2 override CXXCFLAGS += -experimental else override CXXCFLAGS += -n32 -mips3 endif # Size of pointers on an o/n32 system are 4 bytes override DEFINES += -DPOINTERS_ARE_4_BYTES -DFVOIDP=INTEGER*4 override DEFINES += -DIRIX_6_2_CC32_7_1 override DEFECTS += -DDEFECT_SGICC_STRING_HEADER override DEFECTS += -DDEFECT_NO_IOSFWD_HEADER override DEFECTS += -DDEFECT_NO_NAMESPACES override DEFECTS += -DDEFECT_NO_STDLIB_NAMESPACES override DEFECTS += -DDEFECT_NO_IOSTREAM_NAMESPACES override DEFECTS += -DDEFECT_NO_STDC_NAMESPACES override DEFECTS += -DDEFECT_OLD_IOSTREAM_HEADERS override DEFECTS += -DDEFECT_OLD_STRINGSTREAM override DEFECTS += -DDEFECT_OLD_STDC_HEADERS override DEFECTS += -DDEFECT_OLD_STL_HEADERS override DEFECTS += -DDEFECT_OLD_STL_COUNT endif endif #============================================================================= # IRIX6: Kai C++ v3.2 and v3.3 #============================================================================= else ifneq (,$(findstring -KCC,$(BFARCH))) CPP := KCC CC := KCC --c CXX := KCC AR := KCC override CXXFLAGS += +K0 -O0 override CXXCFLAGS += --no_implicit_include ifeq (CDF,$(EXPERIMENT)) override CXXCFLAGS += -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED override CXXCFLAGS += --backend -Wl,-woff,47,-woff,84,-woff,85 endif override CPPFLAGS += -D__KAI_STRICT OPT1addCXX := +K3 OPT1addCC := +K3 ifeq (D0,$(EXPERIMENT)) CC := cc override CCFLAGS := $(PRE_CCFLAGS) override CCFLAGS += -O0 override CCFLAGS += -g2 override CCFLAGS += -G0 override CCFLAGS += -Wl,-multigot override CCFLAGS += -Wl,-woff,15,-woff,47,-woff,84,-woff,85,-woff,133,-woff,134 override CXXFLAGS := $(PRE_CXXFLAGS) ifeq (,$(findstring n32,$(BFARCH))) override CXXFLAGS += -mips2 endif override CXXFLAGS += +K0 override CXXFLAGS += --exceptions override CXXFLAGS += --display_error_number override CXXFLAGS += --diag_suppress 111,177,191,550 override CXXFLAGS += --backend -O0 override CXXFLAGS += --backend -g2 override CXXFLAGS += --backend -G0 override CXXFLAGS += --backend -Wl,-multigot override CXXFLAGS += --backend -Wl,-woff,15,-woff,16,-woff,47,-woff,84,-woff,85,-woff,105,-woff,133,-woff,134 ifneq (,$(findstring -KCC_,$(BFARCH))) override CXXFLAGS += --one_per override ARFLAGS := --one_per -o override AR := KCC override SHAREDAR := KCC override SHAREDARFLAGS := --one_per -o else override CXXFLAGS += --no_split override ARFLAGS := --no_split -o override AR := kcc-ar2 endif override LDFLAGS += $(PRE_LDFLAGS) else override CXXFLAGS += --no_exceptions ARFLAGS := --no_exceptions -o override LDFLAGS += --no_exceptions ifeq (CDF,$(EXPERIMENT)) ifeq (,$(findstring o32,$(BFARCH))) override CXXFLAGS += --backend -mips3 else override CXXFLAGS += --backend -mips2 endif else override CXXFLAGS += --backend -mips2 endif endif override CXXFLAGS += --strict ifeq (CDF,$(EXPERIMENT)) ifeq (,$(findstring o32,$(BFARCH))) override CPPMFLAGS += -n32 override CCFLAGS += -n32 override CXXFLAGS += -n32 override LDFLAGS += -n32 -Wl,-multigot override ARFLAGS := -n32 $(ARFLAGS) else override CPPMFLAGS += -32 override CCFLAGS += -32 override CXXFLAGS += -32 override LDFLAGS += -32 override ARFLAGS := -32 $(ARFLAGS) endif else ifeq (D0,$(EXPERIMENT)) ifeq (n32,$(findstring n32,$(BFARCH))) override CPPMFLAGS += -n32 -mips3 override CCFLAGS += -n32 -mips3 override CXXFLAGS += -n32 -mips3 override LDFLAGS += -n32 -mips3 override ARFLAGS := -n32 -mips3 $(ARFLAGS) override SHAREDARFLAGS := -n32 -mips3 $(ARFLAGS) else override CPPMFLAGS += -32 override CCFLAGS += -32 override CXXFLAGS += -32 override LDFLAGS += -32 override ARFLAGS := -32 $(ARFLAGS) endif else override CPPMFLAGS += -32 override CCFLAGS += -32 override CXXFLAGS += -32 override LDFLAGS += -32 override ARFLAGS := -32 $(ARFLAGS) endif endif # Size of pointers on an o/n32 system are 4 bytes. This will need # changing if anyone ever switches to the 64-bit ABI override DEFINES += -DPOINTERS_ARE_4_BYTES -DFVOIDP=INTEGER*4 override DEFINES += -DIRIX_6_2_KCC_3_2 override DEFECTS += -D__STANDARD_CPLUSPLUS -DDEFECT_STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_NO_EXPLICIT_QUALIFICATION ifeq (CDF,$(EXPERIMENT)) ifeq (,$(findstring o32,$(BFARCH))) override FCFLAGS += -G0 -static -n32 -mips3 -u -d_lines -trapuv else override FCFLAGS += -G0 -static -32 -mips2 -u -d_lines -trapuv endif else ifeq (D0,$(EXPERIMENT)) ifeq (n32,$(findstring n32,$(BFARCH))) override FCFLAGS := $(PRE_FCFLAGS) override FCFLAGS += -O0 -g2 -G0 -static -n32 -mips3 -u -d_lines else override FCFLAGS += -G0 -static -32 -mips2 -u -d_lines -trapuv endif else override FCFLAGS += -G0 -static -32 -mips2 -u -d_lines -trapuv endif endif override FCFLAGS += -extend_source ifeq (D0,$(EXPERIMENT)) override FCFLAGS += -Wl,-multigot override FCFLAGS += -Wl,-woff,15,-woff,16,-woff,47,-woff,84,-woff,85,-woff,105,-woff,133,-woff,134 endif ifeq (D0,$(EXPERIMENT)) override CCFLAGS += $(POST_CCFLAGS) override CXXFLAGS += $(POST_CXXFLAGS) override FCFLAGS += $(POST_FCFLAGS) override LDFLAGS += $(POST_LDFLAGS) endif #============================================================================= # IRIX6: GNU C++ v2.7 #============================================================================= else CC := gcc CXX := g++ CPP := g++ SHAREDAR := gcc SHAREDARFLAGS := -shared -o PICFLAG := -fPIC override CXXFLAGS += -O0 -mips2 ifeq (D0,$(EXPERIMENT)) override CXXFLAGS += -fhandle-exceptions endif override DEFINES += -DIRIX_6_2_GPP_2_7_2_1 override DEFECTS += -DDEFECT_GCC27_STRINGSTREAM_STR override DEFECTS += -DDEFECT_NO_IOSFWD_HEADER override DEFECTS += -DDEFECT_NO_STDLIB_NAMESPACES override DEFECTS += -DDEFECT_NO_NAMESPACES override DEFECTS += -DDEFECT_NO_IOSTREAM_NAMESPACES override DEFECTS += -DDEFECT_NO_STDC_NAMESPACES override DEFECTS += -DDEFECT_NO_STDLIB_NAMESPACES override DEFECTS += -DDEFECT_OLD_STRINGSTREAM override DEFECTS += -DDEFECT_OLD_STL_HEADERS override DEFECTS += -DDEFECT_OLD_STL_COUNT override FCFLAGS += -G0 -static -32 -mips2 -u -d_lines -trapuv override FCFLAGS += -extend_source endif endif #============================================================================= # IRIX6: Fortran support #============================================================================= # Necessary because we still use ansi CPP for experiments other than CDF1 ifeq (,$(findstring IRIX6_5,$(BFARCH))) ifneq (CDF1,$(EXPERIMENT)) ifneq (D0,$(EXPERIMENT)) ifneq (CDF,$(EXPERIMENT)) override FCFLAGS += -acpp endif ifneq (,$(findstring o32,$(BFARCH))) override FCFLAGS += -acpp endif endif endif endif override FCPPFLAGS += -C -P -DIRIX # Set this until we enable FFLAGS += -byterecl override DEFECTS += -DDEFECT_RECL_WORDS #============================================================================= # IRIX6: Mapfile support #============================================================================= ifdef MAPFILE ifneq (,$(findstring -KCC,$(BFARCH))) override LDFLAGS += --backend -Wl,-m else override LDFLAGS += -Wl,-m endif endif #============================================================================= # IRIX6: Concatenate DEFINES together and add list to CPP and CXX flags # Everything in CPPFLAGS is used in BOTH dependency discovery and compilation #============================================================================= override DEFINES += $(DATAREP) $(DEFECTS) override CPPFLAGS += $(DEFINES) ########################################### # # # Linux2 # # # ########################################### else ifneq (,$(findstring Linux,$(BFARCH))) DATAREP = -DDATAREP_LITTLE_IEEE -DDATAREP_LITTLE_ENDIAN override DEFECTS = DEFINES += -DUNIX -DLINUX DEFINES += -D__UNIX__ -D__LINUX__ override CPPFLAGS += -D_POSIX_SOURCE -D_SVID_SOURCE -D_BSD_SOURCE override CPPFLAGS += -D_POSIX_C_SOURCE=2 -D_XOPEN_SOURCE FPP := g77 # # dspack needs -lcrypt. # framework needs -ldl. # ifeq (D0,$(EXPERIMENT)) override LOADLIBES += -lcrypt -ldl endif #============================================================================= # Linux2: Kai C++ v3.2 #============================================================================= ifneq (,$(findstring -KCC,$(BFARCH))) CPP := KCC CC := KCC --c CXX := KCC AR := KCC override CXXFLAGS += --backend -m486 override CXXFLAGS += +K0 -O0 override CXXFLAGS += --strict override CXXCFLAGS += --no_implicit_include override CPPFLAGS += -D__KAI_STRICT -D__STRICT_ANSI__ OPT1addCXX := --backend -g3 OPT1addCC := --backend -g3 OPT1addLD := --backend -g3 ifeq (D0,$(EXPERIMENT)) override CC := cc override CXXFLAGS := +K0 -O0 override CXXFLAGS += --exceptions override CXXFLAGS += --display_error_number override CXXFLAGS += --diag_suppress 111,177,191,550 override CXXFLAGS += --backend -w ifeq (,$(findstring KCC_,$(BFARCH))) # kcc 3.2 override CXXFLAGS += --no_split override ARFLAGS := --no_split -o override AR := kcc-ar2 else # kcc 3.3+ override CXXFLAGS += --one_per override ARFLAGS := --one_per -o override AR := KCC endif else override CXXFLAGS += --no_exceptions ARFLAGS := --no_exceptions -o override LDFLAGS += --no_exceptions endif override DEFINES += -DLINUX_2_0_KCC_3_2 override DEFINES += -DPOINTERS_ARE_4_BYTES -DFVOIDP=INTEGER*4 override DEFECTS += -D__STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_NO_EXPLICIT_QUALIFICATION #============================================================================= # Linux2: Gnu C++ v2.7 #============================================================================= else CC := gcc CXX := g++ CPP := g++ SHAREDAR := gcc SHAREDARFLAGS := -shared -o PICFLAG := -fPIC override CXXFLAGS += -O0 -m486 override DEFINES += -D_FIXED_TYPES_ENV=1 override DEFECTS += -DDEFECT_GCC27_STRINGSTREAM_STR override DEFECTS += -DDEFECT_NO_IOSFWD_HEADER override DEFECTS += -DDEFECT_NO_STDLIB_NAMESPACES override DEFECTS += -DDEFECT_NO_NAMESPACES override DEFECTS += -DDEFECT_NO_IOSTREAM_NAMESPACES override DEFECTS += -DDEFECT_NO_STDC_NAMESPACES override DEFECTS += -DDEFECT_OLD_IOSTREAM_HEADERS override DEFECTS += -DDEFECT_OLD_STRINGSTREAM override DEFECTS += -DDEFECT_OLD_STL_HEADERS override DEFECTS += -DDEFECT_OLD_STL_COUNT endif #============================================================================= # Linux2: Fortran support #============================================================================= FC := g77 override FCFLAGS += -fdollar-ok -fno-automatic override FCFLAGS += -fno-second-underscore -ffixed-line-length-132 override FCFLAGS += -fno-globals -w override FCFLAGS += -fdebug-kludge override FCFLAGS += -DFORTRAN -DLANGUAGE_FORTRAN override FCPPFLAGS += -C -P -DLinux -DUNIX override FCPPFLAGS += -DFORTRAN -DLANGUAGE_FORTRAN override DEFECTS += -DDEFECT_NO_JZEXT override DEFECTS += -DDEFECT_NO_INTHEX override DEFECTS += -DDEFECT_NO_INTHOLLERITH override DEFECTS += -DDEFECT_NO_READONLY override DEFECTS += -DDEFECT_NO_DIRECT_FIXED override DEFECTS += -DDEFECT_NO_STRUCTURE # We still use ansi CPP for experiments other than CDF run 1 ifneq (CDF1,$(EXPERIMENT)) ifneq (D0,$(EXPERIMENT)) override FCPPMFLAGS += -x c endif endif #============================================================================= # Linux2: Mapfile support #============================================================================= ifdef MAPFILE ifneq (,$(findstring -KCC,$(BFARCH))) override LDFLAGS += --backend -Wl,-Map,$(workdir)/$(MAPFILE) else override LDFLAGS += -Wl,-Map,$(workdir)/$(MAPFILE) endif endif #============================================================================= # Linux2: Concatenate DEFINES together and add list to CPP and CXX flags # Everything in CPPFLAGS is used in BOTH dependency discovery and compilation #============================================================================= override DEFINES += $(DATAREP) $(DEFECTS) override CPPFLAGS += $(DEFINES) ########################################### # # # NT4 # # # ########################################### else ifneq (,$(findstring NT4,$(BFARCH))) ifeq (-GCC,$(findstring -GCC,$(BFARCH))) FC := g77 CC := gcc CXX := gcc CPP := gcc FPP := gcc override DEFECTS += -DDEFECT_GCC27_STRINGSTREAM_STR override DEFECTS += -DDEFECT_NO_IOSFWD_HEADER override DEFECTS += -DDEFECT_NO_STDLIB_NAMESPACES override DEFECTS += -DDEFECT_NO_NAMESPACES override DEFECTS += -DDEFECT_NO_IOSTREAM_NAMESPACES override DEFECTS += -DDEFECT_NO_STDC_NAMESPACES override DEFECTS += -DDEFECT_OLD_IOSTREAM_HEADERS override DEFECTS += -DDEFECT_OLD_STRINGSTREAM override DEFECTS += -DDEFECT_OLD_STL_HEADERS override DEFECTS += -DDEFECT_OLD_STL_COUNT endif ifeq (-MSVC50,$(findstring -MSVC50,$(BFARCH))) CC := srt_ntcc CXX := srt_ntcc FC := srt_ntf77 CPP := gcc -E -U__GNUG__ -D_MSC_VER=1100 -nostdinc -isystem /msvcinc $(DEFINE_FLAGS) FPP := gcc -E -U__GNUG__ -D_MSC_VER=1100 -nostdinc -isystem /msvcinc $(DEFINE_FLAGS) LD := echo "*********WARNING: LD NOT SUPPORTED ON THIS ARCHITECTURE" AR := srt_ntlib override DEFINES += -DNT_MSVCPP # # Work around for some weirdnesses in the standard library # and how MSVC does C++. The extra quotes on the for def are # required because the shell removes one everytime through. Sigh. # override CXXDEFECTS = -Dmin=_cpp_min override CXXDEFECTS += -Dmax=_cpp_max # # Defects # override DEFECTS += -D__STANDARD_CPLUSPLUS -DDEFECT_STANDARD_CPLUSPLUS override DEFECTS += -DDEFECT_NO_VIRTUAL_COVARIANCE override DEFECTS += -DDEFECT_TYPE_INFO_GLOBAL override DEFECTS += -DDEFECT_CERNLIB_UPPERCASE override DEFECTS += -DDEFECT_NO_MEMBER_TEMPLATES override DEFECTS += -DDEFECT_NO_DELETE_CONST override DEFECTS += -DDEFECT_CMATH_NOT_STD # # Standard defines # # Note that _MT must be defined to bring in the multi-threaded versions # of some of the libraries... # DEFINE_FLAGS := -DWIN32 -D_DEBUG -D_WINDOWS -D_WIN32_WINNT=0x0400 -D_M_IX86 $(DEFECTS) $(DEFINES) -DDATAREP_LITTLE_ENDIAN -D_MT # # Standard debug flags for the C/C++ compiler: # Od -- no optimizations # MTd -- Use the multithreaded dll, debug version # nologo -- We hate MS, after all, right? # GX -- turn on exceptions processing # Z7 -- Put all debug info in the .obj file # Zi -- Put all debug info in the program database # Gm -- Enable minimal rebuild feature # W3 -- Warnings level 3 # YX -- Use precompiled headers. # GR -- Turn RTTI on # Fd -- Location of the program database. This is a filename # that must be translated, so we don't pass it directly # through... # TP -- Force source file to be C++. # nodefaultlib -- Tell the linker to ignore the libraries # specified in the obj files. Instead we will force load # our own. # # Note -- the "-NTxxxx" tells the srt_ntcc script to pass the option # straight through to the command line as "/xxxx" # (where xxxx can be any length). # base_build = -NTOd -NTMTd -NTnologo -NTGX -NTZi -NTGm -Fd$(libdir)/$(CURPKG).pbd -NTW3 -NTGR -NTZm400 -NTFInt/msvc_pragmas.h override CPPFLAGS += $(DEFINE_FLAGS) override CXXFLAGS += $(base_build) $(CXXDEFECTS) override CCFLAGS += $(base_build) # # Flags for fortran # # nologo -- Don't print out the Digital Flag banner (but # digital is almost out of biznez -- don't they need # the publicity? # Od -- No optimizations # MTd -- Use the multithreaded dll, debug version # Z7 -- Full debug info, stuck in the .obj file # iface:nomixed_str_len_arg -- Put all the string lengths at # end of arg list # assume:underscore -- Append a "_" to all routine names, # just like UNIX (duh) # names:lowercase -- All routine names are really lower case. # warn:nofileopt -- Don't complain about inability to do # file-to-file optimizations # extend_source:132 -- Don't stop looking at source at 72 # columns. # override FCFLAGS = -NTnologo -NTOd -NTMTd -NTZ7 -NTiface:nomixed_str_len_arg \ -NTassume:underscore -NTnames:lowercase -NTwarn:nofileopt -NTextend_source:132 # # Flags for the linker # # nologo -- Don't print out logo # bad_libs=-NTLnodefaultlib:libc.lib -NTLnodefaultlib:libcd -NTLnodefaultlib:libcmt.lib -NTLnodefaultlib:msvcrt.lib -NTLnodefaultlib:msvcrtd.lib override bad_libs += -NTLnodefaultlib:libcpd.lib -NTLnodefaultlib:libcp.lib -NTLnodefaultlib:libcpmt.lib -NTLnodefaultlib:msvcprtd.lib -NTLnodefaultlib:msvcprt.lib override win32_libs = kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib override LDFLAGS += -NTLnologo $(bad_libs) $(win32_libs) # # Files to place the cahce for symbolic link resolution in. We do this # because it is so dang slow when trying to connect to a server. This is # pretty ugly cause we have to parse this path without the cache the # first time, but I don't know how else to do it (esp. if the path # involves aliases!). # SRT_ALIAS_CACHE_FILE=$(bindir)/../../tmp/$(BFARCH)/srt_alias_file.python_db SRT_SYM_CACHE_FILE=$(bindir)/../../tmp/$(BFARCH)/srt_sym_file.python_db export SRT_ALIAS_CACHE_FILE export SRT_SYM_CACHE_FILE # lib=$(LIBNT) export lib endif ########################################### # # # NULL # # # ########################################### else # Nothing found - complain ERROR := $(shell echo Could not match BFARCH: $(BFARCH) for system >& 2 ) endif endif endif endif endif endif endif endif endif endif # NOTE: --one_per must precede -o in already defined ARFLAGS ifneq (,$(findstring -KCC_,$(BFARCH))) ifeq (D0,$(EXPERIMENT)) else override CXXFLAGS += --one_per override ARFLAGS := --one_per $(ARFLAGS) override AR := KCC endif endif # Shared archive commands default to regular archive commands ifndef SHAREDAR SHAREDAR=$(AR) endif ifndef SHAREDARFLAGS SHAREDARFLAGS=$(ARFLAGS) endif ifndef SHAREDEXT SHAREDEXT:=.so endif #OPT1 support. Warning! This interface will not be preserved in future # versions of SRT. ifneq (,$(findstring OPT1,$(BFARCH))) override CCFLAGS += $(OPT1addCC) override CXXFLAGS += $(OPT1addCXX) override FCFLAGS += $(OPT1addFC) override LDFLAGS += $(OPT1addLD) override CCFLAGS := $(filter-out $(OPT1subtractAll),$(CCFLAGS)) override CXXFLAGS := $(filter-out $(OPT1subtractAll),$(CXXFLAGS)) override FCFLAGS := $(filter-out $(OPT1subtractAll),$(FCFLAGS)) override LDFLAGS := $(filter-out $(OPT1subtractAll),$(LDFLAGS)) endif