Print this page
    
4719 update gate build environment to [open]jdk7 4742 update manifests for javadoc7 4743 Fix deprecated /usr/j2se usage in slp and remove from filesystem(5) manpage 4744 remove traces of /var/sadm/system/admin/default_java Reviewed by: Dan McDonald <danmcd@omniti.com> Reviewed by: Richard Lowe <richlowe@richlowe.net>
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/Makefile.master
          +++ new/usr/src/Makefile.master
   1    1  #
   2    2  # CDDL HEADER START
   3    3  #
   4    4  # The contents of this file are subject to the terms of the
   5    5  # Common Development and Distribution License (the "License").
   6    6  # You may not use this file except in compliance with the License.
   7    7  #
   8    8  # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9    9  # or http://www.opensolaris.org/os/licensing.
  10   10  # See the License for the specific language governing permissions
  11   11  # and limitations under the License.
  12   12  #
  13   13  # When distributing Covered Code, include this CDDL HEADER in each
  14   14  # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15  # If applicable, add the following below this CDDL HEADER, with the
  16   16  # fields enclosed by brackets "[]" replaced with your own identifying
  17   17  # information: Portions Copyright [yyyy] [name of copyright owner]
  18   18  #
  19   19  # CDDL HEADER END
  20   20  #
  21   21  
  22   22  #
  23   23  # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  24   24  # Copyright (c) 2012 by Delphix. All rights reserved.
  25   25  # Copyright 2014 Garrett D'Amore <garrett@damore.org>
  26   26  # Copyright 2015, OmniTI Computer Consulting, Inc. All rights reserved.
  27   27  #
  28   28  
  29   29  #
  30   30  # Makefile.master, global definitions for system source
  31   31  #
  32   32  ROOT=           /proto
  33   33  
  34   34  #
  35   35  # Adjunct root, containing an additional proto area to be used for headers
  36   36  # and libraries.
  37   37  #
  38   38  ADJUNCT_PROTO=
  39   39  
  40   40  #
  41   41  # Adjunct for building things that run on the build machine.
  42   42  #
  43   43  NATIVE_ADJUNCT= /usr
  44   44  
  45   45  #
  46   46  # RELEASE_BUILD should be cleared for final release builds.
  47   47  # NOT_RELEASE_BUILD is exactly what the name implies.
  48   48  #
  49   49  # __GNUC toggles the building of ON components using gcc and related tools.
  50   50  # Normally set to `#', set it to `' to do gcc build.
  51   51  #
  52   52  # The declaration POUND_SIGN is always '#'. This is needed to get around the
  53   53  # make feature that '#' is always a comment delimiter, even when escaped or
  54   54  # quoted. We use this macro expansion method to get POUND_SIGN rather than
  55   55  # always breaking out a shell because the general case can cause a noticable
  56   56  # slowdown in build times when so many Makefiles include Makefile.master.
  57   57  #
  58   58  # While the majority of users are expected to override the setting below
  59   59  # with an env file (via nightly or bldenv), if you aren't building that way
  60   60  # (ie, you're using "ws" or some other bootstrapping method) then you need
  61   61  # this definition in order to avoid the subshell invocation mentioned above.
  62   62  #
  63   63  
  64   64  PRE_POUND=                              pre\#
  65   65  POUND_SIGN=                             $(PRE_POUND:pre\%=%)
  66   66  
  67   67  NOT_RELEASE_BUILD=
  68   68  RELEASE_BUILD=                          $(POUND_SIGN)
  69   69  $(RELEASE_BUILD)NOT_RELEASE_BUILD=      $(POUND_SIGN)
  70   70  PATCH_BUILD=                            $(POUND_SIGN)
  71   71  
  72   72  # SPARC_BLD is '#' for an Intel build.
  73   73  # INTEL_BLD is '#' for a Sparc build.
  74   74  SPARC_BLD_1=    $(MACH:i386=$(POUND_SIGN))
  75   75  SPARC_BLD=      $(SPARC_BLD_1:sparc=)
  76   76  INTEL_BLD_1=    $(MACH:sparc=$(POUND_SIGN))
  77   77  INTEL_BLD=      $(INTEL_BLD_1:i386=)
  78   78  
  79   79  # The variables below control the compilers used during the build.
  80   80  # There are a number of permutations.
  81   81  #
  82   82  # __GNUC and __SUNC control (and indicate) the primary compiler.  Whichever
  83   83  # one is not POUND_SIGN is the primary, with the other as the shadow.  They
  84   84  # may also be used to control entirely compiler-specific Makefile assignments.
  85   85  # __GNUC and GCC are the default.
  86   86  #
  87   87  # __GNUC64 indicates that the 64bit build should use the GNU C compiler.
  88   88  # There is no Sun C analogue.
  89   89  #
  90   90  # The following version-specific options are operative regardless of which
  91   91  # compiler is primary, and control the versions of the given compilers to be
  92   92  # used.  They also allow compiler-version specific Makefile fragments.
  93   93  #
  94   94  
  95   95  __SUNC=                 $(POUND_SIGN)
  96   96  $(__SUNC)__GNUC=        $(POUND_SIGN)
  97   97  __GNUC64=               $(__GNUC)
  98   98  
  99   99  # CLOSED is the root of the tree that contains source which isn't released
 100  100  # as open source
 101  101  CLOSED=         $(SRC)/../closed
 102  102  
 103  103  # BUILD_TOOLS is the root of all tools including compilers.
 104  104  # ONBLD_TOOLS is the root of all the tools that are part of SUNWonbld.
 105  105  
 106  106  BUILD_TOOLS=            /ws/onnv-tools
 107  107  ONBLD_TOOLS=            $(BUILD_TOOLS)/onbld
 108  108  
 109  109  JAVA_ROOT=      /usr/java
 110  110  
 111  111  SFW_ROOT=       /usr/sfw
 112  112  SFWINCDIR=      $(SFW_ROOT)/include
 113  113  SFWLIBDIR=      $(SFW_ROOT)/lib
 114  114  SFWLIBDIR64=    $(SFW_ROOT)/lib/$(MACH64)
 115  115  
 116  116  GCC_ROOT=       /opt/gcc/4.4.4
 117  117  GCCLIBDIR=      $(GCC_ROOT)/lib
 118  118  GCCLIBDIR64=    $(GCC_ROOT)/lib/$(MACH64)
 119  119  
 120  120  DOCBOOK_XSL_ROOT=       /usr/share/sgml/docbook/xsl-stylesheets
 121  121  
 122  122  RPCGEN=         /usr/bin/rpcgen
 123  123  STABS=          $(ONBLD_TOOLS)/bin/$(MACH)/stabs
 124  124  ELFEXTRACT=     $(ONBLD_TOOLS)/bin/$(MACH)/elfextract
 125  125  MBH_PATCH=      $(ONBLD_TOOLS)/bin/$(MACH)/mbh_patch
 126  126  ECHO=           echo
 127  127  INS=            install
 128  128  TRUE=           true
 129  129  SYMLINK=        /usr/bin/ln -s
 130  130  LN=             /usr/bin/ln
 131  131  CHMOD=          /usr/bin/chmod
 132  132  MV=             /usr/bin/mv -f
 133  133  RM=             /usr/bin/rm -f
 134  134  CUT=            /usr/bin/cut
 135  135  NM=             /usr/ccs/bin/nm
 136  136  DIFF=           /usr/bin/diff
 137  137  GREP=           /usr/bin/grep
 138  138  EGREP=          /usr/bin/egrep
 139  139  ELFWRAP=        /usr/bin/elfwrap
 140  140  KSH93=          /usr/bin/ksh93
 141  141  SED=            /usr/bin/sed
 142  142  NAWK=           /usr/bin/nawk
 143  143  CP=             /usr/bin/cp -f
 144  144  MCS=            /usr/ccs/bin/mcs
 145  145  CAT=            /usr/bin/cat
 146  146  ELFDUMP=        /usr/ccs/bin/elfdump
 147  147  M4=             /usr/ccs/bin/m4
 148  148  STRIP=          /usr/ccs/bin/strip
 149  149  LEX=            /usr/ccs/bin/lex
 150  150  FLEX=           $(SFW_ROOT)/bin/flex
 151  151  YACC=           /usr/ccs/bin/yacc
 152  152  CPP=            /usr/lib/cpp
 153  153  JAVAC=          $(JAVA_ROOT)/bin/javac
 154  154  JAVAH=          $(JAVA_ROOT)/bin/javah
 155  155  JAVADOC=        $(JAVA_ROOT)/bin/javadoc
 156  156  RMIC=           $(JAVA_ROOT)/bin/rmic
 157  157  JAR=            $(JAVA_ROOT)/bin/jar
 158  158  CTFCONVERT=     $(ONBLD_TOOLS)/bin/$(MACH)/ctfconvert
 159  159  CTFMERGE=       $(ONBLD_TOOLS)/bin/$(MACH)/ctfmerge
 160  160  CTFSTABS=       $(ONBLD_TOOLS)/bin/$(MACH)/ctfstabs
 161  161  CTFSTRIP=       $(ONBLD_TOOLS)/bin/$(MACH)/ctfstrip
 162  162  NDRGEN=         $(ONBLD_TOOLS)/bin/$(MACH)/ndrgen
 163  163  GENOFFSETS=     $(ONBLD_TOOLS)/bin/genoffsets
 164  164  XREF=           $(ONBLD_TOOLS)/bin/xref
 165  165  FIND=           /usr/bin/find
 166  166  PERL=           /usr/bin/perl
 167  167  PERL_VERSION=   5.10.0
 168  168  PERL_PKGVERS=   -510
 169  169  PERL_ARCH =             i86pc-solaris-64int
 170  170  $(SPARC_BLD)PERL_ARCH = sun4-solaris-64int
 171  171  PYTHON_26=      /usr/bin/python2.6
 172  172  PYTHON=         $(PYTHON_26)
 173  173  SORT=           /usr/bin/sort
 174  174  TOUCH=          /usr/bin/touch
 175  175  WC=             /usr/bin/wc
 176  176  XARGS=          /usr/bin/xargs
 177  177  ELFEDIT=        /usr/bin/elfedit
 178  178  ELFSIGN=        /usr/bin/elfsign
 179  179  DTRACE=         /usr/sbin/dtrace -xnolibs
 180  180  UNIQ=           /usr/bin/uniq
 181  181  TAR=            /usr/bin/tar
 182  182  ASTBINDIR=      /usr/ast/bin
 183  183  MSGCC=          $(ASTBINDIR)/msgcc
 184  184  
 185  185  FILEMODE=       644
 186  186  DIRMODE=        755
 187  187  
 188  188  # Declare that nothing should be built in parallel.
 189  189  # Individual Makefiles can use the .PARALLEL target to declare otherwise.
 190  190  .NO_PARALLEL:
 191  191  
 192  192  # For stylistic checks
 193  193  #
 194  194  # Note that the X and C checks are not used at this time and may need
 195  195  # modification when they are actually used.
 196  196  #
 197  197  CSTYLE=         $(ONBLD_TOOLS)/bin/cstyle
 198  198  CSTYLE_TAIL=
 199  199  HDRCHK=         $(ONBLD_TOOLS)/bin/hdrchk
 200  200  HDRCHK_TAIL=
 201  201  JSTYLE=         $(ONBLD_TOOLS)/bin/jstyle
 202  202  
 203  203  DOT_H_CHECK=    \
 204  204          @$(ECHO) "checking $<"; $(CSTYLE) $< $(CSTYLE_TAIL); \
 205  205          $(HDRCHK) $< $(HDRCHK_TAIL)
 206  206  
 207  207  DOT_X_CHECK=    \
 208  208          @$(ECHO) "checking $<"; $(RPCGEN) -C -h $< | $(CSTYLE) $(CSTYLE_TAIL); \
 209  209          $(RPCGEN) -C -h $< | $(HDRCHK) $< $(HDRCHK_TAIL)
 210  210  
 211  211  DOT_C_CHECK=    \
 212  212          @$(ECHO) "checking $<"; $(CSTYLE) $< $(CSTYLE_TAIL)
 213  213  
 214  214  MANIFEST_CHECK= \
 215  215          @$(ECHO) "checking $<"; \
 216  216          SVCCFG_DTD=$(SRC)/cmd/svc/dtd/service_bundle.dtd.1 \
 217  217          SVCCFG_REPOSITORY=$(SRC)/cmd/svc/seed/global.db \
 218  218          SVCCFG_CONFIGD_PATH=$(SRC)/cmd/svc/configd/svc.configd-native \
 219  219          $(SRC)/cmd/svc/svccfg/svccfg-native validate $<
 220  220  
 221  221  INS.file=       $(RM) $@; $(INS) -s -m $(FILEMODE) -f $(@D) $<
 222  222  INS.dir=        $(INS) -s -d -m $(DIRMODE) $@
 223  223  # installs and renames at once
 224  224  #
 225  225  INS.rename=     $(INS.file); $(MV) $(@D)/$(<F) $@
 226  226  
 227  227  # install a link
 228  228  INSLINKTARGET=  $<
 229  229  INS.link=       $(RM) $@; $(LN) $(INSLINKTARGET) $@
 230  230  INS.symlink=    $(RM) $@; $(SYMLINK) $(INSLINKTARGET) $@
 231  231  
 232  232  #
 233  233  # Python bakes the mtime of the .py file into the compiled .pyc and
 234  234  # rebuilds if the baked-in mtime != the mtime of the source file
 235  235  # (rather than only if it's less than), thus when installing python
 236  236  # files we must make certain to not adjust the mtime of the source
 237  237  # (.py) file.
 238  238  #
 239  239  INS.pyfile=     $(INS.file); $(TOUCH) -r $< $@
 240  240  
 241  241  # MACH must be set in the shell environment per uname -p on the build host
 242  242  # More specific architecture variables should be set in lower makefiles.
 243  243  #
 244  244  # MACH64 is derived from MACH, and BUILD64 is set to `#' for
 245  245  # architectures on which we do not build 64-bit versions.
 246  246  # (There are no such architectures at the moment.)
 247  247  #
 248  248  # Set BUILD64=# in the environment to disable 64-bit amd64
 249  249  # builds on i386 machines.
 250  250  
 251  251  MACH64_1=       $(MACH:sparc=sparcv9)
 252  252  MACH64=         $(MACH64_1:i386=amd64)
 253  253  
 254  254  MACH32_1=       $(MACH:sparc=sparcv7)
 255  255  MACH32=         $(MACH32_1:i386=i86)
 256  256  
 257  257  sparc_BUILD64=
 258  258  i386_BUILD64=
 259  259  BUILD64=        $($(MACH)_BUILD64)
 260  260  
 261  261  #
 262  262  # C compiler mode. Future compilers may change the default on us,
 263  263  # so force extended ANSI mode globally. Lower level makefiles can
 264  264  # override this by setting CCMODE.
 265  265  #
 266  266  CCMODE=                 -Xa
 267  267  CCMODE64=               -Xa
 268  268  
 269  269  #
 270  270  # C compiler verbose mode. This is so we can enable it globally,
 271  271  # but turn it off in the lower level makefiles of things we cannot
 272  272  # (or aren't going to) fix.
 273  273  #
 274  274  CCVERBOSE=              -v
 275  275  
 276  276  # set this to the secret flag "-Wc,-Qiselect-v9abiwarn=1" to get warnings
 277  277  # from the compiler about places the -xarch=v9 may differ from -xarch=v9c.
 278  278  V9ABIWARN=
 279  279  
 280  280  # set this to the secret flag "-Wc,-Qiselect-regsym=0" to disable register
 281  281  # symbols (used to detect conflicts between objects that use global registers)
 282  282  # we disable this now for safety, and because genunix doesn't link with
 283  283  # this feature (the v9 default) enabled.
 284  284  #
 285  285  # REGSYM is separate since the C++ driver syntax is different.
 286  286  CCREGSYM=               -Wc,-Qiselect-regsym=0
 287  287  CCCREGSYM=              -Qoption cg -Qiselect-regsym=0
 288  288  
 289  289  # Prevent the removal of static symbols by the SPARC code generator (cg).
 290  290  # The x86 code generator (ube) does not remove such symbols and as such
 291  291  # using this workaround is not applicable for x86.
 292  292  #
 293  293  CCSTATICSYM=            -Wc,-Qassembler-ounrefsym=0
 294  294  #
 295  295  # generate 32-bit addresses in the v9 kernel. Saves memory.
 296  296  CCABS32=                -Wc,-xcode=abs32
 297  297  #
 298  298  # generate v9 code which tolerates callers using the v7 ABI, for the sake of
 299  299  # system calls.
 300  300  CC32BITCALLERS=         -_gcc=-massume-32bit-callers
 301  301  
 302  302  # GCC, especially, is increasingly beginning to auto-inline functions and
 303  303  # sadly does so separately not under the general -fno-inline-functions
 304  304  # Additionally, we wish to prevent optimisations which cause GCC to clone
 305  305  # functions -- in particular, these may cause unhelpful symbols to be
 306  306  # emitted instead of function names
 307  307  CCNOAUTOINLINE= -_gcc=-fno-inline-small-functions \
 308  308          -_gcc=-fno-inline-functions-called-once \
 309  309          -_gcc=-fno-ipa-cp
 310  310  
 311  311  # One optimization the compiler might perform is to turn this:
 312  312  #       #pragma weak foo
 313  313  #       extern int foo;
 314  314  #       if (&foo)
 315  315  #               foo = 5;
 316  316  # into
 317  317  #       foo = 5;
 318  318  # Since we do some of this (foo might be referenced in common kernel code
 319  319  # but provided only for some cpu modules or platforms), we disable this
 320  320  # optimization.
 321  321  #
 322  322  sparc_CCUNBOUND = -Wd,-xsafe=unboundsym
 323  323  i386_CCUNBOUND  =
 324  324  CCUNBOUND       = $($(MACH)_CCUNBOUND)
 325  325  
 326  326  #
 327  327  # compiler '-xarch' flag. This is here to centralize it and make it
 328  328  # overridable for testing.
 329  329  sparc_XARCH=    -m32
 330  330  sparcv9_XARCH=  -m64
 331  331  i386_XARCH=
 332  332  amd64_XARCH=    -m64 -Ui386 -U__i386
 333  333  
 334  334  # assembler '-xarch' flag.  Different from compiler '-xarch' flag.
 335  335  sparc_AS_XARCH=         -xarch=v8plus
 336  336  sparcv9_AS_XARCH=       -xarch=v9
 337  337  i386_AS_XARCH=
 338  338  amd64_AS_XARCH=         -xarch=amd64 -P -Ui386 -U__i386
 339  339  
 340  340  #
 341  341  # These flags define what we need to be 'standalone' i.e. -not- part
 342  342  # of the rather more cosy userland environment.  This basically means
 343  343  # the kernel.
 344  344  #
 345  345  # XX64  future versions of gcc will make -mcmodel=kernel imply -mno-red-zone
 346  346  #
 347  347  sparc_STAND_FLAGS=      -_gcc=-ffreestanding
 348  348  sparcv9_STAND_FLAGS=    -_gcc=-ffreestanding
 349  349  # Disabling MMX also disables 3DNow, disabling SSE also disables all later
 350  350  # additions to SSE (SSE2, AVX ,etc.)
 351  351  NO_SIMD=                -_gcc=-mno-mmx -_gcc=-mno-sse
 352  352  i386_STAND_FLAGS=       -_gcc=-ffreestanding $(NO_SIMD)
 353  353  amd64_STAND_FLAGS=      -xmodel=kernel $(NO_SIMD)
 354  354  
 355  355  SAVEARGS=               -Wu,-save_args
 356  356  amd64_STAND_FLAGS       += $(SAVEARGS)
 357  357  
 358  358  STAND_FLAGS_32 = $($(MACH)_STAND_FLAGS)
 359  359  STAND_FLAGS_64 = $($(MACH64)_STAND_FLAGS)
 360  360  
 361  361  #
 362  362  # disable the incremental linker
 363  363  ILDOFF=                 -xildoff
 364  364  #
 365  365  XDEPEND=                -xdepend
 366  366  XFFLAG=                 -xF=%all
 367  367  XESS=                   -xs
 368  368  XSTRCONST=              -xstrconst
 369  369  
 370  370  #
 371  371  # turn warnings into errors (C)
 372  372  CERRWARN = -errtags=yes -errwarn=%all
 373  373  CERRWARN += -erroff=E_EMPTY_TRANSLATION_UNIT
 374  374  CERRWARN += -erroff=E_STATEMENT_NOT_REACHED
 375  375  
 376  376  CERRWARN += -_gcc=-Wno-missing-braces
 377  377  CERRWARN += -_gcc=-Wno-sign-compare
 378  378  CERRWARN += -_gcc=-Wno-unknown-pragmas
 379  379  CERRWARN += -_gcc=-Wno-unused-parameter
 380  380  CERRWARN += -_gcc=-Wno-missing-field-initializers
 381  381  
 382  382  # Unfortunately, this option can misfire very easily and unfixably.
 383  383  CERRWARN +=     -_gcc=-Wno-array-bounds
 384  384  
 385  385  # DEBUG v. -nd make for frequent unused variables, empty conditions, etc. in
 386  386  # -nd builds
 387  387  $(RELEASE_BUILD)CERRWARN += -_gcc=-Wno-unused
 388  388  $(RELEASE_BUILD)CERRWARN += -_gcc=-Wno-empty-body
 389  389  
 390  390  #
 391  391  # turn warnings into errors (C++)
 392  392  CCERRWARN=              -xwe
 393  393  
 394  394  # C99 mode
 395  395  C99_ENABLE=     -xc99=%all
 396  396  C99_DISABLE=    -xc99=%none
 397  397  C99MODE=        $(C99_DISABLE)
 398  398  C99LMODE=       $(C99MODE:-xc99%=-Xc99%)
 399  399  
 400  400  # In most places, assignments to these macros should be appended with +=
 401  401  # (CPPFLAGS.master allows values to be prepended to CPPFLAGS).
 402  402  sparc_CFLAGS=   $(sparc_XARCH) $(CCSTATICSYM)
 403  403  sparcv9_CFLAGS= $(sparcv9_XARCH) -dalign $(CCVERBOSE) $(V9ABIWARN) $(CCREGSYM) \
 404  404                  $(CCSTATICSYM)
 405  405  i386_CFLAGS=    $(i386_XARCH)
 406  406  amd64_CFLAGS=   $(amd64_XARCH)
 407  407  
 408  408  sparc_ASFLAGS=  $(sparc_AS_XARCH)
 409  409  sparcv9_ASFLAGS=$(sparcv9_AS_XARCH)
 410  410  i386_ASFLAGS=   $(i386_AS_XARCH)
 411  411  amd64_ASFLAGS=  $(amd64_AS_XARCH)
 412  412  
 413  413  #
 414  414  sparc_COPTFLAG=         -xO3
 415  415  sparcv9_COPTFLAG=       -xO3
 416  416  i386_COPTFLAG=          -O
 417  417  amd64_COPTFLAG=         -xO3
 418  418  
 419  419  COPTFLAG= $($(MACH)_COPTFLAG)
 420  420  COPTFLAG64= $($(MACH64)_COPTFLAG)
 421  421  
 422  422  # When -g is used, the compiler globalizes static objects
 423  423  # (gives them a unique prefix). Disable that.
 424  424  CNOGLOBAL= -W0,-noglobal
 425  425  
 426  426  # Direct the Sun Studio compiler to use a static globalization prefix based on the
 427  427  # name of the module rather than something unique. Otherwise, objects
 428  428  # will not build deterministically, as subsequent compilations of identical
 429  429  # source will yeild objects that always look different.
 430  430  #
 431  431  # In the same spirit, this will also remove the date from the N_OPT stab.
 432  432  CGLOBALSTATIC= -W0,-xglobalstatic
 433  433  
 434  434  # Sometimes we want all symbols and types in debugging information even
 435  435  # if they aren't used.
 436  436  CALLSYMS=       -W0,-xdbggen=no%usedonly
 437  437  
 438  438  #
 439  439  # Default debug format for Sun Studio 11 is dwarf, so force it to
 440  440  # generate stabs.
 441  441  #
 442  442  DEBUGFORMAT=    -xdebugformat=stabs
 443  443  
 444  444  #
 445  445  # Flags used to build in debug mode for ctf generation.  Bugs in the Devpro
 446  446  # compilers currently prevent us from building with cc-emitted DWARF.
 447  447  #
 448  448  CTF_FLAGS_sparc = -g -Wc,-Qiselect-T1 $(C99MODE) $(CNOGLOBAL) $(CDWARFSTR)
 449  449  CTF_FLAGS_i386  = -g $(C99MODE) $(CNOGLOBAL) $(CDWARFSTR)
 450  450  
 451  451  CTF_FLAGS_sparcv9       = $(CTF_FLAGS_sparc)
 452  452  CTF_FLAGS_amd64         = $(CTF_FLAGS_i386)
 453  453  
 454  454  # Sun Studio produces broken userland code when saving arguments.
 455  455  $(__GNUC)CTF_FLAGS_amd64 += $(SAVEARGS)
 456  456  
 457  457  CTF_FLAGS_32    = $(CTF_FLAGS_$(MACH)) $(DEBUGFORMAT)
 458  458  CTF_FLAGS_64    = $(CTF_FLAGS_$(MACH64)) $(DEBUGFORMAT)
 459  459  CTF_FLAGS       = $(CTF_FLAGS_32)
 460  460  
 461  461  #
 462  462  # Flags used with genoffsets
 463  463  #
 464  464  GOFLAGS = -_noecho \
 465  465          $(CALLSYMS) \
 466  466          $(CDWARFSTR)
 467  467  
 468  468  OFFSETS_CREATE = $(GENOFFSETS) -s $(CTFSTABS) -r $(CTFCONVERT) \
 469  469          $(CC) $(GOFLAGS) $(CFLAGS) $(CPPFLAGS)
 470  470  
 471  471  OFFSETS_CREATE64 = $(GENOFFSETS) -s $(CTFSTABS) -r $(CTFCONVERT) \
 472  472          $(CC) $(GOFLAGS) $(CFLAGS64) $(CPPFLAGS)
 473  473  
 474  474  #
 475  475  # tradeoff time for space (smaller is better)
 476  476  #
 477  477  sparc_SPACEFLAG         = -xspace -W0,-Lt
 478  478  sparcv9_SPACEFLAG       = -xspace -W0,-Lt
 479  479  i386_SPACEFLAG          = -xspace
 480  480  amd64_SPACEFLAG         =
 481  481  
 482  482  SPACEFLAG               = $($(MACH)_SPACEFLAG)
 483  483  SPACEFLAG64             = $($(MACH64)_SPACEFLAG)
 484  484  
 485  485  #
 486  486  # The Sun Studio 11 compiler has changed the behaviour of integer
 487  487  # wrap arounds and so a flag is needed to use the legacy behaviour
 488  488  # (without this flag panics/hangs could be exposed within the source).
 489  489  #
 490  490  sparc_IROPTFLAG         = -W2,-xwrap_int
 491  491  sparcv9_IROPTFLAG       = -W2,-xwrap_int
 492  492  i386_IROPTFLAG          =
 493  493  amd64_IROPTFLAG         =
 494  494  
 495  495  IROPTFLAG               = $($(MACH)_IROPTFLAG)
 496  496  IROPTFLAG64             = $($(MACH64)_IROPTFLAG)
 497  497  
 498  498  sparc_XREGSFLAG         = -xregs=no%appl
 499  499  sparcv9_XREGSFLAG       = -xregs=no%appl
 500  500  i386_XREGSFLAG          =
 501  501  amd64_XREGSFLAG         =
 502  502  
 503  503  XREGSFLAG               = $($(MACH)_XREGSFLAG)
 504  504  XREGSFLAG64             = $($(MACH64)_XREGSFLAG)
 505  505  
 506  506  # dmake SOURCEDEBUG=yes ... enables source-level debugging information, and
 507  507  # avoids stripping it.
 508  508  SOURCEDEBUG     = $(POUND_SIGN)
 509  509  SRCDBGBLD       = $(SOURCEDEBUG:yes=)
 510  510  
 511  511  #
 512  512  # These variables are intended ONLY for use by developers to safely pass extra
 513  513  # flags to the compilers without unintentionally overriding Makefile-set
 514  514  # flags.  They should NEVER be set to any value in a Makefile.
 515  515  #
 516  516  # They come last in the associated FLAGS variable such that they can
 517  517  # explicitly override things if necessary, there are gaps in this, but it's
 518  518  # the best we can manage.
 519  519  #
 520  520  CUSERFLAGS              =
 521  521  CUSERFLAGS64            = $(CUSERFLAGS)
 522  522  CCUSERFLAGS             =
 523  523  CCUSERFLAGS64           = $(CCUSERFLAGS)
 524  524  
 525  525  CSOURCEDEBUGFLAGS       =
 526  526  CCSOURCEDEBUGFLAGS      =
 527  527  $(SRCDBGBLD)CSOURCEDEBUGFLAGS   = -g -xs
 528  528  $(SRCDBGBLD)CCSOURCEDEBUGFLAGS  = -g -xs
 529  529  
 530  530  CFLAGS=         $(COPTFLAG) $($(MACH)_CFLAGS) $(SPACEFLAG) $(CCMODE) \
 531  531                  $(ILDOFF) $(CERRWARN) $(C99MODE) $(CCUNBOUND) $(IROPTFLAG) \
 532  532                  $(CGLOBALSTATIC) $(CCNOAUTOINLINE) $(CSOURCEDEBUGFLAGS) \
 533  533                  $(CUSERFLAGS)
 534  534  CFLAGS64=       $(COPTFLAG64) $($(MACH64)_CFLAGS) $(SPACEFLAG64) $(CCMODE64) \
 535  535                  $(ILDOFF) $(CERRWARN) $(C99MODE) $(CCUNBOUND) $(IROPTFLAG64) \
 536  536                  $(CGLOBALSTATIC) $(CCNOAUTOINLINE) $(CSOURCEDEBUGFLAGS) \
 537  537                  $(CUSERFLAGS64)
 538  538  #
 539  539  # Flags that are used to build parts of the code that are subsequently
 540  540  # run on the build machine (also known as the NATIVE_BUILD).
 541  541  #
 542  542  NATIVE_CFLAGS=  $(COPTFLAG) $($(NATIVE_MACH)_CFLAGS) $(CCMODE) \
 543  543                  $(ILDOFF) $(CERRWARN) $(C99MODE) $($(NATIVE_MACH)_CCUNBOUND) \
 544  544                  $(IROPTFLAG) $(CGLOBALSTATIC) $(CCNOAUTOINLINE) \
 545  545                  $(CSOURCEDEBUGFLAGS) $(CUSERFLAGS)
  
    | 
      ↓ open down ↓ | 
    545 lines elided | 
    
      ↑ open up ↑ | 
  
 546  546  
 547  547  DTEXTDOM=-DTEXT_DOMAIN=\"$(TEXT_DOMAIN)\"       # For messaging.
 548  548  DTS_ERRNO=-D_TS_ERRNO
 549  549  CPPFLAGS.master=$(DTEXTDOM) $(DTS_ERRNO) \
 550  550          $(ENVCPPFLAGS1) $(ENVCPPFLAGS2) $(ENVCPPFLAGS3) $(ENVCPPFLAGS4) \
 551  551          $(ADJUNCT_PROTO:%=-I%/usr/include)
 552  552  CPPFLAGS.native=$(ENVCPPFLAGS1) $(ENVCPPFLAGS2) $(ENVCPPFLAGS3) \
 553  553                  $(ENVCPPFLAGS4) -I$(NATIVE_ADJUNCT)/include
 554  554  CPPFLAGS=       $(CPPFLAGS.master)
 555  555  AS_CPPFLAGS=    $(CPPFLAGS.master)
 556      -JAVAFLAGS=      -deprecation
      556 +JAVAFLAGS=      -source 1.6 -target 1.6 -Xlint:deprecation,-options
 557  557  
 558  558  #
 559  559  # For source message catalogue
 560  560  #
 561  561  .SUFFIXES: $(SUFFIXES) .i .po
 562  562  MSGROOT= $(ROOT)/catalog
 563  563  MSGDOMAIN= $(MSGROOT)/$(TEXT_DOMAIN)
 564  564  MSGDOMAINPOFILE = $(MSGDOMAIN)/$(POFILE)
 565  565  DCMSGDOMAIN= $(MSGROOT)/LC_TIME/$(TEXT_DOMAIN)
 566  566  DCMSGDOMAINPOFILE = $(DCMSGDOMAIN)/$(DCFILE:.dc=.po)
 567  567  
 568  568  CLOBBERFILES += $(POFILE) $(POFILES)
 569  569  COMPILE.cpp= $(CC) -E -C $(CFLAGS) $(CPPFLAGS)
 570  570  XGETTEXT= /usr/bin/xgettext
 571  571  XGETFLAGS= -c TRANSLATION_NOTE
 572  572  GNUXGETTEXT= /usr/gnu/bin/xgettext
 573  573  GNUXGETFLAGS= --add-comments=TRANSLATION_NOTE --keyword=_ \
 574  574          --strict --no-location --omit-header
 575  575  BUILD.po= $(XGETTEXT) $(XGETFLAGS) -d $(<F) $<.i ;\
 576  576          $(RM)   $@ ;\
 577  577          $(SED) "/^domain/d" < $(<F).po > $@ ;\
 578  578          $(RM) $(<F).po $<.i
 579  579  
 580  580  #
 581  581  # This is overwritten by local Makefile when PROG is a list.
 582  582  #
 583  583  POFILE= $(PROG).po
 584  584  
 585  585  sparc_CCFLAGS=          -cg92 -compat=4 \
 586  586                          -Qoption ccfe -messages=no%anachronism \
 587  587                          $(CCERRWARN)
 588  588  sparcv9_CCFLAGS=        $(sparcv9_XARCH) -dalign -compat=5 \
 589  589                          -Qoption ccfe -messages=no%anachronism \
 590  590                          -Qoption ccfe -features=no%conststrings \
 591  591                          $(CCCREGSYM) \
 592  592                          $(CCERRWARN)
 593  593  i386_CCFLAGS=           -compat=4 \
 594  594                          -Qoption ccfe -messages=no%anachronism \
 595  595                          -Qoption ccfe -features=no%conststrings \
 596  596                          $(CCERRWARN)
 597  597  amd64_CCFLAGS=          $(amd64_XARCH) -compat=5 \
 598  598                          -Qoption ccfe -messages=no%anachronism \
 599  599                          -Qoption ccfe -features=no%conststrings \
 600  600                          $(CCERRWARN)
 601  601  
 602  602  sparc_CCOPTFLAG=        -O
 603  603  sparcv9_CCOPTFLAG=      -O
 604  604  i386_CCOPTFLAG=         -O
 605  605  amd64_CCOPTFLAG=        -O
 606  606  
 607  607  CCOPTFLAG=      $($(MACH)_CCOPTFLAG)
 608  608  CCOPTFLAG64=    $($(MACH64)_CCOPTFLAG)
 609  609  CCFLAGS=        $(CCOPTFLAG) $($(MACH)_CCFLAGS) $(CCSOURCEDEBUGFLAGS) \
 610  610                  $(CCUSERFLAGS)
 611  611  CCFLAGS64=      $(CCOPTFLAG64) $($(MACH64)_CCFLAGS) $(CCSOURCEDEBUGFLAGS) \
 612  612                  $(CCUSERFLAGS64)
 613  613  
 614  614  #
 615  615  #
 616  616  #
 617  617  ELFWRAP_FLAGS   =
 618  618  ELFWRAP_FLAGS64 =       -64
 619  619  
 620  620  #
 621  621  # Various mapfiles that are used throughout the build, and delivered to
 622  622  # /usr/lib/ld.
 623  623  #
 624  624  MAPFILE.NED_i386 =      $(SRC)/common/mapfiles/common/map.noexdata
 625  625  MAPFILE.NED_sparc =
 626  626  MAPFILE.NED =           $(MAPFILE.NED_$(MACH))
 627  627  MAPFILE.PGA =           $(SRC)/common/mapfiles/common/map.pagealign
 628  628  MAPFILE.NES =           $(SRC)/common/mapfiles/common/map.noexstk
 629  629  MAPFILE.FLT =           $(SRC)/common/mapfiles/common/map.filter
 630  630  MAPFILE.LEX =           $(SRC)/common/mapfiles/common/map.lex.yy
 631  631  
 632  632  #
 633  633  # Generated mapfiles that are compiler specific, and used throughout the
 634  634  # build.  These mapfiles are not delivered in /usr/lib/ld.
 635  635  #
 636  636  MAPFILE.NGB_sparc=      $(SRC)/common/mapfiles/gen/sparc_cc_map.noexeglobs
 637  637  $(__GNUC64)MAPFILE.NGB_sparc= \
 638  638                          $(SRC)/common/mapfiles/gen/sparc_gcc_map.noexeglobs
 639  639  MAPFILE.NGB_sparcv9=    $(SRC)/common/mapfiles/gen/sparcv9_cc_map.noexeglobs
 640  640  $(__GNUC64)MAPFILE.NGB_sparcv9= \
 641  641                          $(SRC)/common/mapfiles/gen/sparcv9_gcc_map.noexeglobs
 642  642  MAPFILE.NGB_i386=       $(SRC)/common/mapfiles/gen/i386_cc_map.noexeglobs
 643  643  $(__GNUC64)MAPFILE.NGB_i386= \
 644  644                          $(SRC)/common/mapfiles/gen/i386_gcc_map.noexeglobs
 645  645  MAPFILE.NGB_amd64=      $(SRC)/common/mapfiles/gen/amd64_cc_map.noexeglobs
 646  646  $(__GNUC64)MAPFILE.NGB_amd64= \
 647  647                          $(SRC)/common/mapfiles/gen/amd64_gcc_map.noexeglobs
 648  648  MAPFILE.NGB =           $(MAPFILE.NGB_$(MACH))
 649  649  
 650  650  #
 651  651  # A generic interface mapfile name, used by various dynamic objects to define
 652  652  # the interfaces and interposers the object must export.
 653  653  #
 654  654  MAPFILE.INT =           mapfile-intf
 655  655  
 656  656  #
 657  657  # LDLIBS32 and LDLIBS64 can be set in the environment to override the following
 658  658  # assignments.
 659  659  #
 660  660  # These environment settings make sure that no libraries are searched outside
 661  661  # of the local workspace proto area:
 662  662  #       LDLIBS32=-YP,$ROOT/lib:$ROOT/usr/lib
 663  663  #       LDLIBS64=-YP,$ROOT/lib/$MACH64:$ROOT/usr/lib/$MACH64
 664  664  #
 665  665  LDLIBS32 =      $(ENVLDLIBS1) $(ENVLDLIBS2) $(ENVLDLIBS3)
 666  666  LDLIBS32 +=     $(ADJUNCT_PROTO:%=-L%/usr/lib -L%/lib)
 667  667  LDLIBS.cmd =    $(LDLIBS32)
 668  668  LDLIBS.lib =    $(LDLIBS32)
 669  669  
 670  670  LDLIBS64 =      $(ENVLDLIBS1:%=%/$(MACH64)) \
 671  671                  $(ENVLDLIBS2:%=%/$(MACH64)) \
 672  672                  $(ENVLDLIBS3:%=%/$(MACH64))
 673  673  LDLIBS64 +=     $(ADJUNCT_PROTO:%=-L%/usr/lib/$(MACH64) -L%/lib/$(MACH64))
 674  674  
 675  675  #
 676  676  # Define compilation macros.
 677  677  #
 678  678  COMPILE.c=      $(CC) $(CFLAGS) $(CPPFLAGS) -c
 679  679  COMPILE64.c=    $(CC) $(CFLAGS64) $(CPPFLAGS) -c
 680  680  COMPILE.cc=     $(CCC) $(CCFLAGS) $(CPPFLAGS) -c
 681  681  COMPILE64.cc=   $(CCC) $(CCFLAGS64) $(CPPFLAGS) -c
 682  682  COMPILE.s=      $(AS) $(ASFLAGS) $(AS_CPPFLAGS)
 683  683  COMPILE64.s=    $(AS) $(ASFLAGS) $($(MACH64)_AS_XARCH) $(AS_CPPFLAGS)
 684  684  COMPILE.d=      $(DTRACE) -G -32
 685  685  COMPILE64.d=    $(DTRACE) -G -64
 686  686  COMPILE.b=      $(ELFWRAP) $(ELFWRAP_FLAGS$(CLASS))
 687  687  COMPILE64.b=    $(ELFWRAP) $(ELFWRAP_FLAGS$(CLASS))
 688  688  
 689  689  CLASSPATH=      .
 690  690  COMPILE.java=   $(JAVAC) $(JAVAFLAGS) -classpath $(CLASSPATH)
 691  691  
 692  692  #
 693  693  # Link time macros
 694  694  #
 695  695  CCNEEDED                = -lC
 696  696  CCEXTNEEDED             = -lCrun -lCstd
 697  697  $(__GNUC)CCNEEDED       = -L$(GCCLIBDIR) -lstdc++ -lgcc_s
 698  698  $(__GNUC)CCEXTNEEDED    = $(CCNEEDED)
 699  699  
 700  700  LINK.c=         $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)
 701  701  LINK64.c=       $(CC) $(CFLAGS64) $(CPPFLAGS) $(LDFLAGS)
 702  702  NORUNPATH=      -norunpath -nolib
 703  703  LINK.cc=        $(CCC) $(CCFLAGS) $(CPPFLAGS) $(NORUNPATH) \
 704  704                  $(LDFLAGS) $(CCNEEDED)
 705  705  LINK64.cc=      $(CCC) $(CCFLAGS64) $(CPPFLAGS) $(NORUNPATH) \
 706  706                  $(LDFLAGS) $(CCNEEDED)
 707  707  
 708  708  #
 709  709  # lint macros
 710  710  #
 711  711  # Note that the undefine of __PRAGMA_REDEFINE_EXTNAME can be removed once
 712  712  # ON is built with a version of lint that has the fix for 4484186.
 713  713  #
 714  714  ALWAYS_LINT_DEFS =      -errtags=yes -s
 715  715  ALWAYS_LINT_DEFS +=     -erroff=E_PTRDIFF_OVERFLOW
 716  716  ALWAYS_LINT_DEFS +=     -erroff=E_ASSIGN_NARROW_CONV
 717  717  ALWAYS_LINT_DEFS +=     -U__PRAGMA_REDEFINE_EXTNAME
 718  718  ALWAYS_LINT_DEFS +=     $(C99LMODE)
 719  719  ALWAYS_LINT_DEFS +=     -errsecurity=$(SECLEVEL)
 720  720  ALWAYS_LINT_DEFS +=     -erroff=E_SEC_CREAT_WITHOUT_EXCL
 721  721  ALWAYS_LINT_DEFS +=     -erroff=E_SEC_FORBIDDEN_WARN_CREAT
 722  722  # XX64 -- really only needed for amd64 lint
 723  723  ALWAYS_LINT_DEFS +=     -erroff=E_ASSIGN_INT_TO_SMALL_INT
 724  724  ALWAYS_LINT_DEFS +=     -erroff=E_CAST_INT_CONST_TO_SMALL_INT
 725  725  ALWAYS_LINT_DEFS +=     -erroff=E_CAST_INT_TO_SMALL_INT
 726  726  ALWAYS_LINT_DEFS +=     -erroff=E_CAST_TO_PTR_FROM_INT
 727  727  ALWAYS_LINT_DEFS +=     -erroff=E_COMP_INT_WITH_LARGE_INT
 728  728  ALWAYS_LINT_DEFS +=     -erroff=E_INTEGRAL_CONST_EXP_EXPECTED
 729  729  ALWAYS_LINT_DEFS +=     -erroff=E_PASS_INT_TO_SMALL_INT
 730  730  ALWAYS_LINT_DEFS +=     -erroff=E_PTR_CONV_LOSES_BITS
 731  731  
 732  732  # This forces lint to pick up note.h and sys/note.h from Devpro rather than
 733  733  # from the proto area.  The note.h that ON delivers would disable NOTE().
 734  734  ONLY_LINT_DEFS =        -I$(SPRO_VROOT)/prod/include/lint
 735  735  
 736  736  SECLEVEL=       core
 737  737  LINT.c=         $(LINT) $(ONLY_LINT_DEFS) $(LINTFLAGS) $(CPPFLAGS) \
 738  738                  $(ALWAYS_LINT_DEFS)
 739  739  LINT64.c=       $(LINT) $(ONLY_LINT_DEFS) $(LINTFLAGS64) $(CPPFLAGS) \
 740  740                  $(ALWAYS_LINT_DEFS)
 741  741  LINT.s=         $(LINT.c)
 742  742  
 743  743  # For some future builds, NATIVE_MACH and MACH might be different.
 744  744  # Therefore, NATIVE_MACH needs to be redefined in the
 745  745  # environment as `uname -p` to override this macro.
 746  746  #
 747  747  # For now at least, we cross-compile amd64 on i386 machines.
 748  748  NATIVE_MACH=    $(MACH:amd64=i386)
 749  749  
 750  750  # Define native compilation macros
 751  751  #
 752  752  
 753  753  # Base directory where compilers are loaded.
 754  754  # Defined here so it can be overridden by developer.
 755  755  #
 756  756  SPRO_ROOT=              $(BUILD_TOOLS)/SUNWspro
 757  757  SPRO_VROOT=             $(SPRO_ROOT)/SS12
 758  758  GNU_ROOT=               $(SFW_ROOT)
 759  759  
 760  760  # Till SS12u1 formally becomes the NV CBE, LINT is hard
 761  761  # coded to be picked up from the $SPRO_ROOT/sunstudio12.1/
 762  762  # location. Impacted variables are sparc_LINT, sparcv9_LINT,
 763  763  # i386_LINT, amd64_LINT.
 764  764  # Reset them when SS12u1 is rolled out.
 765  765  #
 766  766  
 767  767  # Specify platform compiler versions for languages
 768  768  # that we use (currently only c and c++).
 769  769  #
 770  770  sparc_CC=               $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
 771  771  $(__GNUC)sparc_CC=      $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
 772  772  sparc_CCC=              $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
 773  773  $(__GNUC)sparc_CCC=     $(ONBLD_TOOLS)/bin/$(MACH)/cw -_g++
 774  774  sparc_CPP=              /usr/ccs/lib/cpp
 775  775  sparc_AS=               /usr/ccs/bin/as -xregsym=no
 776  776  sparc_LD=               /usr/ccs/bin/ld
 777  777  sparc_LINT=             $(SPRO_ROOT)/sunstudio12.1/bin/lint
 778  778  
 779  779  sparcv9_CC=             $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
 780  780  $(__GNUC64)sparcv9_CC=  $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
 781  781  sparcv9_CCC=            $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
 782  782  $(__GNUC64)sparcv9_CCC= $(ONBLD_TOOLS)/bin/$(MACH)/cw -_g++
 783  783  sparcv9_CPP=            /usr/ccs/lib/cpp
 784  784  sparcv9_AS=             /usr/ccs/bin/as -xregsym=no
 785  785  sparcv9_LD=             /usr/ccs/bin/ld
 786  786  sparcv9_LINT=           $(SPRO_ROOT)/sunstudio12.1/bin/lint
 787  787  
 788  788  i386_CC=                $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
 789  789  $(__GNUC)i386_CC=       $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
 790  790  i386_CCC=               $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
 791  791  $(__GNUC)i386_CCC=      $(ONBLD_TOOLS)/bin/$(MACH)/cw -_g++
 792  792  i386_CPP=               /usr/ccs/lib/cpp
 793  793  i386_AS=                /usr/ccs/bin/as
 794  794  $(__GNUC)i386_AS=       $(ONBLD_TOOLS)/bin/$(MACH)/aw
 795  795  i386_LD=                /usr/ccs/bin/ld
 796  796  i386_LINT=              $(SPRO_ROOT)/sunstudio12.1/bin/lint
 797  797  
 798  798  amd64_CC=               $(ONBLD_TOOLS)/bin/$(MACH)/cw -_cc
 799  799  $(__GNUC64)amd64_CC=    $(ONBLD_TOOLS)/bin/$(MACH)/cw -_gcc
 800  800  amd64_CCC=              $(ONBLD_TOOLS)/bin/$(MACH)/cw -_CC
 801  801  $(__GNUC64)amd64_CCC=   $(ONBLD_TOOLS)/bin/$(MACH)/cw -_g++
 802  802  amd64_CPP=              /usr/ccs/lib/cpp
 803  803  amd64_AS=               $(ONBLD_TOOLS)/bin/$(MACH)/aw
 804  804  amd64_LD=               /usr/ccs/bin/ld
 805  805  amd64_LINT=             $(SPRO_ROOT)/sunstudio12.1/bin/lint
 806  806  
 807  807  NATIVECC=               $($(NATIVE_MACH)_CC)
 808  808  NATIVECCC=              $($(NATIVE_MACH)_CCC)
 809  809  NATIVECPP=              $($(NATIVE_MACH)_CPP)
 810  810  NATIVEAS=               $($(NATIVE_MACH)_AS)
 811  811  NATIVELD=               $($(NATIVE_MACH)_LD)
 812  812  NATIVELINT=             $($(NATIVE_MACH)_LINT)
 813  813  
 814  814  #
 815  815  # Makefile.master.64 overrides these settings
 816  816  #
 817  817  CC=                     $(NATIVECC)
 818  818  CCC=                    $(NATIVECCC)
 819  819  CPP=                    $(NATIVECPP)
 820  820  AS=                     $(NATIVEAS)
 821  821  LD=                     $(NATIVELD)
 822  822  LINT=                   $(NATIVELINT)
 823  823  
 824  824  # The real compilers used for this build
 825  825  CW_CC_CMD=              $(CC) -_compiler
 826  826  CW_CCC_CMD=             $(CCC) -_compiler
 827  827  REAL_CC=                $(CW_CC_CMD:sh)
 828  828  REAL_CCC=               $(CW_CCC_CMD:sh)
 829  829  
 830  830  # Pass -Y flag to cpp (method of which is release-dependent)
 831  831  CCYFLAG=                -Y I,
 832  832  
 833  833  BDIRECT=        -Bdirect
 834  834  BDYNAMIC=       -Bdynamic
 835  835  BLOCAL=         -Blocal
 836  836  BNODIRECT=      -Bnodirect
 837  837  BREDUCE=        -Breduce
 838  838  BSTATIC=        -Bstatic
 839  839  
 840  840  ZDEFS=          -zdefs
 841  841  ZDIRECT=        -zdirect
 842  842  ZIGNORE=        -zignore
 843  843  ZINITFIRST=     -zinitfirst
 844  844  ZINTERPOSE=     -zinterpose
 845  845  ZLAZYLOAD=      -zlazyload
 846  846  ZLOADFLTR=      -zloadfltr
 847  847  ZMULDEFS=       -zmuldefs
 848  848  ZNODEFAULTLIB=  -znodefaultlib
 849  849  ZNODEFS=        -znodefs
 850  850  ZNODELETE=      -znodelete
 851  851  ZNODLOPEN=      -znodlopen
 852  852  ZNODUMP=        -znodump
 853  853  ZNOLAZYLOAD=    -znolazyload
 854  854  ZNOLDYNSYM=     -znoldynsym
 855  855  ZNORELOC=       -znoreloc
 856  856  ZNOVERSION=     -znoversion
 857  857  ZRECORD=        -zrecord
 858  858  ZREDLOCSYM=     -zredlocsym
 859  859  ZTEXT=          -ztext
 860  860  ZVERBOSE=       -zverbose
 861  861  
 862  862  GSHARED=        -G
 863  863  CCMT=           -mt
 864  864  
 865  865  # Handle different PIC models on different ISAs
 866  866  # (May be overridden by lower-level Makefiles)
 867  867  
 868  868  sparc_C_PICFLAGS =      -K pic
 869  869  sparcv9_C_PICFLAGS =    -K pic
 870  870  i386_C_PICFLAGS =       -K pic
 871  871  amd64_C_PICFLAGS =      -K pic
 872  872  C_PICFLAGS =            $($(MACH)_C_PICFLAGS)
 873  873  C_PICFLAGS64 =          $($(MACH64)_C_PICFLAGS)
 874  874  
 875  875  sparc_C_BIGPICFLAGS =   -K PIC
 876  876  sparcv9_C_BIGPICFLAGS = -K PIC
 877  877  i386_C_BIGPICFLAGS =    -K PIC
 878  878  amd64_C_BIGPICFLAGS =   -K PIC
 879  879  C_BIGPICFLAGS =         $($(MACH)_C_BIGPICFLAGS)
 880  880  C_BIGPICFLAGS64 =       $($(MACH64)_C_BIGPICFLAGS)
 881  881  
 882  882  # CC requires there to be no space between '-K' and 'pic' or 'PIC'.
 883  883  sparc_CC_PICFLAGS =     -Kpic
 884  884  sparcv9_CC_PICFLAGS =   -KPIC
 885  885  i386_CC_PICFLAGS =      -Kpic
 886  886  amd64_CC_PICFLAGS =     -Kpic
 887  887  CC_PICFLAGS =           $($(MACH)_CC_PICFLAGS)
 888  888  CC_PICFLAGS64 =         $($(MACH64)_CC_PICFLAGS)
 889  889  
 890  890  AS_PICFLAGS=            $(C_PICFLAGS)
 891  891  AS_BIGPICFLAGS=         $(C_BIGPICFLAGS)
 892  892  
 893  893  #
 894  894  # Default label for CTF sections
 895  895  #
 896  896  CTFCVTFLAGS=            -i -L VERSION
 897  897  
 898  898  #
 899  899  # Override to pass module-specific flags to ctfmerge.  Currently used only by
 900  900  # krtld to turn on fuzzy matching, and source-level debugging to inhibit
 901  901  # stripping.
 902  902  #
 903  903  CTFMRGFLAGS=
 904  904  
 905  905  CTFCONVERT_O            = $(CTFCONVERT) $(CTFCVTFLAGS) $@
 906  906  
 907  907  ELFSIGN_O=      $(TRUE)
 908  908  ELFSIGN_CRYPTO= $(ELFSIGN_O)
 909  909  ELFSIGN_OBJECT= $(ELFSIGN_O)
 910  910  
 911  911  # Rules (normally from make.rules) and macros which are used for post
 912  912  # processing files. Normally, these do stripping of the comment section
 913  913  # automatically.
 914  914  #    RELEASE_CM:        Should be editted to reflect the release.
 915  915  #    POST_PROCESS_O:    Post-processing for `.o' files.
 916  916  #    POST_PROCESS_A:    Post-processing for `.a' files (currently null).
 917  917  #    POST_PROCESS_SO:   Post-processing for `.so' files.
 918  918  #    POST_PROCESS:      Post-processing for executable files (no suffix).
 919  919  # Note that these macros are not completely generalized as they are to be
 920  920  # used with the file name to be processed following.
 921  921  #
 922  922  # It is left as an exercise to Release Engineering to embellish the generation
 923  923  # of the release comment string.
 924  924  #
 925  925  #       If this is a standard development build:
 926  926  #               compress the comment section (mcs -c)
 927  927  #               add the standard comment (mcs -a $(RELEASE_CM))
 928  928  #               add the development specific comment (mcs -a $(DEV_CM))
 929  929  #
 930  930  #       If this is an installation build:
 931  931  #               delete the comment section (mcs -d)
 932  932  #               add the standard comment (mcs -a $(RELEASE_CM))
 933  933  #               add the development specific comment (mcs -a $(DEV_CM))
 934  934  #
 935  935  #       If this is an release build:
 936  936  #               delete the comment section (mcs -d)
 937  937  #               add the standard comment (mcs -a $(RELEASE_CM))
 938  938  #
 939  939  # The following list of macros are used in the definition of RELEASE_CM
 940  940  # which is used to label all binaries in the build:
 941  941  #
 942  942  #       RELEASE         Specific release of the build, eg: 5.2
 943  943  #       RELEASE_MAJOR   Major version number part of $(RELEASE)
 944  944  #       RELEASE_MINOR   Minor version number part of $(RELEASE)
 945  945  #       VERSION         Version of the build (alpha, beta, Generic)
 946  946  #       PATCHID         If this is a patch this value should contain
 947  947  #                       the patchid value (eg: "Generic 100832-01"), otherwise
 948  948  #                       it will be set to $(VERSION)
 949  949  #       RELEASE_DATE    Date of the Release Build
 950  950  #       PATCH_DATE      Date the patch was created, if this is blank it
 951  951  #                       will default to the RELEASE_DATE
 952  952  #
 953  953  RELEASE_MAJOR=  5
 954  954  RELEASE_MINOR=  11
 955  955  RELEASE=        $(RELEASE_MAJOR).$(RELEASE_MINOR)
 956  956  VERSION=        SunOS Development
 957  957  PATCHID=        $(VERSION)
 958  958  RELEASE_DATE=   release date not set
 959  959  PATCH_DATE=     $(RELEASE_DATE)
 960  960  RELEASE_CM=     "@($(POUND_SIGN))SunOS $(RELEASE) $(PATCHID) $(PATCH_DATE)"
 961  961  DEV_CM=         "@($(POUND_SIGN))SunOS Internal Development: non-nightly build"
 962  962  
 963  963  PROCESS_COMMENT=  @?${MCS} -d -a $(RELEASE_CM) -a $(DEV_CM)
 964  964  $(RELEASE_BUILD)PROCESS_COMMENT=   @?${MCS} -d -a $(RELEASE_CM)
 965  965  
 966  966  STRIP_STABS=                       $(STRIP) -x $@
 967  967  $(SRCDBGBLD)STRIP_STABS=           :
 968  968  
 969  969  POST_PROCESS_O= 
 970  970  POST_PROCESS_A=
 971  971  POST_PROCESS_SO=        $(PROCESS_COMMENT) $@ ; $(STRIP_STABS) ; \
 972  972                          $(ELFSIGN_OBJECT)
 973  973  POST_PROCESS=           $(PROCESS_COMMENT) $@ ; $(STRIP_STABS) ; \
 974  974                          $(ELFSIGN_OBJECT)
 975  975  
 976  976  #
 977  977  # chk4ubin is a tool that inspects a module for a symbol table
 978  978  # ELF section size which can trigger an OBP bug on older platforms.
 979  979  # This problem affects only specific sun4u bootable modules.
 980  980  #
 981  981  CHK4UBIN=       $(ONBLD_TOOLS)/bin/$(MACH)/chk4ubin
 982  982  CHK4UBINFLAGS=
 983  983  CHK4UBINARY=    $(CHK4UBIN) $(CHK4UBINFLAGS) $@
 984  984  
 985  985  #
 986  986  # PKGARCHIVE specifies the default location where packages should be
 987  987  # placed if built.
 988  988  #
 989  989  $(RELEASE_BUILD)PKGARCHIVESUFFIX=       -nd
 990  990  PKGARCHIVE=$(SRC)/../../packages/$(MACH)/nightly$(PKGARCHIVESUFFIX)
 991  991  
 992  992  #
 993  993  # The repositories will be created with these publisher settings.  To
 994  994  # update an image to the resulting repositories, this must match the
 995  995  # publisher name provided to "pkg set-publisher."
 996  996  #
 997  997  PKGPUBLISHER_REDIST=    on-nightly
 998  998  PKGPUBLISHER_NONREDIST= on-extra
 999  999  
1000 1000  #       Default build rules which perform comment section post-processing.
1001 1001  #
1002 1002  .c:
1003 1003          $(LINK.c) -o $@ $< $(LDLIBS)
1004 1004          $(POST_PROCESS)
1005 1005  .c.o:
1006 1006          $(COMPILE.c) $(OUTPUT_OPTION) $< $(CTFCONVERT_HOOK)
1007 1007          $(POST_PROCESS_O)
1008 1008  .c.a:
1009 1009          $(COMPILE.c) -o $% $<
1010 1010          $(PROCESS_COMMENT) $%
1011 1011          $(AR) $(ARFLAGS) $@ $%
1012 1012          $(RM) $%
1013 1013  .s.o:
1014 1014          $(COMPILE.s) -o $@ $<
1015 1015          $(POST_PROCESS_O)
1016 1016  .s.a:
1017 1017          $(COMPILE.s) -o $% $<
1018 1018          $(PROCESS_COMMENT) $%
1019 1019          $(AR) $(ARFLAGS) $@ $%
1020 1020          $(RM) $%
1021 1021  .cc:
1022 1022          $(LINK.cc) -o $@ $< $(LDLIBS)
1023 1023          $(POST_PROCESS)
1024 1024  .cc.o:
1025 1025          $(COMPILE.cc) $(OUTPUT_OPTION) $<
1026 1026          $(POST_PROCESS_O)
1027 1027  .cc.a:
1028 1028          $(COMPILE.cc) -o $% $<
1029 1029          $(AR) $(ARFLAGS) $@ $%
1030 1030          $(PROCESS_COMMENT) $%
1031 1031          $(RM) $%
1032 1032  .y:
1033 1033          $(YACC.y) $<
1034 1034          $(LINK.c) -o $@ y.tab.c $(LDLIBS)
1035 1035          $(POST_PROCESS)
1036 1036          $(RM) y.tab.c
1037 1037  .y.o:
1038 1038          $(YACC.y) $<
1039 1039          $(COMPILE.c) -o $@ y.tab.c $(CTFCONVERT_HOOK)
1040 1040          $(POST_PROCESS_O)
1041 1041          $(RM) y.tab.c
1042 1042  .l:
1043 1043          $(RM) $*.c
1044 1044          $(LEX.l) $< > $*.c
1045 1045          $(LINK.c) -o $@ $*.c -ll $(LDLIBS)
1046 1046          $(POST_PROCESS)
1047 1047          $(RM) $*.c
1048 1048  .l.o:
1049 1049          $(RM) $*.c
1050 1050          $(LEX.l) $< > $*.c
1051 1051          $(COMPILE.c) -o $@ $*.c $(CTFCONVERT_HOOK)
1052 1052          $(POST_PROCESS_O)
1053 1053          $(RM) $*.c
1054 1054  
1055 1055  .bin.o:
1056 1056          $(COMPILE.b) -o $@ $<
1057 1057          $(POST_PROCESS_O)
1058 1058  
1059 1059  .java.class:
1060 1060          $(COMPILE.java) $<
1061 1061  
1062 1062  # Bourne and Korn shell script message catalog build rules.
1063 1063  # We extract all gettext strings with sed(1) (being careful to permit
1064 1064  # multiple gettext strings on the same line), weed out the dups, and
1065 1065  # build the catalogue with awk(1).
1066 1066  
1067 1067  .sh.po .ksh.po:
1068 1068          $(SED) -n -e ":a"                               \
1069 1069                    -e "h"                                        \
1070 1070                    -e "s/.*gettext *\(\"[^\"]*\"\).*/\1/p"       \
1071 1071                    -e "x"                                        \
1072 1072                    -e "s/\(.*\)gettext *\"[^\"]*\"\(.*\)/\1\2/"  \
1073 1073                    -e "t a"                                      \
1074 1074                 $< | sort -u | awk '{ print "msgid\t" $$0 "\nmsgstr" }' > $@
1075 1075  
1076 1076  #
1077 1077  # Python and Perl executable and message catalog build rules.
1078 1078  #
1079 1079  .SUFFIXES: .pl .pm .py .pyc
1080 1080  
1081 1081  .pl:
1082 1082          $(RM) $@;
1083 1083          $(SED) -e "s@TEXT_DOMAIN@\"$(TEXT_DOMAIN)\"@" $< > $@;
1084 1084          $(CHMOD) +x $@
1085 1085  
1086 1086  .py:
1087 1087          $(RM) $@; $(CAT) $< > $@; $(CHMOD) +x $@
1088 1088  
1089 1089  .py.pyc:
1090 1090          $(RM) $@
1091 1091          $(PYTHON) -mpy_compile $<
1092 1092          @[ $(<)c = $@ ] || $(MV) $(<)c $@
1093 1093  
1094 1094  .py.po:
1095 1095          $(GNUXGETTEXT) $(GNUXGETFLAGS) -d $(<F:%.py=%) $< ;
1096 1096  
1097 1097  .pl.po .pm.po:
1098 1098          $(XGETTEXT) $(XGETFLAGS) -d $(<F) $< ;
1099 1099          $(RM)   $@ ;
1100 1100          $(SED) "/^domain/d" < $(<F).po > $@ ;
1101 1101          $(RM) $(<F).po
1102 1102  
1103 1103  #
1104 1104  # When using xgettext, we want messages to go to the default domain,
1105 1105  # rather than the specified one.  This special version of the
1106 1106  # COMPILE.cpp macro effectively prevents expansion of TEXT_DOMAIN,
1107 1107  # causing xgettext to put all messages into the default domain.
1108 1108  #
1109 1109  CPPFORPO=$(COMPILE.cpp:\"$(TEXT_DOMAIN)\"=TEXT_DOMAIN)
1110 1110  
1111 1111  .c.i:
1112 1112          $(CPPFORPO) $< > $@
1113 1113  
1114 1114  .h.i:
1115 1115          $(CPPFORPO) $< > $@
1116 1116  
1117 1117  .y.i:
1118 1118          $(YACC) -d $<
1119 1119          $(CPPFORPO) y.tab.c  > $@
1120 1120          $(RM) y.tab.c
1121 1121  
1122 1122  .l.i:
1123 1123          $(LEX) $<
1124 1124          $(CPPFORPO) lex.yy.c  > $@
1125 1125          $(RM) lex.yy.c
1126 1126  
1127 1127  .c.po:
1128 1128          $(CPPFORPO) $< > $<.i
1129 1129          $(BUILD.po)
1130 1130  
1131 1131  .y.po:
1132 1132          $(YACC) -d $<
1133 1133          $(CPPFORPO) y.tab.c  > $<.i
1134 1134          $(BUILD.po)
1135 1135          $(RM) y.tab.c
1136 1136  
1137 1137  .l.po:
1138 1138          $(LEX) $<
1139 1139          $(CPPFORPO) lex.yy.c  > $<.i
1140 1140          $(BUILD.po)
1141 1141          $(RM) lex.yy.c
1142 1142  
1143 1143  #
1144 1144  # Rules to perform stylistic checks
1145 1145  #
1146 1146  .SUFFIXES: .x .xml .check .xmlchk
1147 1147  
1148 1148  .h.check:
1149 1149          $(DOT_H_CHECK)
1150 1150  
1151 1151  .x.check:
1152 1152          $(DOT_X_CHECK)
1153 1153  
1154 1154  .xml.xmlchk:
1155 1155          $(MANIFEST_CHECK)
1156 1156  
1157 1157  #
1158 1158  # Include rules to render automated sccs get rules "safe".
1159 1159  #
1160 1160  include $(SRC)/Makefile.noget
  
    | 
      ↓ open down ↓ | 
    594 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX