Print this page
    
OS-5017 lxbrand underspecified dependencies causes build race
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
    
      
        | Split | 
	Close | 
      
      | Expand all | 
      | Collapse all | 
    
    
          --- old/usr/src/lib/Makefile
          +++ new/usr/src/lib/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  #
  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 (c) 2012, Joyent, Inc. All rights reserved.
  26   26  # Copyright (c) 2013 Gary Mills
  27   27  # Copyright 2014 Garrett D'Amore <garrett@damore.org>
  28   28  # Copyright (c) 2015 Gary Mills
  29   29  # Copyright 2015 Nexenta Systems, Inc.  All rights reserved.
  30   30  #
  31   31  
  32   32  include ../Makefile.master
  33   33  
  34   34  #       Note that libcurses installs commands along with its library.
  35   35  #       This is a minor bug which probably should be fixed.
  36   36  #       Note also that a few extra libraries are kept in cmd source.
  37   37  #
  38   38  # Certain libraries are linked with, hence depend on, other libraries.
  39   39  # Library dependencies are called out explicitly, see "Library
  40   40  # interdependencies" below.
  41   41  .PARALLEL:
  42   42  
  43   43  # Build libc and its dependencies
  44   44  SUBDIRS=                        \
  45   45          common                  \
  46   46          ../cmd/sgs/libconv      \
  47   47          ../cmd/sgs/libdl        \
  48   48          libc                    \
  49   49          .WAIT
  50   50  
  51   51  # Build libraries with lots of dependents
  52   52  SUBDIRS +=              \
  53   53          libm            \
  54   54          libmd           \
  55   55          libmp           \
  56   56          libnsl          \
  57   57          libnvpair       \
  58   58          libsocket       \
  59   59          .WAIT
  60   60  
  61   61  # Build everything else. Aside from explicit dependencies, all libraries
  62   62  # are built in parallel.
  63   63  SUBDIRS +=                              \
  64   64          ../cmd/sendmail/libmilter       \
  65   65          ../cmd/sgs/libelf       \
  66   66          ../cmd/sgs/librtld_db   \
  67   67          abi             \
  68   68          auditd_plugins  \
  69   69          brand           \
  70   70          c_synonyms      \
  71   71          cfgadm_plugins  \
  72   72          crypt_modules   \
  73   73          extendedFILE    \
  74   74          fm              \
  75   75          getloginx       \
  76   76          gss_mechs/mech_dh       \
  77   77          gss_mechs/mech_dummy    \
  78   78          gss_mechs/mech_krb5     \
  79   79          gss_mechs/mech_spnego   \
  80   80          hal             \
  81   81          hbaapi          \
  82   82          krb5            \
  83   83          libadm          \
  84   84          libads          \
  85   85          libadt_jni      \
  86   86          libadutils      \
  87   87          libaio          \
  88   88          libast          \
  89   89          libavl          \
  90   90          libbe           \
  91   91          libbrand        \
  92   92          libbsdmalloc    \
  93   93          libbsm          \
  94   94          libc_db         \
  95   95          libcfgadm       \
  96   96          libcmd          \
  97   97          libcmdutils     \
  98   98          libcommputil    \
  99   99          libcontract     \
 100  100          libcpc          \
 101  101          libcrypt        \
 102  102          libcryptoutil   \
 103  103          libctf          \
 104  104          libcurses       \
 105  105          libdevice       \
 106  106          libdevid        \
 107  107          libdevinfo      \
 108  108          libdhcpagent    \
 109  109          libdhcputil     \
 110  110          libdisasm       \
 111  111          libdiskmgt      \
 112  112          libdladm        \
 113  113          libdll          \
 114  114          libdlpi         \
 115  115          libdns_sd       \
 116  116          libdoor         \
 117  117          libdscfg        \
 118  118          libdtrace       \
 119  119          libdtrace_jni   \
 120  120          libefi          \
 121  121          libelfsign      \
 122  122          libeti          \
 123  123          libexacct       \
 124  124          libexacct/demo  \
 125  125          libfakekernel   \
 126  126          libfcoe         \
 127  127          libfru          \
 128  128          libfruutils     \
 129  129          libfsmgt        \
 130  130          libfstyp        \
 131  131          libgen          \
 132  132          libgrubmgmt     \
 133  133          libgss          \
 134  134          libhotplug      \
 135  135          libidmap        \
 136  136          libilb          \
 137  137          libima          \
 138  138          libinetsvc      \
 139  139          libinetutil     \
 140  140          libinstzones    \
 141  141          libintl         \
 142  142          libipadm        \
 143  143          libipd          \
 144  144          libipmi         \
 145  145          libipmp         \
 146  146          libipp          \
 147  147          libipsecutil    \
 148  148          libiscsit       \
 149  149          libkmf          \
 150  150          libkrb5         \
 151  151          libkstat        \
 152  152          libkvm          \
 153  153          libldap5        \
 154  154          liblgrp         \
 155  155          liblm           \
 156  156          libm1           \
 157  157          libmail         \
 158  158          libmalloc       \
 159  159          libmapid        \
 160  160          libmapmalloc    \
 161  161          libmd5          \
 162  162          libmtmalloc     \
 163  163          libmvec         \
 164  164          libndmp         \
 165  165          libnisdb        \
 166  166          libnls          \
 167  167          libnsctl        \
 168  168          libnwam         \
 169  169          libpam          \
 170  170          libpcidb        \
 171  171          libpctx         \
 172  172          libpicl         \
 173  173          libpicltree     \
 174  174          libpkg          \
 175  175          libpool         \
 176  176          libpp           \
 177  177          libproc         \
 178  178          libproject      \
 179  179          libpthread      \
 180  180          libraidcfg      \
 181  181          librcm          \
 182  182          librdc          \
 183  183          libreparse      \
 184  184          libresolv       \
 185  185          libresolv2      \
 186  186          librestart      \
 187  187          librpcsvc       \
 188  188          librsm          \
 189  189          librstp         \
 190  190          librt           \
 191  191          libsasl         \
 192  192          libscf          \
 193  193          libsched        \
 194  194          libsctp         \
 195  195          libsec          \
 196  196          libsecdb        \
 197  197          libsendfile     \
 198  198          libshare        \
 199  199          libshell        \
 200  200          libsip          \
 201  201          libsldap        \
 202  202          libslp          \
 203  203          libsmbfs        \
 204  204          libsmbios       \
 205  205          libsmedia       \
 206  206          libsqlite       \
 207  207          libsrpt         \
 208  208          libstmf         \
 209  209          libstmfproxy    \
 210  210          libsum          \
 211  211          libsun_ima      \
 212  212          libsys          \
 213  213          libsysevent     \
 214  214          libtecla        \
 215  215          libtermcap      \
 216  216          libthread       \
 217  217          libtnf          \
 218  218          libtnfctl       \
 219  219          libtnfprobe     \
 220  220          libtsnet        \
 221  221          libtsol         \
 222  222          libumem         \
 223  223          libunistat      \
 224  224          libuuid         \
 225  225          libuutil        \
 226  226          libvolmgt       \
 227  227          libvrrpadm      \
 228  228          libvscan        \
 229  229          libw            \
 230  230          libwanboot      \
 231  231          libwanbootutil  \
 232  232          libwrap         \
 233  233          libxcurses      \
 234  234          libxcurses2     \
 235  235          libxnet         \
 236  236          libzfs          \
 237  237          libzfs_core     \
 238  238          libzfs_jni      \
 239  239          libzonecfg      \
 240  240          libzoneinfo     \
 241  241          libzonestat     \
 242  242          libzpool        \
 243  243          lvm             \
 244  244          madv            \
 245  245          mpapi           \
 246  246          mpss            \
 247  247          nametoaddr      \
 248  248          ncad_addr       \
 249  249          nsswitch        \
 250  250          pam_modules     \
 251  251          passwdutil      \
 252  252          pkcs11          \
 253  253          policykit       \
 254  254          print           \
 255  255          pylibbe         \
 256  256          pysolaris       \
 257  257          pyzfs           \
 258  258          raidcfg_plugins \
 259  259          rpcsec_gss      \
 260  260          sasl_plugins    \
 261  261          scsi            \
 262  262          smbsrv          \
 263  263          smhba           \
 264  264          sun_fc          \
 265  265          sun_sas         \
 266  266          udapl           \
 267  267          watchmalloc     \
 268  268          $($(MACH)_SUBDIRS)
 269  269  
 270  270  i386_SUBDIRS=           \
 271  271          libfdisk        \
 272  272          libsaveargs
 273  273  
 274  274  sparc_SUBDIRS=          \
 275  275          efcode          \
 276  276          libds           \
 277  277          libdscp         \
 278  278          libprtdiag      \
 279  279          libprtdiag_psr  \
 280  280          libpri          \
 281  281          librsc          \
 282  282          storage         \
 283  283          libpcp          \
 284  284          libtsalarm      \
 285  285          libv12n
 286  286  
 287  287  #
 288  288  # Create a special version of $(SUBDIRS) with no .WAIT's, for use with the
 289  289  # clean and clobber targets (for more information, see those targets, below).
 290  290  #
 291  291  NOWAIT_SUBDIRS= $(SUBDIRS:.WAIT=)
 292  292  
 293  293  DCSUBDIRS =             \
 294  294          lvm
 295  295  
 296  296  MSGSUBDIRS=             \
 297  297          abi             \
 298  298          auditd_plugins  \
 299  299          brand           \
 300  300          cfgadm_plugins  \
 301  301          gss_mechs/mech_dh       \
 302  302          gss_mechs/mech_krb5     \
 303  303          krb5            \
 304  304          libast          \
 305  305          libbsm          \
 306  306          libc            \
 307  307          libcfgadm       \
 308  308          libcmd          \
 309  309          libcontract     \
 310  310          libcurses       \
 311  311          libdhcputil     \
 312  312          libdiskmgt      \
 313  313          libdladm        \
 314  314          libdll          \
 315  315          libgrubmgmt     \
 316  316          libgss          \
 317  317          libidmap        \
 318  318          libilb          \
 319  319          libinetutil     \
 320  320          libinstzones    \
 321  321          libipadm        \
 322  322          libipmp         \
 323  323          libipsecutil    \
 324  324          libldap5        \
 325  325          libnsl          \
 326  326          libnwam         \
 327  327          libpam          \
 328  328          libpicl         \
 329  329          libpkg          \
 330  330          libpool         \
 331  331          libpp           \
 332  332          libreparse      \
 333  333          libsasl         \
 334  334          libscf          \
 335  335          libsecdb        \
 336  336          libshare        \
 337  337          libshell        \
 338  338          libsldap        \
 339  339          libslp          \
 340  340          libsmbfs        \
 341  341          libsmedia       \
 342  342          libsum          \
 343  343          libtsol         \
 344  344          libuutil        \
 345  345          libvrrpadm      \
 346  346          libvscan        \
 347  347          libwanboot      \
 348  348          libwanbootutil  \
 349  349          libzfs          \
 350  350          libzonecfg      \
 351  351          lvm             \
 352  352          madv            \
 353  353          mpss            \
 354  354          pam_modules     \
 355  355          pyzfs           \
 356  356          rpcsec_gss      \
 357  357          $($(MACH)_MSGSUBDIRS)
 358  358  
 359  359  sparc_MSGSUBDIRS=       \
 360  360          libprtdiag      \
 361  361          libprtdiag_psr
 362  362  
 363  363  i386_MSGSUBDIRS= libfdisk
 364  364  
 365  365  HDRSUBDIRS=                             \
 366  366          ../cmd/sendmail/libmilter       \
 367  367          auditd_plugins  \
 368  368          fm              \
 369  369          hal             \
 370  370          hbaapi          \
 371  371          libads          \
 372  372          libast          \
 373  373          libbrand        \
 374  374          libbsm          \
 375  375          libc            \
 376  376          libcmd          \
 377  377          libcmdutils     \
 378  378          libcommputil    \
 379  379          libcontract     \
 380  380          libcpc          \
 381  381          libcryptoutil   \
 382  382          libctf          \
 383  383          libcurses       \
 384  384          libdevice       \
 385  385          libdevid        \
 386  386          libdevinfo      \
 387  387          libdhcpagent    \
 388  388          libdhcputil     \
 389  389          libdisasm       \
 390  390          libdiskmgt      \
 391  391          libdladm        \
 392  392          libdll          \
 393  393          libdlpi         \
 394  394          libdns_sd       \
 395  395          libdscfg        \
 396  396          libdtrace       \
 397  397          libdtrace_jni   \
 398  398          libelfsign      \
 399  399          libeti          \
 400  400          libfakekernel   \
 401  401          libfcoe         \
 402  402          libfru          \
 403  403          libfstyp        \
 404  404          libgen          \
 405  405          libgrubmgmt     \
 406  406          libidmap        \
 407  407          libilb          \
 408  408          libima          \
 409  409          libinetsvc      \
 410  410          libinetutil     \
 411  411          libinstzones    \
 412  412          libipadm        \
 413  413          libipd          \
 414  414          libipmi         \
 415  415          libipmp         \
 416  416          libipp          \
 417  417          libipsecutil    \
 418  418          libiscsit       \
 419  419          libkrb5         \
 420  420          libkstat        \
 421  421          libkvm          \
 422  422          libmail         \
 423  423          libmapid        \
 424  424          libmd           \
 425  425          libmtmalloc     \
 426  426          libndmp         \
 427  427          libnsctl        \
 428  428          libnsl          \
 429  429          libnvpair       \
 430  430          libnwam         \
 431  431          libpam          \
 432  432          libpcidb        \
 433  433          libpctx         \
 434  434          libpicl         \
 435  435          libpicltree     \
 436  436          libpool         \
 437  437          libpp           \
 438  438          libproc         \
 439  439          libraidcfg      \
 440  440          librcm          \
 441  441          librdc          \
 442  442          libreparse      \
 443  443          librestart      \
 444  444          librpcsvc       \
 445  445          librsm          \
 446  446          librstp         \
 447  447          libsasl         \
 448  448          libscf          \
 449  449          libsec          \
 450  450          libshare        \
 451  451          libshell        \
 452  452          libsip          \
 453  453          libslp          \
 454  454          libsmbfs        \
 455  455          libsmbios       \
 456  456          libsmedia       \
 457  457          libsocket       \
 458  458          libsqlite       \
 459  459          libsrpt         \
 460  460          libstmf         \
 461  461          libstmfproxy    \
 462  462          libsum          \
 463  463          libsun_ima      \
 464  464          libsysevent     \
 465  465          libtecla        \
 466  466          libtermcap      \
 467  467          libtnf          \
 468  468          libtnfctl       \
 469  469          libtnfprobe     \
 470  470          libtsnet        \
 471  471          libtsol         \
 472  472          libumem         \
 473  473          libunistat      \
 474  474          libuutil        \
 475  475          libvolmgt       \
 476  476          libvrrpadm      \
 477  477          libvscan        \
 478  478          libwanboot      \
 479  479          libwanbootutil  \
 480  480          libwrap         \
 481  481          libxcurses2     \
 482  482          libzfs          \
 483  483          libzfs_core     \
 484  484          libzfs_jni      \
 485  485          libzoneinfo     \
 486  486          libzonestat     \
 487  487          lvm             \
 488  488          mpapi           \
 489  489          passwdutil      \
 490  490          pkcs11          \
 491  491          policykit       \
 492  492          scsi            \
 493  493          smbsrv          \
 494  494          smhba           \
 495  495          udapl           \
 496  496          $($(MACH)_HDRSUBDIRS)
 497  497  
 498  498  i386_HDRSUBDIRS=        \
 499  499          libfdisk        \
 500  500          libsaveargs
 501  501  
 502  502  sparc_HDRSUBDIRS=       \
 503  503          libds           \
 504  504          libdscp         \
 505  505          libpri          \
 506  506          libv12n         \
 507  507          storage
 508  508  
 509  509  all :=          TARGET= all
 510  510  check :=        TARGET= check
 511  511  clean :=        TARGET= clean
 512  512  clobber :=      TARGET= clobber
 513  513  install :=      TARGET= install
 514  514  install_h :=    TARGET= install_h
 515  515  lint :=         TARGET= lint
 516  516  _dc :=          TARGET= _dc
 517  517  _msg :=         TARGET= _msg
 518  518  
 519  519  .KEEP_STATE:
 520  520  
 521  521  #
 522  522  # For the all and install targets, we clearly must respect library
 523  523  # dependencies so that the libraries link correctly.  However, for
 524  524  # the remaining targets (check, clean, clobber, install_h, lint, _dc
 525  525  # and _msg), libraries do not have any dependencies on one another
 526  526  # and thus respecting dependencies just slows down the build.
 527  527  # As such, for these rules, we use pattern replacement to explicitly
 528  528  # avoid triggering the dependency information.  Note that for clean,
 529  529  # clobber and lint, we must use $(NOWAIT_SUBDIRS) rather than
 530  530  # $(SUBDIRS), to prevent `.WAIT' from expanding to `.WAIT-nodepend'.
 531  531  #
 532  532  
 533  533  all:                    $(SUBDIRS)
 534  534  
 535  535  install:                $(SUBDIRS) .WAIT install_extra
 536  536  
 537  537  # extra libraries kept in other source areas
 538  538  install_extra:
 539  539          @cd ../cmd/sgs; pwd; $(MAKE) install_lib
 540  540          @pwd
 541  541  
 542  542  clean clobber lint:     $(NOWAIT_SUBDIRS:%=%-nodepend)
 543  543  
 544  544  install_h check:        $(HDRSUBDIRS:%=%-nodepend)
 545  545  
 546  546  _msg:                   $(MSGSUBDIRS:%=%-nodepend) .WAIT _dc
 547  547  
 548  548  _dc:                    $(DCSUBDIRS:%=%-nodepend)
 549  549  
 550  550  # Library interdependencies are called out explicitly here.
 551  551  ../cmd/sgs/libconv: common
 552  552  ../cmd/sgs/libdl: common
 553  553  libc:           ../cmd/sgs/libconv ../cmd/sgs/libdl
 554  554  
 555  555  libm:           libc
 556  556  libmd:          libc
 557  557  libmp:          libc
 558  558  libnsl:         libc libmd libmp
 559  559  libnvpair:      libc libnsl
  
    | 
      ↓ open down ↓ | 
    559 lines elided | 
    
      ↑ open up ↑ | 
  
 560  560  libsocket:      libc libnsl
 561  561  
 562  562  basedeps:       libc libm libmd libmp libnsl libnvpair libsocket
 563  563  basedeps :=     TARGET=install
 564  564  
 565  565  # The following dependencies don't need to be listed below as they are built
 566  566  # before everything else:
 567  567  # libc libm libmd libmp libnsl libnvpair libsocket
 568  568  abi:            libctf libmapmalloc libproc
 569  569  auditd_plugins: libbsm libsecdb libgss libmtmalloc
 570      -brand:          libzonecfg libmapmalloc
      570 +brand:          libzonecfg libmapmalloc libipadm libcmdutils libproc librpcsvc
 571  571  cfgadm_plugins: libdevice libdevinfo libhotplug librcm hbaapi libkstat libscf
 572  572  fm:             libexacct libipmi libzfs scsi libdevinfo libdevid libcfgadm \
 573  573                  libcontract libsysevent ../cmd/sgs/libelf
 574  574  $(SPARC_BLD)fm: libpri
 575  575  gss_mechs/mech_dh: libgss
 576  576  gss_mechs/mech_dummy: libgss
 577  577  gss_mechs/mech_krb5: libgss libresolv2 pkcs11 libkstat
 578  578  gss_mechs/mech_spnego: gss_mechs/mech_krb5
 579  579  krb5:           gss_mechs/mech_krb5 libtecla libldap5
 580  580  libadt_jni:     libbsm
 581  581  libadutils:     libldap5 libresolv2
 582  582  libbe:          libzfs libinstzones libuuid libgen libdevinfo libefi
 583  583  libbsm:         libinetutil libscf libsecdb libtsol
 584  584  libcfgadm:      libdevinfo
 585  585  libcmd:         libsum libast
 586  586  libcmdutils:    libavl
 587  587  libcpc:         libpctx
 588  588  libcrypt:       libgen
 589  589  libdevid:       libdevinfo
 590  590  libdevinfo:     libsec libgen
 591  591  libdhcpagent:   libdhcputil libuuid libdlpi libcontract
 592  592  libdhcputil:    libgen libinetutil libdlpi
 593  593  libdiskmgt:     libdevid libdevinfo libadm libefi libkstat libsysevent
 594  594  $(INTEL_BLD)libdiskmgt: libfdisk
 595  595  libdladm:       libdevinfo libinetutil libscf librcm libexacct libkstat \
 596  596                  libpool
 597  597  libdll:         libast
 598  598  libdlpi:        libinetutil libdladm
 599  599  libds:          libsysevent
 600  600  libdscfg:       libnsctl libunistat libadm
 601  601  libdtrace:      libproc libgen libctf libmapmalloc
 602  602  libdtrace_jni:  libuutil libdtrace
 603  603  libefi:         libuuid
 604  604  libelfsign:     libcryptoutil libkmf ../cmd/sgs/libelf
 605  605  libeti:         libcurses
 606  606  libexacct/demo: libexacct libproject
 607  607  libfakekernel:  libumem libcryptoutil
 608  608  libfcoe:        libdladm
 609  609  libfru:         libfruutils
 610  610  libfsmgt:       libkstat
 611  611  libgrubmgmt:    libdevinfo libzfs libfstyp libefi
 612  612  $(INTEL_BLD)libgrubmgmt: libfdisk
 613  613  libidmap:       libavl libuutil
 614  614  libinetsvc:     libscf
 615  615  libinstzones:   libzonecfg libcontract
 616  616  libipadm:       libinetutil libdlpi libdhcpagent libdladm libsecdb
 617  617  libipmp:        libinetutil
 618  618  libipsecutil:   libtecla libtsol
 619  619  libiscsit:      libstmf libuuid
 620  620  libkmf:         libcryptoutil pkcs11
 621  621  libkvm:         ../cmd/sgs/libelf
 622  622  libldap5:       libsasl
 623  623  libmapid:       libresolv2 libscf
 624  624  libndmp:        libscf
 625  625  libnisdb:       libldap5
 626  626  libnwam:        libscf libbsm libdladm
 627  627  libpcp:         libumem libdevinfo
 628  628  libpctx:        libproc
 629  629  libpkg:         libwanboot libscf libadm
 630  630  libpool:        libscf libexacct
 631  631  libpp:          libast
 632  632  libproc:        ../cmd/sgs/librtld_db ../cmd/sgs/libelf libctf
 633  633  $(INTEL_BLD)libproc: libsaveargs
 634  634  libproject:     libpool libproc libsecdb
 635  635  libprtdiag:     libkstat
 636  636  libprtdiag_psr: libprtdiag
 637  637  libraidcfg:     libdevinfo
 638  638  librdc:         libnsctl libunistat libdscfg
 639  639  librestart:     libuutil libscf libpool libproject libsecdb libsysevent
 640  640  libsasl:        libgss pkcs11
 641  641  libsaveargs:    libdisasm
 642  642  libscf:         libuutil libgen libsmbios
 643  643  libsec:         libavl libidmap
 644  644  libshare:       libscf libzfs libuuid libfsmgt libsecdb libumem libsmbfs
 645  645  libshell:       libast libcmd libdll libsecdb
 646  646  libsip:         libmd5
 647  647  libsldap:       libldap5 libscf
 648  648  libsmbfs:       libkrb5 libsec libidmap pkcs11
 649  649  libsrpt:        libstmf
 650  650  libstmf:        libscf
 651  651  libstmfproxy:   libstmf libpthread
 652  652  libsum:         libast
 653  653  libsun_ima:     libdevinfo libsysevent
 654  654  libsysevent:    libsecdb
 655  655  libtecla:       libcurses
 656  656  libtermcap:     libcurses
 657  657  libtnfctl:      ../cmd/sgs/libelf
 658  658  libtsalarm:     libpcp
 659  659  libtsnet:       libtsol libsecdb
 660  660  libtsol:        libsecdb
 661  661  libuuid:        libdlpi
 662  662  libv12n:        libds libuuid
 663  663  libvolmgt:      libadm
 664  664  libvrrpadm:     libdladm libscf
 665  665  libvscan:       libscf libsecdb
 666  666  libwanboot:     libresolv2 libdevinfo libinetutil libdhcputil
 667  667  libzfs:         libdevid libgen libuutil libadm libavl libefi libidmap \
 668  668                  libumem libtsol libzfs_core
 669  669  libzfs_jni:     libdiskmgt libzfs
 670  670  libzonecfg:     libuuid libsysevent libsec libbrand libpool libscf libproc \
 671  671                  libuutil libbsm libsecdb
 672  672  libzonestat:    libcmdutils libumem
 673  673  libzpool:       libavl libumem libcmdutils libsysevent
 674  674  lvm:            libadm libdevid libdevinfo libefi libgen libscf
 675  675  madv:           libgen
 676  676  mpapi:          libpthread libdevinfo libsysevent
 677  677  mpss:           libgen
 678  678  nsswitch:       libadutils libidmap libdns_sd libscf libldap5 libsldap
 679  679  pam_modules:    libproject passwdutil smbsrv libtsnet libpam libbsm libsecdb
 680  680  passwdutil:     libsldap
 681  681  pkcs11:         libcryptoutil libgen libuuid
 682  682  policykit:      libsecdb
 683  683  print:          libldap5 libmd5 libsendfile
 684  684  pylibbe:        libbe libzfs
 685  685  pysolaris:      libsec libidmap
 686  686  pyzfs:          libzfs
 687  687  raidcfg_plugins: libraidcfg librcm libcfgadm libpicl libpicltree
 688  688  rpcsec_gss:     libgss
 689  689  sasl_plugins:   pkcs11 libgss libsasl
 690  690  scsi:           libfru libumem libdevid libdevinfo
 691  691  smbsrv:         libxnet libpthread librt libshare libidmap pkcs11 libsqlite \
 692  692                  libcryptoutil libreparse libcmdutils libresolv2 libsmbfs \
 693  693                  libuuid libfakekernel libads libgss libldap5 krb5
 694  694  storage:        libdevice libdevinfo libdevid
 695  695  sun_fc:         libdevinfo libsysevent
 696  696  sun_sas:        libdevinfo libsysevent libkstat libdevid
 697  697  udapl:          libdevinfo libdladm
 698  698  
 699  699  #
 700  700  # The reason this rule checks for the existence of the
 701  701  # Makefile is that some of the directories do not exist
 702  702  # in certain situations (e.g., exportable source builds,
 703  703  # OpenSolaris).
 704  704  #
 705  705  $(SUBDIRS): FRC
 706  706          @if [ -f $@/Makefile  ]; then \
 707  707                  cd $@; pwd; $(MAKE) $(TARGET); \
 708  708          else \
 709  709                  true; \
 710  710          fi
 711  711  
 712  712  $(SUBDIRS:%=%-nodepend):
 713  713          @if [ -f $(@:%-nodepend=%)/Makefile  ]; then \
 714  714                  cd $(@:%-nodepend=%); pwd; $(MAKE) $(TARGET); \
 715  715          else \
 716  716                  true; \
 717  717          fi
 718  718  
 719  719  FRC:
  
    | 
      ↓ open down ↓ | 
    139 lines elided | 
    
      ↑ open up ↑ | 
  
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX