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