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