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