Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:03:24

0001 # ======================================================================
0002 #
0003 # arch_spec_Exceptions.mk - Architecture/site-specific makefile fragment
0004 #   for inclusion by packages that use Zoom's Exceptions package.
0005 #
0006 # History:
0007 #   08-Feb-2000  WEB  Extracted from ZMutility/zoom.symbols.mk; updated
0008 #     logic reflecting KAI 3.3+ defaults; moved into Exceptions package
0009 #     (could later be moved into SoftRelTools package, if suffient use)
0010 #   30-May-2002  WEB  Updated logic for post-egcs versions of gcc
0011 #
0012 # ======================================================================
0013 
0014 
0015 # ----------------------------------------------------------------------
0016 # Prepare for SRT package specialization logic:
0017 # ----------------------------------------------------------------------
0018 
0019 extpkg := Exceptions
0020 
0021 
0022 # ----------------------------------------------------------------------
0023 # Note whether exception-handling is disabled:
0024 # ----------------------------------------------------------------------
0025 
0026 Exceptions_USED := yes  # assume exceptions are enabled
0027 
0028 ifeq ($(CXX),KCC)       # KCC 3.3 onward defaults to "--exceptions"
0029   ifeq ($(filter --no_exceptions,$(CXXFLAGS)),--no_exceptions)
0030     Exceptions_USED := no
0031   endif
0032 endif                   # KCC
0033 
0034 #ifeq ($(CXX),g++)       # egcs required "-fhandle-exceptions" and "-frtti"
0035 #  ifeq ($(filter -fhandle-exceptions,$(CXXFLAGS)),)
0036 #    Exceptions_USED := no
0037 #  endif
0038 #  ifeq ($(filter -frtti,$(CXXFLAGS)),)
0039 #    Exceptions_USED := no
0040 #  endif
0041 #endif                   # g++
0042 
0043 ifeq ($(CXX),g++)       # gcc 2.95.2 onward defaults to "-fexceptions"
0044   ifeq ($(filter -fno_exceptions,$(CXXFLAGS)),-fno_exceptions)
0045     Exceptions_USED := no
0046   endif
0047 endif                   # g++
0048 
0049 
0050 # ----------------------------------------------------------------------
0051 # Connect to SRT package specialization logic:
0052 # ----------------------------------------------------------------------
0053 
0054 include SoftRelTools/specialize_arch_spec.mk
0055 include SoftRelTools/arch_spec_clhep.mk
0056 
0057 # ----------------------------------------------------------------------
0058 # Define DEFECT_NO_EXCEPTIONS if exceptions are not used
0059 # (in order to force an abort() call instead of a throw
0060 # in packages that employ Zoom's Exceptions package):
0061 # ----------------------------------------------------------------------
0062 
0063 ifeq ($(Exceptions_USED),no)
0064   # avoid duplicate:
0065   ifneq ($(filter -DDEFECT_NO_EXCEPTIONS,$(CPPFLAGS)),-DDEFECT_NO_EXCEPTIONS)
0066     override CPPFLAGS += -DDEFECT_NO_EXCEPTIONS
0067   endif
0068 endif                   # $(Exceptions_USED) == no