1 #
   2 # CDDL HEADER START
   3 #
   4 # The contents of this file are subject to the terms of the
   5 # Common Development and Distribution License (the "License").
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets "[]" replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 
  22 #
  23 # Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
  24 # Copyright 2016 RackTop Systems.
  25 #
  26 
  27 .KEEP_STATE:
  28 .KEEP_STATE_FILE: .make.state.$(MACH)
  29 
  30 
  31 include         $(SRC)/cmd/sgs/Makefile.var
  32 
  33 SRCBASE =       ../../../..
  34 
  35 i386_ARCH =     intel
  36 sparc_ARCH =    sparc
  37 
  38 ARCH =          $($(MACH)_ARCH)
  39 
  40 # Establish any global flags.
  41 
  42 # Setting DEBUG = -DDEBUG (or "make DEBUG=-DDEBUG ...") enables ASSERT()
  43 # checking.  This is automatically enabled for DEBUG builds, not for non-debug
  44 # builds.  Unset the global C99_DISABLE flag to insure we uncover all compiler
  45 # warnings/errors.
  46 DEBUG =
  47 $(NOT_RELEASE_BUILD)DEBUG = -DDEBUG
  48 
  49 C99_DISABLE =   $(C99_ENABLE)
  50 
  51 CFLAGS +=       $(CCVERBOSE) $(DEBUG) $(XFFLAG)
  52 CFLAGS64 +=     $(CCVERBOSE) $(DEBUG) $(XFFLAG)
  53 
  54 CERRWARN +=     -_gcc=-Wno-type-limits
  55 CERRWARN +=     -_gcc=-Wno-parentheses
  56 CERRWARN +=     -_gcc=-Wno-unused-value
  57 
  58 #
  59 # Location of the shared elfcap code
  60 #
  61 ELFCAP=         $(SRC)/common/elfcap
  62 
  63 # Reassign CPPFLAGS so that local search paths are used before any parent
  64 # $ROOT paths.
  65 CPPFLAGS =      -I. -I../common -I../../include -I../../include/$(MACH) \
  66                 $(CPPFLAGS.master) -I$(ELFCAP)
  67 
  68 # PICS64 is unique to our environment
  69 $(PICS64) :=    sparc_CFLAGS += -xregs=no%appl -K pic
  70 $(PICS64) :=    sparcv9_CFLAGS += -xregs=no%appl -K pic
  71 $(PICS64) :=    CPPFLAGS += -DPIC -D_REENTRANT
  72 
  73 LDFLAGS +=      $(ZIGNORE)
  74 DYNFLAGS +=     $(ZIGNORE)
  75 
  76 # Establish the local tools, proto and package area.
  77 
  78 SGSHOME =       $(SRC)/cmd/sgs
  79 SGSPROTO =      $(SGSHOME)/proto/$(MACH)
  80 SGSTOOLS =      $(SGSHOME)/tools
  81 SGSMSGID =      $(SGSHOME)/messages
  82 SGSMSGDIR =     $(SGSHOME)/messages/$(MACH)
  83 SGSONLD =       $(ROOT)/opt/SUNWonld
  84 SGSRPATH =      /usr/lib
  85 SGSRPATH64 =    $(SGSRPATH)/$(MACH64)
  86 
  87 #
  88 # Macros to be used to include link against libconv and include vernote.o
  89 #
  90 VERSREF =       -ulink_ver_string
  91 
  92 LDLIBDIR =      -L$(SGSHOME)/libld/$(MACH)
  93 LDLIBDIR64 =    -L$(SGSHOME)/libld/$(MACH64)
  94 
  95 CONVLIBDIR =    -L$(SGSHOME)/libconv/$(MACH)
  96 CONVLIBDIR64 =  -L$(SGSHOME)/libconv/$(MACH64)
  97 
  98 ELFLIBDIR =     -L$(SGSHOME)/libelf/$(MACH)
  99 ELFLIBDIR64 =   -L$(SGSHOME)/libelf/$(MACH64)
 100 
 101 LDDBGLIBDIR =   -L$(SGSHOME)/liblddbg/$(MACH)
 102 LDDBGLIBDIR64 = -L$(SGSHOME)/liblddbg/$(MACH64)
 103 
 104 
 105 # The cmd/Makefile.com and lib/Makefile.com define TEXT_DOMAIN.  We don't need
 106 # this definition as the sgs utilities obtain their domain via sgsmsg(1l).
 107 
 108 DTEXTDOM =
 109 
 110 # Define any generic sgsmsg(1l) flags.  The default message generation system
 111 # is to use gettext(3i), add the -C flag to switch to catgets(3c).
 112 
 113 SGSMSG =                $(SGSTOOLS)/$(MACH)/sgsmsg
 114 SGSMSG_PIGLATIN_NL =    perl $(SGSTOOLS)/common/sgsmsg_piglatin_nl.pl
 115 CHKMSG =                $(SGSTOOLS)/chkmsg.sh
 116 
 117 SGSMSGVFLAG =
 118 SGSMSGFLAGS =   $(SGSMSGVFLAG) -i $(SGSMSGID)/sgs.ident
 119 CHKMSGFLAGS =   $(SGSMSGTARG:%=-m %) $(SGSMSGCHK:%=-m %)
 120 
 121 # Native targets should use the minimum of ld(1) flags to allow building on
 122 # previous releases.  We use mapfiles to scope, but don't bother versioning.
 123 
 124 native :=       DYNFLAGS = -R$(SGSPROTO) -L$(SGSPROTO) $(ZNOVERSION) $(HSONAME)
 125 
 126 # Comment out the following two lines to have the sgs built from the system
 127 # link-editor, rather than the local proto link-editor.
 128 CC_USE_PROTO =  -Yl,$(SGSPROTO)
 129 LD_USE_PROTO =  $(SGSPROTO)/
 130 
 131 #
 132 # lint-related stuff
 133 #
 134 LIBNAME32 =     $(LIBNAME:%=%32)
 135 LIBNAME64 =     $(LIBNAME:%=%64)
 136 LIBNAMES =      $(LIBNAME32) $(LIBNAME64)
 137 
 138 SGSLINTOUT =    lint.out
 139 LINTOUT1 =      lint.out.1
 140 LINTOUT32 =     lint.out.32
 141 LINTOUT64 =     lint.out.64
 142 LINTOUTS =      $(SGSLINTOUT) $(LINTOUT1) $(LINTOUT32) $(LINTOUT64)
 143 
 144 LINTLIBSRC =    $(LINTLIB:%.ln=%)
 145 LINTLIB32 =     $(LINTLIB:%.ln=%32.ln)
 146 LINTLIB64 =     $(LINTLIB:%.ln=%64.ln)
 147 LINTLIBS =      $(LINTLIB32) $(LINTLIB64)
 148 
 149 LINTFLAGS =     -m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
 150 LINTFLAGS64 =   -m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED \
 151                     $(VAR_LINTFLAGS64)
 152 
 153 #
 154 # When building a lint library, no other lint libraries are verified as
 155 # dependencies, nor is the stardard C lint library processed.  All dependency
 156 # verification is carried out through linting the sources themselves.
 157 #
 158 $(LINTLIB) :=   LINTFLAGS += -n
 159 $(LINTLIB) :=   LINTFLAGS64 += -n
 160 
 161 $(LINTLIB32) := LINTFLAGS += -n
 162 $(LINTLIB32) := LINTFLAGS64 += -n
 163 $(LINTLIB64) := LINTFLAGS += -n
 164 $(LINTLIB64) := LINTFLAGS64 += -n
 165 
 166 #
 167 # These libraries have two resulting lint libraries.  If a dependency is
 168 # declared using these variables, the substitution for the 32/64 versions at
 169 # lint time happens automatically (see Makefile.targ).
 170 #
 171 LD_LIB =        -lld
 172 LD_LIB32 =      -lld32
 173 LD_LIB64 =      -lld64
 174 
 175 LDDBG_LIB =     -llddbg
 176 LDDBG_LIB32 =   -llddbg32
 177 LDDBG_LIB64 =   -llddbg64
 178 
 179 CONV_LIB =      -lconv
 180 CONV_LIB32 =    -lconv32
 181 CONV_LIB64 =    -lconv64