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