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 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 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 ramdiskadm \ 349 rcap \ 350 rcm_daemon \ 351 rctladm \ 352 refer \ 353 regcmp \ 354 renice \ 355 rm \ 356 rmdir \ 357 rmformat \ 358 rmmount \ 359 rmt \ 360 rmvolmgr \ 361 roles \ 362 rpcbind \ 363 rpcgen \ 364 rpcinfo \ 365 rpcsvc \ 366 runat \ 367 sa \ 368 saf \ 369 sasinfo \ 370 savecore \ 371 sbdadm \ 372 script \ 373 scsi \ 374 sdiff \ 375 sdpadm \ 376 sed \ 377 sendmail \ 378 setfacl \ 379 setmnt \ 380 setpgrp \ 381 setuname \ 382 sgs \ 383 sh \ 384 shcomp \ 385 sleep \ 386 smbios \ 387 smbsrv \ 388 smserverd \ 389 soelim \ 390 sort \ 391 spell \ 392 split \ 393 sqlite \ 394 srchtxt \ 395 srptadm \ 396 srptsvc \ 397 ssh \ 398 stat \ 399 stmfadm \ 400 stmfproxy \ 401 stmfsvc \ 402 stmsboot \ 403 streams \ 404 strings \ 405 su \ 406 sulogin \ 407 sunpc \ 408 svc \ 409 svr4pkg \ 410 swap \ 411 sync \ 412 sysdef \ 413 syseventadm \ 414 syslogd \ 415 tabs \ 416 tail \ 417 tar \ 418 tbl \ 419 tcopy \ 420 tcpd \ 421 th_tools \ 422 tic \ 423 time \ 424 tip \ 425 tnf \ 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 vgrind \ 450 vi \ 451 volcheck \ 452 volrmmount \ 453 vrrpadm \ 454 vscan \ 455 vt \ 456 vtfontcvt \ 457 w \ 458 wall \ 459 which \ 460 who \ 461 whodo \ 462 wracct \ 463 write \ 464 xargs \ 465 xstr \ 466 yes \ 467 ypcmd \ 468 yppasswd \ 469 zdb \ 470 zdump \ 471 zfs \ 472 zhack \ 473 zic \ 474 zinject \ 475 zlogin \ 476 zoneadm \ 477 zoneadmd \ 478 zonecfg \ 479 zonename \ 480 zpool \ 481 zlook \ 482 zonestat \ 483 zstreamdump \ 484 ztest 485 486i386_SUBDIRS= \ 487 acpi \ 488 acpihpd \ 489 addbadsec \ 490 ahciem \ 491 bhyve \ 492 bhyvectl \ 493 biosdev \ 494 cxgbetool \ 495 diskscan \ 496 nvmeadm \ 497 rdmsr \ 498 rtc \ 499 ucodeadm \ 500 xhci \ 501 xvm 502 503sparc_SUBDIRS= \ 504 dcs \ 505 device_remap \ 506 drd \ 507 fruadm \ 508 ldmad \ 509 oplhpd \ 510 prtdscp \ 511 prtfru \ 512 scadm \ 513 sckmd \ 514 sf880drd \ 515 virtinfo \ 516 vntsd 517 518# 519# Commands that are messaged. Note that 'lp' comes first 520# (see previous comment about 'lp'.) 521# 522MSGSUBDIRS= \ 523 lp \ 524 abi \ 525 acctadm \ 526 allocate \ 527 asa \ 528 audio \ 529 audit \ 530 auditconfig \ 531 auditd \ 532 auditrecord \ 533 auditset \ 534 auths \ 535 autopush \ 536 awk \ 537 awk_xpg4 \ 538 backup \ 539 banner \ 540 bart \ 541 basename \ 542 beadm \ 543 bnu \ 544 busstat \ 545 cal \ 546 cat \ 547 cdrw \ 548 cfgadm \ 549 checkeq \ 550 checknr \ 551 chgrp \ 552 chmod \ 553 chown \ 554 cmd-crypto \ 555 cmd-inet \ 556 col \ 557 compress \ 558 connstat \ 559 consadm \ 560 coreadm \ 561 cpio \ 562 cpc \ 563 cron \ 564 csh \ 565 csplit \ 566 ctrun \ 567 ctstat \ 568 ctwatch \ 569 datadm \ 570 date \ 571 dc \ 572 dcs \ 573 dd \ 574 deroff \ 575 devfsadm \ 576 dfs.cmds \ 577 diff \ 578 diffmk \ 579 dladm \ 580 dlstat \ 581 du \ 582 dumpcs \ 583 ed \ 584 eject \ 585 env \ 586 eqn \ 587 expand \ 588 expr \ 589 fcinfo \ 590 file \ 591 filesync \ 592 find \ 593 flowadm \ 594 flowstat \ 595 fm \ 596 fold \ 597 fs.d \ 598 fwflash \ 599 geniconvtbl \ 600 genmsg \ 601 getconf \ 602 getent \ 603 gettext \ 604 gettxt \ 605 grep \ 606 grpck \ 607 gss \ 608 halt \ 609 head \ 610 hostname \ 611 hotplug \ 612 iconv \ 613 id \ 614 idmap \ 615 isaexec \ 616 iscsiadm \ 617 iscsid \ 618 isns \ 619 itadm \ 620 kbd \ 621 krb5 \ 622 ksh \ 623 last \ 624 ldap \ 625 ldapcachemgr \ 626 lgrpinfo \ 627 locale \ 628 lofiadm \ 629 logadm \ 630 logger \ 631 logins \ 632 ls \ 633 luxadm \ 634 mailx \ 635 make \ 636 man \ 637 mesg \ 638 mkdir \ 639 mkpwdict \ 640 mktemp \ 641 more \ 642 mpathadm \ 643 msgfmt \ 644 mv \ 645 ndmpadm \ 646 ndmpstat \ 647 newgrp \ 648 newtask \ 649 nice \ 650 nohup \ 651 oawk \ 652 pack \ 653 passwd \ 654 passmgmt \ 655 pathchk \ 656 pfexec \ 657 pg \ 658 pgrep \ 659 picl \ 660 pools \ 661 power \ 662 pr \ 663 praudit \ 664 print \ 665 profiles \ 666 projadd \ 667 projects \ 668 prstat \ 669 prtdiag \ 670 ps \ 671 psrinfo \ 672 ptools \ 673 pwconv \ 674 pwd \ 675 pyzfs \ 676 raidctl \ 677 ramdiskadm \ 678 rcap \ 679 rcm_daemon \ 680 refer \ 681 regcmp \ 682 renice \ 683 roles \ 684 rm \ 685 rmdir \ 686 rmformat \ 687 rmmount \ 688 rmvolmgr \ 689 sasinfo \ 690 sbdadm \ 691 scadm \ 692 script \ 693 scsi \ 694 sdiff \ 695 sdpadm \ 696 sgs \ 697 sh \ 698 shcomp \ 699 smbsrv \ 700 sort \ 701 split \ 702 srptadm \ 703 stat \ 704 stmfadm \ 705 stmsboot \ 706 strings \ 707 su \ 708 svc \ 709 svr4pkg \ 710 swap \ 711 syseventadm \ 712 syseventd \ 713 tabs \ 714 tar \ 715 tbl \ 716 time \ 717 tnf \ 718 touch \ 719 tput \ 720 troff \ 721 tsol \ 722 tty \ 723 ttymon \ 724 tzreload \ 725 ul \ 726 uname \ 727 units \ 728 unlink \ 729 unpack \ 730 userattr \ 731 valtools \ 732 vgrind \ 733 vi \ 734 volcheck \ 735 volrmmount \ 736 vrrpadm \ 737 vscan \ 738 w \ 739 who \ 740 whodo \ 741 wracct \ 742 write \ 743 xargs \ 744 yppasswd \ 745 zdump \ 746 zfs \ 747 zic \ 748 zlogin \ 749 zoneadm \ 750 zoneadmd \ 751 zonecfg \ 752 zonename \ 753 zpool \ 754 zonestat 755 756sparc_MSGSUBDIRS= \ 757 fruadm \ 758 prtdscp \ 759 prtfru \ 760 virtinfo \ 761 vntsd 762 763i386_MSGSUBDIRS= \ 764 rdmsr \ 765 ucodeadm 766 767# 768# commands that use dcgettext for localized time, LC_TIME 769# 770DCSUBDIRS= \ 771 cal \ 772 cfgadm \ 773 diff \ 774 ls \ 775 pr \ 776 ps \ 777 tar \ 778 w \ 779 who \ 780 whodo \ 781 write 782 783# 784# commands that belong only to audit. 785# 786AUDITSUBDIRS= \ 787 amt \ 788 audit \ 789 audit_warn \ 790 auditconfig \ 791 auditd \ 792 auditrecord \ 793 auditreduce \ 794 auditset \ 795 auditstat \ 796 praudit 797 798# 799# commands not owned by the systems group 800# 801BWOSDIRS= 802 803 804all := TARGET = all 805install := TARGET = install 806clean := TARGET = clean 807clobber := TARGET = clobber 808lint := TARGET = lint 809_msg := TARGET = _msg 810_dc := TARGET = _dc 811 812.KEEP_STATE: 813 814SUBDIRS = $(COMMON_SUBDIRS) $($(MACH)_SUBDIRS) 815 816.PARALLEL: $(BWOSDIRS) $(SUBDIRS) $(MSGSUBDIRS) $(AUDITSUBDIRS) 817 818all install clean clobber lint: $(FIRST_SUBDIRS) .WAIT $(SUBDIRS) \ 819 $(AUDITSUBDIRS) 820 821# 822# Manifests cannot be checked in parallel, because we are using 823# the global repository that is in $(SRC)/cmd/svc/seed/global.db. 824# For this reason, to avoid .PARALLEL and .NO_PARALLEL conflicts, 825# we spawn off a sub-make to perform the non-parallel 'make check' 826# 827check: 828 $(MAKE) -f Makefile.check check 829 830# 831# The .WAIT directive works around an apparent bug in parallel make. 832# Evidently make was getting the target _msg vs. _dc confused under 833# some level of parallelization, causing some of the _dc objects 834# not to be built. 835# 836_msg: $(MSGSUBDIRS) $($(MACH)_MSGSUBDIRS) .WAIT _dc 837 838_dc: $(DCSUBDIRS) 839 840# 841# Dependencies 842# 843fs.d: fstyp 844ksh: shcomp isaexec 845print: lp 846fmt: mailx 847 848$(FIRST_SUBDIRS) $(BWOSDIRS) $(SUBDIRS) $(AUDITSUBDIRS): FRC 849 @if [ -f $@/Makefile ]; then \ 850 cd $@; pwd; $(MAKE) $(TARGET); \ 851 else \ 852 true; \ 853 fi 854 855FRC: 856