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# 24# Copyright 2008 Sun Microsystems, Inc. All rights reserved. 25# Use is subject to license terms. 26# 27 28include ../Makefile.master 29include ../Makefile.ksh93switch 30 31# 32# Note that the commands 'agents', 'lp', 'perl', and 'man' are first in 33# the list, violating alphabetical order. This is because they are very 34# long-running and should be given the most wall-clock time for a 35# parallel build. 36# 37# Commands in the FIRST_SUBDIRS list are built before starting the build 38# of other commands. Currently this includes only 'isaexec' and 39# 'platexec'. This is necessary because $(ROOT)/usr/lib/isaexec or 40# $(ROOT)/usr/lib/platexec must exist when some other commands are built 41# because their 'make install' creates a hard link to one of them. 42# 43# Commands are listed one per line so that TeamWare can auto-merge most 44# changes. 45# 46 47FIRST_SUBDIRS= \ 48 isaexec \ 49 platexec 50 51COMMON_SUBDIRS= \ 52 agents \ 53 availdevs \ 54 lp \ 55 perl \ 56 man \ 57 Adm \ 58 abi \ 59 adbgen \ 60 acct \ 61 acctadm \ 62 arch \ 63 asa \ 64 ast \ 65 audio \ 66 auths \ 67 autopush \ 68 avs \ 69 awk \ 70 awk_xpg4 \ 71 backup \ 72 banner \ 73 bart \ 74 basename \ 75 bc \ 76 bdiff \ 77 bfs \ 78 bnu \ 79 boot \ 80 busstat \ 81 cal \ 82 calendar \ 83 captoinfo \ 84 cat \ 85 cdrw \ 86 cfgadm \ 87 checkeq \ 88 checknr \ 89 chgrp \ 90 chmod \ 91 chown \ 92 chroot \ 93 cksum \ 94 clear \ 95 clinfo \ 96 cmd-crypto \ 97 cmd-inet \ 98 cmp \ 99 col \ 100 comm \ 101 compress \ 102 consadm \ 103 coreadm \ 104 cpio \ 105 cpc \ 106 cron \ 107 crypt \ 108 csh \ 109 csplit \ 110 ctrun \ 111 ctstat \ 112 ctwatch \ 113 cut \ 114 datadm \ 115 date \ 116 dc \ 117 dd \ 118 deroff \ 119 des \ 120 devfsadm \ 121 syseventd \ 122 devctl \ 123 devinfo \ 124 devmgmt \ 125 devprop \ 126 dfs.cmds \ 127 diff \ 128 diff3 \ 129 diffmk \ 130 dircmp \ 131 dirname \ 132 dis \ 133 diskmgtd \ 134 dispadmin \ 135 dladm \ 136 dmesg \ 137 dtrace \ 138 du \ 139 dumpadm \ 140 dumpcs \ 141 echo \ 142 ed \ 143 eeprom \ 144 egrep \ 145 eject \ 146 emul64ioctl \ 147 enhance \ 148 env \ 149 eqn \ 150 expand \ 151 expr \ 152 exstr \ 153 factor \ 154 false \ 155 fcinfo \ 156 fdetach \ 157 fdformat \ 158 fdisk \ 159 filesync \ 160 fgrep \ 161 file \ 162 filebench \ 163 find \ 164 flowadm \ 165 fm \ 166 fmli \ 167 fmt \ 168 fmthard \ 169 fmtmsg \ 170 fold \ 171 format \ 172 fs.d \ 173 fstyp \ 174 fuser \ 175 fwflash \ 176 gcore \ 177 gencat \ 178 geniconvtbl \ 179 genmsg \ 180 getconf \ 181 getdevpolicy \ 182 getent \ 183 getfacl \ 184 getmajor \ 185 getopt \ 186 gettext \ 187 gettxt \ 188 graph \ 189 grep \ 190 grep_xpg4 \ 191 groups \ 192 grpck \ 193 gss \ 194 hal \ 195 halt \ 196 head \ 197 hostid \ 198 hostname \ 199 hwdata \ 200 id \ 201 idmap \ 202 infocmp \ 203 init \ 204 initpkg \ 205 install.d \ 206 intrd \ 207 intrstat \ 208 ipcrm \ 209 ipcs \ 210 ipf \ 211 isainfo \ 212 isalist \ 213 iscsi \ 214 itutools \ 215 iscsiadm \ 216 iscsid \ 217 iscsitsvc \ 218 isns \ 219 itadm \ 220 java \ 221 join \ 222 kbd \ 223 keyserv \ 224 killall \ 225 krb5 \ 226 ksh \ 227 kstat \ 228 last \ 229 lastcomm \ 230 ldap \ 231 ldapcachemgr \ 232 lgrpinfo \ 233 line \ 234 link \ 235 dlmgmtd \ 236 listen \ 237 loadkeys \ 238 locale \ 239 lockstat \ 240 locator \ 241 lofiadm \ 242 logadm \ 243 logger \ 244 login \ 245 logins \ 246 logname \ 247 look \ 248 ls \ 249 luxadm \ 250 lvm \ 251 mach \ 252 machid \ 253 mail \ 254 mailx \ 255 makekey \ 256 mdb \ 257 mesg \ 258 mkdir \ 259 mkfifo \ 260 mkfile \ 261 mkmsgs \ 262 mknod \ 263 mkpwdict \ 264 mktemp \ 265 mms \ 266 modload \ 267 more \ 268 mpathadm \ 269 msgfmt \ 270 msgid \ 271 mt \ 272 mv \ 273 mvdir \ 274 ndmpadm \ 275 ndmpd \ 276 ndmpstat \ 277 netadm \ 278 netfiles \ 279 newform \ 280 newgrp \ 281 news \ 282 newtask \ 283 nice \ 284 nispasswd \ 285 nl \ 286 nlsadmin \ 287 nohup \ 288 nsadmin \ 289 nscd \ 290 oamuser \ 291 oawk \ 292 openssl \ 293 pack \ 294 pagesize \ 295 passmgmt \ 296 passwd \ 297 paste \ 298 pathchk \ 299 pbind \ 300 pcidr \ 301 pcmciad \ 302 pfexec \ 303 pgrep \ 304 picl \ 305 plimit \ 306 policykit \ 307 pools \ 308 power \ 309 powertop \ 310 ppgsz \ 311 pg \ 312 plockstat \ 313 pr \ 314 prctl \ 315 print \ 316 priocntl \ 317 profiles \ 318 projadd \ 319 projects \ 320 prstat \ 321 prtconf \ 322 prtdiag \ 323 prtvtoc \ 324 ps \ 325 psradm \ 326 psrinfo \ 327 psrset \ 328 ptools \ 329 pwck \ 330 pwconv \ 331 pwd \ 332 raidctl \ 333 ramdiskadm \ 334 rcap \ 335 rcm_daemon \ 336 rctladm \ 337 refer \ 338 regcmp \ 339 renice \ 340 rexd \ 341 rm \ 342 rmdir \ 343 rmformat \ 344 rmmount \ 345 rmt \ 346 rmvolmgr \ 347 roles \ 348 rpcbind \ 349 rpcgen \ 350 rpcinfo \ 351 rpcsvc \ 352 rpld \ 353 runat \ 354 sa \ 355 saf \ 356 savecore \ 357 sbdadm \ 358 script \ 359 scsi \ 360 sdiff \ 361 sdpadm \ 362 sendmail \ 363 setfacl \ 364 setmnt \ 365 setpgrp \ 366 setuname \ 367 sgs \ 368 sh \ 369 sleep \ 370 smbios \ 371 smbsrv \ 372 smserverd \ 373 soelim \ 374 sort \ 375 spell \ 376 spline \ 377 split \ 378 sqlite \ 379 srchtxt \ 380 ssh \ 381 stat \ 382 stmfadm \ 383 stmfsvc \ 384 stmsboot \ 385 streams \ 386 strings \ 387 su \ 388 sulogin \ 389 sum \ 390 sunpc \ 391 svc \ 392 swap \ 393 sync \ 394 sysdef \ 395 syseventadm \ 396 syslogd \ 397 tabs \ 398 tar \ 399 tbl \ 400 tcopy \ 401 tcpd \ 402 tee \ 403 terminfo \ 404 th_tools \ 405 tic \ 406 time \ 407 tip \ 408 tnf \ 409 touch \ 410 tplot \ 411 tput \ 412 trapstat \ 413 troff \ 414 true \ 415 truss \ 416 tsol \ 417 tty \ 418 ttymon \ 419 uadmin \ 420 ul \ 421 uname \ 422 uniq \ 423 units \ 424 unlink \ 425 unpack \ 426 users \ 427 utmp_update \ 428 utmpd \ 429 valtools \ 430 vgrind \ 431 vi \ 432 vna \ 433 volcheck \ 434 volrmmount \ 435 vscan \ 436 vt \ 437 w \ 438 wall \ 439 wbem \ 440 wc \ 441 which \ 442 who \ 443 whodo \ 444 wracct \ 445 write \ 446 xntpd \ 447 xargs \ 448 xstr \ 449 yes \ 450 ypcmd \ 451 yppasswd \ 452 zdb \ 453 zdump \ 454 zfs \ 455 zic \ 456 zinject \ 457 zlogin \ 458 zoneadm \ 459 zoneadmd \ 460 zonecfg \ 461 zonename \ 462 zpool \ 463 ztest 464 465$(CLOSED_BUILD)COMMON_SUBDIRS += \ 466 $(CLOSED)/cmd/dodatadm \ 467 $(CLOSED)/cmd/iconv \ 468 $(CLOSED)/cmd/ksh \ 469 $(CLOSED)/cmd/llc2 \ 470 $(CLOSED)/cmd/localedef \ 471 $(CLOSED)/cmd/more_xpg4 \ 472 $(CLOSED)/cmd/mtst \ 473 $(CLOSED)/cmd/od \ 474 $(CLOSED)/cmd/patch \ 475 $(CLOSED)/cmd/pax \ 476 $(CLOSED)/cmd/pcitool \ 477 $(CLOSED)/cmd/printf \ 478 $(CLOSED)/cmd/sed \ 479 $(CLOSED)/cmd/sed_xpg4 \ 480 $(CLOSED)/cmd/smartcard \ 481 $(CLOSED)/cmd/tail \ 482 $(CLOSED)/cmd/tr_xpg4 483 484i386_SUBDIRS= \ 485 addbadsec \ 486 biosdev \ 487 diskscan \ 488 OWconfig \ 489 rtc \ 490 ucodeadm \ 491 xvm 492 493sparc_SUBDIRS= \ 494 cvcd \ 495 dcs \ 496 device_remap \ 497 drd \ 498 fps \ 499 fruadm \ 500 oplhpd \ 501 prtdscp \ 502 prtfru \ 503 scadm \ 504 sckmd \ 505 sf880drd \ 506 vntsd 507 508# 509# Commands that are messaged. Note that 'lp' and 'man' come first 510# (see previous comment about 'lp' and 'man'). 511# 512MSGSUBDIRS= \ 513 lp \ 514 man \ 515 abi \ 516 acctadm \ 517 allocate \ 518 asa \ 519 audio \ 520 audit \ 521 auditd \ 522 auths \ 523 autopush \ 524 avs \ 525 awk \ 526 awk_xpg4 \ 527 backup \ 528 banner \ 529 bart \ 530 basename \ 531 bnu \ 532 bsmconv \ 533 bsmrecord \ 534 bsmunconv \ 535 busstat \ 536 cal \ 537 cat \ 538 cdrw \ 539 cfgadm \ 540 checkeq \ 541 checknr \ 542 chgrp \ 543 chmod \ 544 chown \ 545 cksum \ 546 cmd-crypto \ 547 cmd-inet \ 548 cmp \ 549 col \ 550 comm \ 551 compress \ 552 consadm \ 553 coreadm \ 554 cpio \ 555 cpc \ 556 cron \ 557 csh \ 558 csplit \ 559 ctrun \ 560 ctstat \ 561 ctwatch \ 562 cut \ 563 datadm \ 564 date \ 565 dc \ 566 dcs \ 567 dd \ 568 deroff \ 569 devfsadm \ 570 dfs.cmds \ 571 diff \ 572 diffmk \ 573 dladm \ 574 du \ 575 dumpcs \ 576 ed \ 577 eject \ 578 env \ 579 eqn \ 580 expand \ 581 expr \ 582 fcinfo \ 583 fgrep \ 584 file \ 585 filesync \ 586 find \ 587 flowadm \ 588 fm \ 589 fold \ 590 fs.d \ 591 fwflash \ 592 geniconvtbl \ 593 genmsg \ 594 getconf \ 595 getent \ 596 gettext \ 597 gettxt \ 598 grep \ 599 grep_xpg4 \ 600 grpck \ 601 gss \ 602 halt \ 603 head \ 604 hostname \ 605 id \ 606 idmap \ 607 isaexec \ 608 iscsi \ 609 iscsiadm \ 610 iscsid \ 611 isns \ 612 itadm \ 613 join \ 614 kbd \ 615 krb5 \ 616 ksh \ 617 kstat \ 618 last \ 619 ldap \ 620 ldapcachemgr \ 621 lgrpinfo \ 622 locale \ 623 lofiadm \ 624 logadm \ 625 logger \ 626 logins \ 627 logname \ 628 ls \ 629 luxadm \ 630 lvm \ 631 mailx \ 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 nispasswd \ 646 nohup \ 647 oawk \ 648 pack \ 649 passwd \ 650 passmgmt \ 651 paste \ 652 pathchk \ 653 pfexec \ 654 pg \ 655 pgrep \ 656 picl \ 657 pools \ 658 power \ 659 pr \ 660 praudit \ 661 print \ 662 profiles \ 663 projadd \ 664 projects \ 665 prstat \ 666 prtdiag \ 667 ps \ 668 psrinfo \ 669 ptools \ 670 pwconv \ 671 pwd \ 672 raidctl \ 673 ramdiskadm \ 674 rcap \ 675 rcm_daemon \ 676 refer \ 677 regcmp \ 678 renice \ 679 roles \ 680 rm \ 681 rmdir \ 682 rmformat \ 683 rmmount \ 684 rmvolmgr \ 685 sbdadm \ 686 scadm \ 687 script \ 688 scsi \ 689 sdiff \ 690 sdpadm \ 691 sgs \ 692 sh \ 693 sleep \ 694 sort \ 695 split \ 696 ssh \ 697 stat \ 698 stmfadm \ 699 stmsboot \ 700 strings \ 701 su \ 702 sum \ 703 svc \ 704 swap \ 705 syseventadm \ 706 syseventd \ 707 tabs \ 708 tar \ 709 tbl \ 710 tee \ 711 time \ 712 tnf \ 713 touch \ 714 tput \ 715 troff \ 716 tsol \ 717 tty \ 718 ttymon \ 719 ul \ 720 uname \ 721 uniq \ 722 units \ 723 unlink \ 724 unpack \ 725 valtools \ 726 vgrind \ 727 vi \ 728 volcheck \ 729 volrmmount \ 730 w \ 731 wbem \ 732 wc \ 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 749$(CLOSED_BUILD)MSGSUBDIRS += \ 750 $(CLOSED)/cmd/iconv \ 751 $(CLOSED)/cmd/ksh \ 752 $(CLOSED)/cmd/llc2 \ 753 $(CLOSED)/cmd/localedef \ 754 $(CLOSED)/cmd/more_xpg4 \ 755 $(CLOSED)/cmd/od \ 756 $(CLOSED)/cmd/patch \ 757 $(CLOSED)/cmd/pax \ 758 $(CLOSED)/cmd/printf \ 759 $(CLOSED)/cmd/sed \ 760 $(CLOSED)/cmd/sed_xpg4 \ 761 $(CLOSED)/cmd/tail \ 762 $(CLOSED)/cmd/tr_xpg4 763 764sparc_MSGSUBDIRS= \ 765 fruadm \ 766 prtdscp \ 767 prtfru \ 768 vntsd 769 770i386_MSGSUBDIRS= \ 771 ucodeadm 772 773# 774# commands that use dcgettext for localized time, LC_TIME 775# 776DCSUBDIRS= \ 777 cal \ 778 cfgadm \ 779 diff \ 780 ls \ 781 pr \ 782 ps \ 783 tar \ 784 w \ 785 who \ 786 whodo \ 787 write 788 789$(CLOSED_BUILD)DCSUBDIRS += \ 790 $(CLOSED)/cmd/pax 791 792# 793# commands that belong only to the basic security module 794# 795BSMSUBDIRS= \ 796 allocate \ 797 amt \ 798 audit \ 799 audit_warn \ 800 auditconfig \ 801 auditd \ 802 auditreduce \ 803 auditstat \ 804 praudit \ 805 bsmconv \ 806 bsmrecord \ 807 bsmunconv 808 809# 810# commands not owned by the systems group 811# 812BWOSDIRS= 813 814# 815# Commands providing manifests must offer a check target. A recursive check 816# target across all commands directories is not currently provided. 817# 818MANIFEST_TOPDIRS= \ 819 auditd \ 820 bnu \ 821 consadm \ 822 coreadm \ 823 cron \ 824 cvcd \ 825 dispadmin \ 826 drd \ 827 dumpadm \ 828 eeprom \ 829 fm \ 830 intrd \ 831 ipf \ 832 keyserv \ 833 ldapcachemgr \ 834 dlmgmtd \ 835 nscd \ 836 oplhpd \ 837 power \ 838 rexd \ 839 rpcbind \ 840 rpcsvc \ 841 saf \ 842 sf880drd \ 843 smserverd \ 844 syseventd \ 845 syslogd \ 846 utmpd \ 847 vntsd \ 848 ypcmd \ 849 zoneadmd 850 851MANIFEST_SUBDIRS= \ 852 boot/scripts \ 853 cmd-crypto/scripts \ 854 cmd-inet/usr.lib/in.chargend \ 855 cmd-inet/usr.lib/in.daytimed \ 856 cmd-inet/usr.lib/in.dhcpd \ 857 cmd-inet/usr.lib/in.discardd \ 858 cmd-inet/usr.lib/in.echod \ 859 cmd-inet/usr.lib/in.ndpd \ 860 cmd-inet/usr.lib/in.ripngd \ 861 cmd-inet/usr.lib/in.timed \ 862 cmd-inet/usr.lib/inetd \ 863 cmd-inet/usr.lib/mdnsd \ 864 cmd-inet/usr.lib/slpd \ 865 cmd-inet/usr.lib/wpad \ 866 cmd-inet/usr.sbin \ 867 cmd-inet/usr.sbin/in.ftpd \ 868 cmd-inet/usr.sbin/in.rdisc \ 869 cmd-inet/usr.sbin/in.routed \ 870 cmd-inet/usr.sbin/in.talkd \ 871 cmd-inet/usr.sbin/routeadm \ 872 cmd/tsol/labeld \ 873 cmd/tsol/tnctl \ 874 cmd/tsol/tnd \ 875 cmd/tsol/tsol-zones \ 876 dcs/sparc/sun4u \ 877 fs.d/autofs \ 878 fs.d/cachefs \ 879 fs.d/nfs/svc \ 880 gss/gssd \ 881 idmap/idmapd \ 882 krb5/kadmin/server \ 883 krb5/krb5kdc \ 884 krb5/kwarn \ 885 krb5/slave \ 886 lp/cmd/lpsched \ 887 lvm/rpc.metad \ 888 lvm/rpc.metamedd \ 889 lvm/rpc.metamhd \ 890 lvm/md_monitord \ 891 lvm/metassist/sysfiles \ 892 lvm/util \ 893 picl/picld \ 894 print/gateway \ 895 print/lp \ 896 rcap/rcapd \ 897 rpcsvc/rpc.bootparamd \ 898 sendmail/lib \ 899 smartcard/daemon \ 900 ssh/etc \ 901 svc/milestone \ 902 ypcmd/yppasswd \ 903 ypcmd/ypupdated \ 904 xntpd/xntpd 905 906DTEST_SUBDIRS= \ 907 dtrace/test/tst 908 909all := TARGET = all 910install := TARGET = install 911clean := TARGET = clean 912clobber := TARGET = clobber 913lint := TARGET = lint 914check := TARGET = check 915_msg := TARGET = _msg 916_dc := TARGET = _dc 917 918.KEEP_STATE: 919 920SUBDIRS = $(COMMON_SUBDIRS) $($(MACH)_SUBDIRS) 921 922.PARALLEL: $(BWOSDIRS) $(SUBDIRS) $(MSGSUBDIRS) $(BSMSUBDIRS) \ 923 $(DTEST_SUBDIRS) 924 925all install clean clobber lint: $(FIRST_SUBDIRS) .WAIT $(SUBDIRS) $(BSMSUBDIRS) 926 927# Manifests cannot be checked in parallel, because we are using the global 928# repository that is in $(SRC)/cmd/svc/seed/global.db. This is a 929# repository that is built from the manifests in this workspace, whereas 930# the build machine's repository may be out of sync with these manifests. 931# Because we are using a private repository, svccfg-native must start up a 932# private copy of configd-native. We cannot have multiple copies of 933# configd-native trying to access global.db simultaneously. 934 935.NO_PARALLEL: $(MANIFEST_TOPDIRS) $(MANIFEST_SUBDIRS) 936 937check: svccfg_check .WAIT $(MANIFEST_TOPDIRS) $(MANIFEST_SUBDIRS) \ 938 $(DTEST_SUBDIRS) 939 940svccfg_check: 941 @$(ECHO) "building requirements for svccfg check ..."; \ 942 (cd $(SRC)/cmd/svc/seed && pwd && $(MAKE) $(MFLAGS) global.db) 943 944$(DTEST_SUBDIRS): FRC 945 @cd $@; pwd; $(MAKE) $(TARGET) 946 947# 948# The .WAIT directive works around an apparent bug in parallel make. 949# Evidently make was getting the target _msg vs. _dc confused under 950# some level of parallelization, causing some of the _dc objects 951# not to be built. 952# 953_msg: $(MSGSUBDIRS) $($(MACH)_MSGSUBDIRS) .WAIT _dc 954 955_dc: $(DCSUBDIRS) 956 957# 958# Dependencies 959# 960fs.d: fstyp 961 962$(FIRST_SUBDIRS) $(BWOSDIRS) $(SUBDIRS) $(BSMSUBDIRS) $(MANIFEST_SUBDIRS): FRC 963 @if [ -f $@/Makefile ]; then \ 964 cd $@; pwd; $(MAKE) $(TARGET); \ 965 else \ 966 true; \ 967 fi 968 969FRC: 970