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