1 #
   2 # CDDL HEADER START
   3 #
   4 # The contents of this file are subject to the terms of the
   5 # Common Development and Distribution License (the "License").
   6 # You may not use this file except in compliance with the License.
   7 #
   8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9 # or http://www.opensolaris.org/os/licensing.
  10 # See the License for the specific language governing permissions
  11 # and limitations under the License.
  12 #
  13 # When distributing Covered Code, include this CDDL HEADER in each
  14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15 # If applicable, add the following below this CDDL HEADER, with the
  16 # fields enclosed by brackets "[]" replaced with your own identifying
  17 # information: Portions Copyright [yyyy] [name of copyright owner]
  18 #
  19 # CDDL HEADER END
  20 #
  21 
  22 #
  23 # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
  24 # Copyright (c) 2017, Joyent, Inc.
  25 # Copyright (c) 2012 by Delphix. All rights reserved.
  26 # Copyright (c) 2013 DEY Storage Systems, Inc. All rights reserved.
  27 # Copyright 2014 Garrett D'Amore <garrett@damore.org>
  28 # Copyright 2016 Toomas Soome <tsoome@me.com>
  29 # Copyright 2016 Nexenta Systems, Inc.
  30 #
  31 
  32 include ../Makefile.master
  33 
  34 #
  35 #       Note that if the 'lp' command were built, it would be first in
  36 #       the list, violating alphabetical order.  This is because it is very
  37 #       long-running and should be given the most wall-clock time for a
  38 #       parallel build.
  39 #
  40 #       Commands in the FIRST_SUBDIRS list are built before starting the build
  41 #       of other commands.  Currently this includes only 'isaexec' and
  42 #       'platexec'.  This is necessary because $(ROOT)/usr/lib/isaexec or
  43 #       $(ROOT)/usr/lib/platexec must exist when some other commands are built
  44 #       because their 'make install' creates a hard link to one of them.
  45 #
  46 #       Commands are listed one per line so that TeamWare can auto-merge most
  47 #       changes.
  48 #
  49 
  50 FIRST_SUBDIRS=          \
  51         isaexec         \
  52         platexec
  53 
  54 COMMON_SUBDIRS=         \
  55         allocate        \
  56         availdevs       \
  57         perl            \
  58         Adm             \
  59         abi             \
  60         adbgen          \
  61         acct            \
  62         acctadm         \
  63         arch            \
  64         asa             \
  65         ast             \
  66         audio           \
  67         auths           \
  68         autopush        \
  69         avs             \
  70         awk             \
  71         awk_xpg4        \
  72         backup          \
  73         banner          \
  74         bart            \
  75         basename        \
  76         bc              \
  77         bdiff           \
  78         beadm           \
  79         bnu             \
  80         boot            \
  81         busstat         \
  82         cal             \
  83         captoinfo       \
  84         cat             \
  85         cdrw            \
  86         cfgadm          \
  87         checkeq         \
  88         checknr         \
  89         chgrp           \
  90         chmod           \
  91         chown           \
  92         chroot          \
  93         clear           \
  94         clinfo          \
  95         cmd-crypto      \
  96         cmd-inet        \
  97         col             \
  98         column          \
  99         compress        \
 100         consadm         \
 101         coreadm         \
 102         cpio            \
 103         cpc             \
 104         cron            \
 105         crypt           \
 106         csh             \
 107         csplit          \
 108         ctfconvert      \
 109         ctfdiff         \
 110         ctfdump         \
 111         ctfmerge        \
 112         ctrun           \
 113         ctstat          \
 114         ctwatch         \
 115         datadm          \
 116         date            \
 117         dc              \
 118         dd              \
 119         deroff          \
 120         devfsadm        \
 121         syseventd       \
 122         devctl          \
 123         devinfo         \
 124         devmgmt         \
 125         devprop         \
 126         dfs.cmds        \
 127         diff            \
 128         diff3           \
 129         diffmk          \
 130         dircmp          \
 131         dirname         \
 132         dis             \
 133         diskinfo        \
 134         diskmgtd        \
 135         dispadmin       \
 136         dladm           \
 137         dlstat          \
 138         dlutil          \
 139         dmesg           \
 140         dodatadm        \
 141         dtrace          \
 142         du              \
 143         dumpadm         \
 144         dumpcs          \
 145         echo            \
 146         ed              \
 147         eeprom          \
 148         eject           \
 149         emul64ioctl     \
 150         enhance         \
 151         env             \
 152         eqn             \
 153         expand          \
 154         expr            \
 155         exstr           \
 156         factor          \
 157         false           \
 158         fcinfo          \
 159         fcoesvc         \
 160         fdetach         \
 161         fdformat        \
 162         fdisk           \
 163         ficl            \
 164         filesync        \
 165         file            \
 166         find            \
 167         flowadm         \
 168         flowstat        \
 169         fm              \
 170         fmt             \
 171         fmthard         \
 172         fmtmsg          \
 173         fold            \
 174         format          \
 175         fs.d            \
 176         fstyp           \
 177         fuser           \
 178         fwflash         \
 179         gcore           \
 180         gencat          \
 181         geniconvtbl     \
 182         genmsg          \
 183         getconf         \
 184         getdevpolicy    \
 185         getent          \
 186         getfacl         \
 187         getmajor        \
 188         getopt          \
 189         gettext         \
 190         gettxt          \
 191         grep            \
 192         groups          \
 193         growfs          \
 194         grpck           \
 195         gss             \
 196         halt            \
 197         head            \
 198         hostid          \
 199         hostname        \
 200         hotplug         \
 201         hotplugd        \
 202         ibd_upgrade     \
 203         iconv           \
 204         id              \
 205         idmap           \
 206         infocmp         \
 207         init            \
 208         initpkg         \
 209         install.d       \
 210         intrd           \
 211         intrstat        \
 212         ipcrm           \
 213         ipcs            \
 214         ipdadm          \
 215         ipf             \
 216         isainfo         \
 217         isalist         \
 218         itutools        \
 219         iscsiadm        \
 220         iscsid          \
 221         iscsitsvc       \
 222         isns            \
 223         itadm           \
 224         kbd             \
 225         keyserv         \
 226         killall         \
 227         krb5            \
 228         ksh             \
 229         kvmstat         \
 230         last            \
 231         lastcomm        \
 232         ldap            \
 233         ldapcachemgr    \
 234         lgrpinfo        \
 235         line            \
 236         link            \
 237         dlmgmtd         \
 238         listen          \
 239         loadkeys        \
 240         locale          \
 241         localedef       \
 242         lockstat        \
 243         locator         \
 244         lofiadm         \
 245         logadm          \
 246         logger          \
 247         login           \
 248         logins          \
 249         look            \
 250         ls              \
 251         luxadm          \
 252         mach            \
 253         machid          \
 254         mail            \
 255         mailwrapper     \
 256         mailx           \
 257         make            \
 258         makekey         \
 259         man             \
 260         mandoc          \
 261         mdb             \
 262         mesg            \
 263         mkdir           \
 264         mkfifo          \
 265         mkfile          \
 266         mkmsgs          \
 267         mknod           \
 268         mkpwdict        \
 269         mktemp          \
 270         modload         \
 271         more            \
 272         mpathadm        \
 273         msgfmt          \
 274         msgid           \
 275         mt              \
 276         mv              \
 277         mvdir           \
 278         ndmpadm         \
 279         ndmpd           \
 280         ndmpstat        \
 281         netadm          \
 282         netfiles        \
 283         newform         \
 284         newgrp          \
 285         news            \
 286         newtask         \
 287         nice            \
 288         nicstat         \
 289         nl              \
 290         nlsadmin        \
 291         nohup           \
 292         nsadmin         \
 293         nscd            \
 294         oamuser         \
 295         oawk            \
 296         od              \
 297         pack            \
 298         pagesize        \
 299         passmgmt        \
 300         passwd          \
 301         pathchk         \
 302         pbind           \
 303         pcidr           \
 304         pcitool         \
 305         pfexec          \
 306         pfexecd         \
 307         pginfo          \
 308         pgstat          \
 309         pgrep           \
 310         picl            \
 311         plimit          \
 312         policykit       \
 313         pools           \
 314         power           \
 315         powertop        \
 316         ppgsz           \
 317         pg              \
 318         plockstat       \
 319         pr              \
 320         prctl           \
 321         printf          \
 322         priocntl        \
 323         profiles        \
 324         projadd         \
 325         projects        \
 326         prstat          \
 327         prtconf         \
 328         prtdiag         \
 329         prtvtoc         \
 330         ps              \
 331         psradm          \
 332         psrinfo         \
 333         psrset          \
 334         ptools          \
 335         pwck            \
 336         pwconv          \
 337         pwd             \
 338         raidctl         \
 339         ramdiskadm      \
 340         rcap            \
 341         rcm_daemon      \
 342         rctladm         \
 343         refer           \
 344         regcmp          \
 345         renice          \
 346         rm              \
 347         rmdir           \
 348         rmformat        \
 349         rmmount         \
 350         rmt             \
 351         rmvolmgr        \
 352         roles           \
 353         rpcbind         \
 354         rpcgen          \
 355         rpcinfo         \
 356         rpcsvc          \
 357         runat           \
 358         sa              \
 359         saf             \
 360         sasinfo         \
 361         savecore        \
 362         sbdadm          \
 363         script          \
 364         scsi            \
 365         sdiff           \
 366         sdpadm          \
 367         sed             \
 368         sendmail        \
 369         setfacl         \
 370         setmnt          \
 371         setpgrp         \
 372         setuname        \
 373         sgs             \
 374         sh              \
 375         shcomp          \
 376         smbios          \
 377         smbsrv          \
 378         smserverd       \
 379         soelim          \
 380         sort            \
 381         spell           \
 382         split           \
 383         sqlite          \
 384         srchtxt         \
 385         srptadm         \
 386         srptsvc         \
 387         stat            \
 388         stmfadm         \
 389         stmfproxy       \
 390         stmfsvc         \
 391         stmsboot        \
 392         streams         \
 393         strings         \
 394         su              \
 395         sulogin         \
 396         sunpc           \
 397         svc             \
 398         svr4pkg         \
 399         swap            \
 400         sync            \
 401         sysdef          \
 402         syseventadm     \
 403         syslogd         \
 404         tabs            \
 405         tail            \
 406         tar             \
 407         tbl             \
 408         tcopy           \
 409         tcpd            \
 410         th_tools        \
 411         tic             \
 412         time            \
 413         tip             \
 414         tnf             \
 415         touch           \
 416         tput            \
 417         tr              \
 418         trapstat        \
 419         troff           \
 420         true            \
 421         truss           \
 422         tsol            \
 423         tty             \
 424         ttymon          \
 425         tzreload        \
 426         uadmin          \
 427         ul              \
 428         uname           \
 429         units           \
 430         unlink          \
 431         unpack          \
 432         userattr        \
 433         users           \
 434         utmp_update     \
 435         utmpd           \
 436         uuidgen         \
 437         valtools        \
 438         varpd           \
 439         vgrind          \
 440         vi              \
 441         vndadm          \
 442         vndstat         \
 443         volcheck        \
 444         volrmmount      \
 445         vrrpadm         \
 446         vscan           \
 447         vt              \
 448         vtfontcvt       \
 449         w               \
 450         wall            \
 451         which           \
 452         who             \
 453         whodo           \
 454         wracct          \
 455         write           \
 456         xargs           \
 457         xhci            \
 458         xstr            \
 459         yes             \
 460         ypcmd           \
 461         yppasswd        \
 462         zdb             \
 463         zdump           \
 464         zfs             \
 465         zhack           \
 466         zic             \
 467         zinject         \
 468         zlogin          \
 469         zoneadm         \
 470         zoneadmd        \
 471         zonecfg         \
 472         zonename        \
 473         zpool           \
 474         zlook           \
 475         zonestat        \
 476         zstreamdump     \
 477         ztest
 478 
 479 i386_SUBDIRS=           \
 480         acpi            \
 481         acpihpd         \
 482         addbadsec       \
 483         bhyve           \
 484         bhyvectl        \
 485         biosdev         \
 486         diskscan        \
 487         nvmeadm         \
 488         rtc             \
 489         ucodeadm        \
 490         xvm
 491 
 492 sparc_SUBDIRS=          \
 493         cvcd            \
 494         dcs             \
 495         device_remap    \
 496         drd             \
 497         fruadm          \
 498         ldmad           \
 499         oplhpd          \
 500         prtdscp         \
 501         prtfru          \
 502         scadm           \
 503         sckmd           \
 504         sf880drd        \
 505         virtinfo        \
 506         vntsd
 507 
 508 #
 509 # Commands that are messaged.  Note that 'lp' comes first
 510 # (see previous comment about 'lp'.)
 511 #
 512 MSGSUBDIRS=             \
 513         abi             \
 514         acctadm         \
 515         allocate        \
 516         asa             \
 517         audio           \
 518         audit           \
 519         auditconfig     \
 520         auditd          \
 521         auditrecord     \
 522         auditset        \
 523         auths           \
 524         autopush        \
 525         avs             \
 526         awk             \
 527         awk_xpg4        \
 528         backup          \
 529         banner          \
 530         bart            \
 531         basename        \
 532         beadm           \
 533         bnu             \
 534         busstat         \
 535         cal             \
 536         cat             \
 537         cdrw            \
 538         cfgadm          \
 539         checkeq         \
 540         checknr         \
 541         chgrp           \
 542         chmod           \
 543         chown           \
 544         cmd-crypto      \
 545         cmd-inet        \
 546         col             \
 547         compress        \
 548         consadm         \
 549         coreadm         \
 550         cpio            \
 551         cpc             \
 552         cron            \
 553         csh             \
 554         csplit          \
 555         ctrun           \
 556         ctstat          \
 557         ctwatch         \
 558         datadm          \
 559         date            \
 560         dc              \
 561         dcs             \
 562         dd              \
 563         deroff          \
 564         devfsadm        \
 565         dfs.cmds        \
 566         diff            \
 567         diffmk          \
 568         dladm           \
 569         dlstat          \
 570         du              \
 571         dumpcs          \
 572         ed              \
 573         eject           \
 574         env             \
 575         eqn             \
 576         expand          \
 577         expr            \
 578         fcinfo          \
 579         file            \
 580         filesync        \
 581         find            \
 582         flowadm         \
 583         flowstat        \
 584         fm              \
 585         fold            \
 586         fs.d            \
 587         fwflash         \
 588         geniconvtbl     \
 589         genmsg          \
 590         getconf         \
 591         getent          \
 592         gettext         \
 593         gettxt          \
 594         grep            \
 595         grpck           \
 596         gss             \
 597         halt            \
 598         head            \
 599         hostname        \
 600         hotplug         \
 601         iconv           \
 602         id              \
 603         idmap           \
 604         isaexec         \
 605         iscsiadm        \
 606         iscsid          \
 607         isns            \
 608         itadm           \
 609         kbd             \
 610         krb5            \
 611         ksh             \
 612         last            \
 613         ldap            \
 614         ldapcachemgr    \
 615         lgrpinfo        \
 616         locale          \
 617         lofiadm         \
 618         logadm          \
 619         logger          \
 620         logins          \
 621         ls              \
 622         luxadm          \
 623         mailx           \
 624         make            \
 625         man             \
 626         mesg            \
 627         mkdir           \
 628         mkpwdict        \
 629         mktemp          \
 630         more            \
 631         mpathadm        \
 632         msgfmt          \
 633         mv              \
 634         ndmpadm         \
 635         ndmpstat        \
 636         newgrp          \
 637         newtask         \
 638         nice            \
 639         nohup           \
 640         oawk            \
 641         pack            \
 642         passwd          \
 643         passmgmt        \
 644         pathchk         \
 645         pfexec          \
 646         pg              \
 647         pgrep           \
 648         picl            \
 649         pools           \
 650         power           \
 651         pr              \
 652         praudit         \
 653         profiles        \
 654         projadd         \
 655         projects        \
 656         prstat          \
 657         prtdiag         \
 658         ps              \
 659         psrinfo         \
 660         ptools          \
 661         pwconv          \
 662         pwd             \
 663         raidctl         \
 664         ramdiskadm      \
 665         rcap            \
 666         rcm_daemon      \
 667         refer           \
 668         regcmp          \
 669         renice          \
 670         roles           \
 671         rm              \
 672         rmdir           \
 673         rmformat        \
 674         rmmount         \
 675         rmvolmgr        \
 676         sasinfo         \
 677         sbdadm          \
 678         scadm           \
 679         script          \
 680         scsi            \
 681         sdiff           \
 682         sdpadm          \
 683         sgs             \
 684         sh              \
 685         shcomp          \
 686         smbsrv          \
 687         sort            \
 688         split           \
 689         srptadm         \
 690         stat            \
 691         stmfadm         \
 692         stmsboot        \
 693         strings         \
 694         su              \
 695         svc             \
 696         svr4pkg         \
 697         swap            \
 698         syseventadm     \
 699         syseventd       \
 700         tabs            \
 701         tar             \
 702         tbl             \
 703         time            \
 704         tnf             \
 705         touch           \
 706         tput            \
 707         troff           \
 708         tsol            \
 709         tty             \
 710         ttymon          \
 711         tzreload        \
 712         ul              \
 713         uname           \
 714         units           \
 715         unlink          \
 716         unpack          \
 717         userattr        \
 718         valtools        \
 719         vgrind          \
 720         vi              \
 721         volcheck        \
 722         volrmmount      \
 723         vrrpadm         \
 724         vscan           \
 725         w               \
 726         who             \
 727         whodo           \
 728         wracct          \
 729         write           \
 730         xargs           \
 731         yppasswd        \
 732         zdump           \
 733         zfs             \
 734         zic             \
 735         zlogin          \
 736         zoneadm         \
 737         zoneadmd        \
 738         zonecfg         \
 739         zonename        \
 740         zpool           \
 741         zonestat
 742 
 743 sparc_MSGSUBDIRS=       \
 744         fruadm          \
 745         prtdscp         \
 746         prtfru          \
 747         virtinfo        \
 748         vntsd
 749 
 750 i386_MSGSUBDIRS=        \
 751         ucodeadm
 752 
 753 #
 754 # commands that use dcgettext for localized time, LC_TIME
 755 #
 756 DCSUBDIRS=              \
 757         cal             \
 758         cfgadm          \
 759         diff            \
 760         ls              \
 761         pr              \
 762         ps              \
 763         tar             \
 764         w               \
 765         who             \
 766         whodo           \
 767         write
 768 
 769 #
 770 # commands that belong only to audit.
 771 #
 772 AUDITSUBDIRS=           \
 773         amt             \
 774         audit           \
 775         audit_warn      \
 776         auditconfig     \
 777         auditd          \
 778         auditrecord     \
 779         auditreduce     \
 780         auditset        \
 781         auditstat       \
 782         praudit         
 783 
 784 #
 785 # commands not owned by the systems group
 786 #
 787 BWOSDIRS=
 788 
 789 
 790 all :=          TARGET = all
 791 install :=      TARGET = install
 792 clean :=        TARGET = clean
 793 clobber :=      TARGET = clobber
 794 lint :=         TARGET = lint
 795 _msg :=         TARGET = _msg
 796 _dc :=          TARGET = _dc
 797 
 798 .KEEP_STATE:
 799 
 800 SUBDIRS = $(COMMON_SUBDIRS) $($(MACH)_SUBDIRS)
 801 
 802 .PARALLEL:      $(BWOSDIRS) $(SUBDIRS) $(MSGSUBDIRS) $(AUDITSUBDIRS)
 803 
 804 all install clean clobber lint: $(FIRST_SUBDIRS) .WAIT $(SUBDIRS) \
 805         $(AUDITSUBDIRS)
 806 
 807 #
 808 # Manifests cannot be checked in parallel, because we are using
 809 # the global repository that is in $(SRC)/cmd/svc/seed/global.db.
 810 # For this reason, to avoid .PARALLEL and .NO_PARALLEL conflicts,
 811 # we spawn off a sub-make to perform the non-parallel 'make check'
 812 #
 813 check:
 814         $(MAKE) -f Makefile.check check
 815 
 816 #
 817 # The .WAIT directive works around an apparent bug in parallel make.
 818 # Evidently make was getting the target _msg vs. _dc confused under
 819 # some level of parallelization, causing some of the _dc objects
 820 # not to be built.
 821 #
 822 _msg: $(MSGSUBDIRS) $($(MACH)_MSGSUBDIRS) .WAIT _dc
 823 
 824 _dc: $(DCSUBDIRS)
 825 
 826 #
 827 # Dependencies
 828 #
 829 fs.d:   fstyp
 830 ksh:    shcomp isaexec
 831 print:  lp
 832 fmt:    mailx
 833 
 834 $(FIRST_SUBDIRS) $(BWOSDIRS) $(SUBDIRS) $(AUDITSUBDIRS): FRC
 835         @if [ -f $@/Makefile  ]; then \
 836                 cd $@; pwd; $(MAKE) $(TARGET); \
 837         else \
 838                 true; \
 839         fi
 840 
 841 FRC: