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