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