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 # Mimic the structure of an installed system.
  88 
  89 SGSLIBDIR =     $(SGSPROTO)/lib
  90 SGSPREFIX =     $(SGSPROTO)/usr
  91 SGSBINDIR =     $(SGSPREFIX)/bin
  92 
  93 #
  94 # Macros to be used to include link against libconv and include vernote.o
  95 #
  96 VERSREF =       -ulink_ver_string
  97 
  98 LDLIBDIR =      -L$(SGSHOME)/libld/$(MACH)
  99 LDLIBDIR64 =    -L$(SGSHOME)/libld/$(MACH64)
 100 
 101 CONVLIBDIR =    -L$(SGSHOME)/libconv/$(MACH)
 102 CONVLIBDIR64 =  -L$(SGSHOME)/libconv/$(MACH64)
 103 
 104 ELFLIBDIR =     -L$(SGSHOME)/libelf/$(MACH)
 105 ELFLIBDIR64 =   -L$(SGSHOME)/libelf/$(MACH64)
 106 
 107 LDDBGLIBDIR =   -L$(SGSHOME)/liblddbg/$(MACH)
 108 LDDBGLIBDIR64 = -L$(SGSHOME)/liblddbg/$(MACH64)
 109 
 110 
 111 # The cmd/Makefile.com and lib/Makefile.com define TEXT_DOMAIN.  We don't need
 112 # this definition as the sgs utilities obtain their domain via sgsmsg(1l).
 113 
 114 DTEXTDOM =
 115 
 116 # Define any generic sgsmsg(1l) flags.  The default message generation system
 117 # is to use gettext(3i), add the -C flag to switch to catgets(3c).
 118 
 119 SGSMSG =                $(SGSTOOLS)/$(MACH)/sgsmsg
 120 SGSMSG_PIGLATIN_NL =    perl $(SGSTOOLS)/common/sgsmsg_piglatin_nl.pl
 121 CHKMSG =                $(SGSTOOLS)/chkmsg.sh
 122 
 123 SGSMSGVFLAG =
 124 SGSMSGFLAGS =   $(SGSMSGVFLAG) -i $(SGSMSGID)/sgs.ident
 125 CHKMSGFLAGS =   $(SGSMSGTARG:%=-m %) $(SGSMSGCHK:%=-m %)
 126 
 127 # Native targets should use the minimum of ld(1) flags to allow building on
 128 # previous releases.  We use mapfiles to scope, but don't bother versioning.
 129 
 130 native :=       DYNFLAGS = -R$(SGSLIBDIR) -L$(SGSLIBDIR) $(ZNOVERSION) \
 131                         $(HSONAME)
 132 
 133 # Comment out the following two lines to have the sgs built from the system
 134 # link-editor, rather than the local proto link-editor.
 135 CC_USE_PROTO =  -Yl,$(SGSBINDIR)
 136 LD_USE_PROTO =  $(SGSBINDIR)/
 137 
 138 #
 139 # lint-related stuff
 140 #
 141 LIBNAME32 =     $(LIBNAME:%=%32)
 142 LIBNAME64 =     $(LIBNAME:%=%64)
 143 LIBNAMES =      $(LIBNAME32) $(LIBNAME64)
 144 
 145 SGSLINTOUT =    lint.out
 146 LINTOUT1 =      lint.out.1
 147 LINTOUT32 =     lint.out.32
 148 LINTOUT64 =     lint.out.64
 149 LINTOUTS =      $(SGSLINTOUT) $(LINTOUT1) $(LINTOUT32) $(LINTOUT64)
 150 
 151 LINTLIBSRC =    $(LINTLIB:%.ln=%)
 152 LINTLIB32 =     $(LINTLIB:%.ln=%32.ln)
 153 LINTLIB64 =     $(LINTLIB:%.ln=%64.ln)
 154 LINTLIBS =      $(LINTLIB32) $(LINTLIB64)
 155 
 156 LINTFLAGS =     -m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
 157 LINTFLAGS64 =   -m -errtags=yes -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED \
 158                     $(VAR_LINTFLAGS64)
 159 
 160 #
 161 # When building a lint library, no other lint libraries are verified as
 162 # dependencies, nor is the stardard C lint library processed.  All dependency
 163 # verification is carried out through linting the sources themselves.
 164 #
 165 $(LINTLIB) :=   LINTFLAGS += -n
 166 $(LINTLIB) :=   LINTFLAGS64 += -n
 167 
 168 $(LINTLIB32) := LINTFLAGS += -n
 169 $(LINTLIB32) := LINTFLAGS64 += -n
 170 $(LINTLIB64) := LINTFLAGS += -n
 171 $(LINTLIB64) := LINTFLAGS64 += -n
 172 
 173 #
 174 # These libraries have two resulting lint libraries.  If a dependency is
 175 # declared using these variables, the substitution for the 32/64 versions at
 176 # lint time happens automatically (see Makefile.targ).
 177 #
 178 LD_LIB =        -lld
 179 LD_LIB32 =      -lld32
 180 LD_LIB64 =      -lld64
 181 
 182 LDDBG_LIB =     -llddbg
 183 LDDBG_LIB32 =   -llddbg32
 184 LDDBG_LIB64 =   -llddbg64
 185 
 186 CONV_LIB =      -lconv
 187 CONV_LIB32 =    -lconv32
 188 CONV_LIB64 =    -lconv64