Print this page
    
NEX-16705 Turn off globallint
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Jean McCormack <jean.mccormack@nexenta.com>
re #13842 make clobber leaves trash
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/uts/sun4u/Makefile
          +++ new/usr/src/uts/sun4u/Makefile
   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  # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  23   23  # Use is subject to license terms.
  24   24  # Copyright 2015 Igor Kozhukhov <ikozhukhov@gmail.com>
  25   25  #
  26   26  #       This makefile drives the production of all implementation architecture
  27   27  #       dependent modules for the sun4u architecture.
  28   28  #
  29   29  
  30   30  UTSBASE = ..
  31   31  
  32   32  include Makefile.sun4u
  33   33  
  34   34  #
  35   35  #       The following are SPARC specific (rather than sun4u) specific modules
  36   36  #       which are required for the sun4u kernel to completely lint. They are
  37   37  #       not involved in the build in any other way. In order to minimize
  38   38  #       build time, it is assumed that they are up to date. But since sun4u
  39   39  #       is really a separate architecture we cannot use the v7 sparc modules.
  40   40  #
  41   41  SPARC_LIB_DIR    = $(UTSBASE)/sparc/lint-libs/$(OBJS_DIR)
  42   42  
  43   43  SPARC_LINTS      =
  44   44  
  45   45  #
  46   46  #
  47   47  #
  48   48  LINT_LIBS        = $(LINT_LIB) \
  49   49                     $(LINT_KMODS:%=$(LINT_LIB_DIR)/llib-l%.ln) \
  50   50                     $(SPARC_LINTS:%=$(SPARC_LIB_DIR)/llib-l%.ln)
  51   51  
  52   52  
  53   53  def             :=      TARGET= def
  54   54  def.prereq      :=      TARGET= def
  55   55  all             :=      TARGET= all
  56   56  all.prereq      :=      TARGET= all
  57   57  install         :=      TARGET= install
  58   58  install.prereq  :=      TARGET= install
  59   59  install_h       :=      TARGET= install_h
  60   60  install_h.prere :=      TARGET= install_h
  61   61  clean           :=      TARGET= clean
  62   62  clobber         :=      TARGET= clobber
  63   63  lint            :=      TARGET= lint
  64   64  lint.prereq     :=      TARGET= lint
  65   65  lintlib         :=      TARGET= lintlib
  66   66  modlintlib      :=      TARGET= modlintlib
  67   67  modlist         :=      TARGET= modlist
  68   68  modlist modlist.sparc :=        NO_STATE= -K $$MODSTATE$$$$
  69   69  clean.lint      :=      TARGET= clean.lint
  70   70  check           :=      TARGET= check
  71   71  
  72   72  .KEEP_STATE:
  73   73  
  74   74  .PARALLEL:      $(PARALLEL_KMODS) $(XMODS) \
  75   75                  $(IMPLEMENTATIONS) \
  76   76                  modlist modlist.sparc
  77   77  
  78   78  # Override for CPU_KMODS... they cannot be built
  79   79  # in parallel
  80   80  .NO_PARALLEL:   $(CPU_KMODS)
  81   81  
  82   82  def all clean clobber clean.lint: genassym unix .WAIT \
  83   83          $(KMODS) $(XMODS) $(IMPLEMENTATIONS)
  84   84  
  85   85  clobber: clobber.targ
  86   86  
  87   87  # list the modules under sun4u.
  88   88  modlist: unix $(KMODS) $(XMODS) $(IMPLEMENTATIONS:.WAIT=)
  89   89  
  90   90  # list the modules for Install -k sun4u.
  91   91  modlist.karch: modlist modlist.sparc
  92   92  
  93   93  modlist.sparc:
  94   94          @cd $(SRC)/uts/sparc; pwd; $(MAKE) $(NO_STATE) modlist
  95   95  
  96   96  install: install_platforms genassym unix .WAIT $(KMODS) \
  97   97          $(XMODS) $(IMPLEMENTATIONS)
  98   98  
  99   99  lintlib:        unix
 100  100  
 101  101  modlintlib:     $(LINT_KMODS)
 102  102  
 103  103  genassym unix $(KMODS): FRC
 104  104          @cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET)
 105  105  
 106  106  #
 107  107  # Privilege constants
 108  108  #
 109  109  # NOTE: The rules for generating priv_const.c file are shared between all
 110  110  # processor architectures and should be kept in sync. If they are changed in
 111  111  # this file make sure that x86 rules are updated as well.
 112  112  #
 113  113  PRIVS_C = $(UTSBASE)/common/os/priv_const.c
 114  114  
 115  115  $(PRIVS_C): $(PRIVS_AWK) $(PRIVS_DEF)
 116  116          $(AWK) -f $(PRIVS_AWK) < $(PRIVS_DEF) cfile=$@
 117  117  
 118  118  CLOBBERFILES += $(PRIVS_C)
 119  119  
 120  120  #
 121  121  # Prerequisites
 122  122  #
 123  123  # The uts/Makefile defines build parallelism for sun4 platforms such that sparc,
 124  124  # sun4u and sun4v are all built in parallel. Also this Makefile specifies that
 125  125  # all IMPLEMENTATIONS sun4u sub-platforms are built in parallel. This requires
 126  126  # building certain parts before the parallel build can start. The uts/Makefile
 127  127  # appends the '.prereq' string to the original target and executes this Makefile
 128  128  # to build any prerequisites needed before the full parallel build can start.
 129  129  # After that make continues with normal targets.
 130  130  #
 131  131  # Any build prerequisites for sun4 and IMPLEMENTATIONS builds should be
 132  132  # described here.
 133  133  #
 134  134  # genassym is used to build dtrace and genunix, so it should be built first.
 135  135  #
 136  136  # priv_const.c is required to build genunix.
 137  137  #
 138  138  # genunix is used by everyone to ctfmerge with. Genunix is merged with sparc/ip
 139  139  #   so as a side effect this dependency builds sparc/ip as part of the
 140  140  #   prerequisites.
 141  141  #
 142  142  # unix is not required by itself but several sun4u platforms require
 143  143  #   sun4u/platmod to be present. The easiest way to achieve this is to build
 144  144  #   sun4u/unix first since sun4u/unix Makefile builds sun4u/platform correctly.
 145  145  #   This causes full sun4u/unix to be built before all sun4u platforms and
 146  146  #   before uts/sun4v and uts/sparc, but it acceptable since it is not spending
 147  147  #   too much time building sun4u/unix.
 148  148  #
 149  149  all.prereq def.prereq install.prereq: genassym genunix unix
 150  150  
 151  151  #
 152  152  # Various sun4u platforms expect proto/root_sparc/platform/sun4u/include to be
 153  153  # present. This is handled by running make install_h in sun4u/unix directory
 154  154  # first.
 155  155  #
 156  156  install_h.prereq: FRC
 157  157          @cd sys; pwd; $(MAKE) $(TARGET)
 158  158  
 159  159  #
 160  160  # sun4u/unix and sun4u/genunix should be linted first since sparc does global
 161  161  # cross-check with these lint libraries. The sun4u/unix and sun4u/genunix can be
 162  162  # linted in parallel.
 163  163  #
 164  164  LINT_PREREQ = unix.lint genunix.lint
 165  165  lint.prereq: $(LINT_PREREQ)
 166  166  
 167  167  .PARALLEL:  $(LINT_PREREQ)
 168  168  
 169  169  $(LINT_PREREQ):
 170  170          @cd $(@:%.lint=%); pwd; $(MAKE) $(TARGET)
 171  171  
 172  172  #
 173  173  # Nothing to do with any other prerequisites
 174  174  #
 175  175  %.prereq:
 176  176  
 177  177  #
 178  178  # Platform inter-dependencies
 179  179  #
 180  180  lw8: serengeti
 181  181  
 182  182  quasar: darwin
 183  183  
 184  184  #
 185  185  # The genunix requires priv_const.c file to be generated first.
 186  186  #
 187  187  genunix: $(PRIVS_C)
 188  188  
 189  189  #
 190  190  # Rules
 191  191  #
 192  192  
 193  193  $(IMPLEMENTATIONS):     FRC
 194  194          @cd $@; pwd; THISIMPL=$@ $(MAKE) $(NO_STATE) $(TARGET)
 195  195  
 196  196  $(XMODS):       FRC
 197  197          @if [ -f $@/Makefile  ]; then \
 198  198                  cd $@; pwd; $(MAKE) $(NO_STATE) $(TARGET); \
 199  199          else \
 200  200                  true; \
 201  201          fi
 202  202  
 203  203  install_h check: install_platforms $(IMPLEMENTATIONS)
 204  204          @cd sys; pwd; $(MAKE) $(TARGET)
 205  205          @cd vm; pwd; $(MAKE) $(TARGET)
 206  206  
 207  207  #
 208  208  # Rules for the /platforms directories.  This is hardwired here because
 209  209  # the first stage of the project (KBI) only implements the userland
 210  210  # changes, but the only reasonable place to record the aliases is
 211  211  # here in kernel land.
 212  212  #
 213  213  $(ROOT_PLAT_DIRS): $(ROOT_PLAT_DIR)
 214  214          -$(INS.dir)
 215  215  
 216  216  #
 217  217  # create directories in /usr/platform/ for the implementations that are
 218  218  # defined in $(IMPLEMENTED_PLATFORM)
 219  219  #       (eg. SUNW,Ultra-1)
 220  220  #
 221  221  # Foreach $(IMPLEMENTED_PLATFORM) there can be a list of $(LINKED_PLATFORMS)
 222  222  # that are linked to it.
 223  223  #
 224  224  $(USR_PLAT_DIR)/$(IMPLEMENTED_PLATFORM):        $(USR_PLAT_DIR)
 225  225          -$(INS.dir)
 226  226  
 227  227  #
 228  228  # create the links in /usr/platform/ foreach $(LINKED_PLATFORMS)
 229  229  # to it's corresponding $(IMPLEMENTED_PLATFORM).
 230  230  #
 231  231  PLATFORMS       = $(LINKED_PLATFORMS)
 232  232  
 233  233  $(USR_PLAT_DIRS): $(USR_PLAT_DIR)
 234  234          $(INS.slink3)
 235  235  
 236  236  PLATFORMS       += $(IMPLEMENTED_PLATFORM)
 237  237  
 238  238  #
 239  239  # Make the /platforms directories.  This is hardwired here because
 240  240  # the first stage of the project (KBI) only implements the userland
 241  241  # changes, but the only reasonable place to record the aliases is
 242  242  # here in kernel land.
 243  243  #
 244  244  install_platforms:      $(ROOT_PSM_DIR) $(USR_PSM_DIR) \
 245  245                          $(ROOT_PLAT_DIRS) $(USR_PLAT_DIRS) \
 246  246                          $(USR_DESKTOP_DIR) $(USR_DESKTOP_INC_DIR) \
 247  247                          $(USR_DESKTOP_SBIN_DIR) $(USR_DESKTOP_LIB_DIR)
 248  248  
 249  249  #
 250  250  # rules for making include, sbin, lib dirs/links in
 251  251  # /usr/platform/$(PLATFORM)/ for desktop platforms
 252  252  #
 253  253  $(USR_DESKTOP_INC_DIR):         $(USR_DESKTOP_DIR)
 254  254          $(INS.slink4)
  
    | 
      ↓ open down ↓ | 
    254 lines elided | 
    
      ↑ open up ↑ | 
  
 255  255  
 256  256  $(USR_DESKTOP_SBIN_DIR):        $(USR_DESKTOP_DIR)
 257  257          $(INS.slink5)
 258  258  
 259  259  $(USR_DESKTOP_LIB_DIR):         $(USR_DESKTOP_DIR)
 260  260          -$(INS.dir)
 261  261  
 262  262  #
 263  263  #       Full kernel lint target.
 264  264  #
 265      -LINT_TARGET     = globallint
      265 +LINT_TARGET     = # globallint
 266  266  
 267  267  globallint:
 268  268          @pwd
 269  269          @-$(ECHO) "\nSUN4U KERNEL: global crosschecks:"
 270  270          @-$(LINT) $(LINTFLAGS) $(LINT_LIBS) 2>&1 | $(LGREP.2)
 271  271  
 272  272  lint:   lintlib .WAIT modlintlib .WAIT $(SPARC_LINTS) $(LINT_DEPS) \
 273  273          $(IMPLEMENTATIONS) $(CPU_KMODS)
 274  274  
 275  275  include ../Makefile.targ
 276  276  
 277  277  #
 278  278  # Cross-reference customization: build a cross-reference over all of the
 279  279  # sun4u-related directories.
 280  280  #
 281  281  XRDIRS  = ../sun4u ../sun4 ../sfmmu ../sparc ../sun ../common
 282  282  XRPRUNE = i86pc
 283  283  
 284  284  cscope.out tags: FRC
 285  285          $(XREF) -x $@
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX