# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. # Copyright 2020 Joyent, Inc. # Copyright (c) 2012, 2015 by Delphix. All rights reserved. # Copyright (c) 2013 DEY Storage Systems, Inc. All rights reserved. # Copyright 2014 Garrett D'Amore # Copyright 2016 Toomas Soome # Copyright 2018 Nexenta Systems, Inc. # Copyright 2018 Gary Mills # Copyright 2019 Peter Tribble # Copyright 2021 OmniOS Community Edition (OmniOSce) Association. # include ../Makefile.master # # Note that the commands 'lp', and 'perl' are first in # the list, violating alphabetical order. This is because they are very # long-running and should be given the most wall-clock time for a # parallel build. # # Commands in the FIRST_SUBDIRS list are built before starting the build # of other commands. Currently this includes only 'isaexec' and # 'platexec'. This is necessary because $(ROOT)/usr/lib/isaexec or # $(ROOT)/usr/lib/platexec must exist when some other commands are built # because their 'make install' creates a hard link to one of them. # # Commands are listed one per line so that TeamWare can auto-merge most # changes. # # Hammerhead: Removed isaexec (32-bit only, not needed for amd64-only build) FIRST_SUBDIRS= \ platexec # Hammerhead: Temporarily disabled for initial build testing: # - abi: broken directory structure (missing arch subdirs) # - allocate: needs bsm headers (lib/libbsm must build first) # - availdevs: needs JNI headers (Java not required for base OS) # - bnu: complex target-specific POBJS patterns incompatible with gmake # - perl: needs xsubpp tool (Perl development environment) # # Hammerhead: Removed in Phase A software audit (obsolete/legacy): # NIS: keyserv, ypcmd, yppasswd # UUCP: tip (bnu already disabled above) # SAF: listen, nlsadmin, saf # RPC diag: rpcsvc (wall kept separately) # Printing: lp, print # Ancient: banner, crypt, dc, factor, look, makekey, news, oawk, pack, # regcmp, spell, sunpc # Obsolete hw: emul64ioctl, fdformat (see also addbadsec in i386_SUBDIRS) # Network: vrrpadm (vrrpd removed from cmd-inet) # Desktop: policykit (requires external glib/dbus; libpolkit not built) COMMON_SUBDIRS= \ Adm \ adbgen \ acct \ acctadm \ arch \ asa \ ast \ audio \ auths \ autopush \ awk \ awk_xpg4 \ backup \ bart \ basename \ bc \ bdiff \ beadm \ boot \ busstat \ cal \ captoinfo \ cat \ ccidadm \ cfgadm \ checkeq \ checknr \ chgrp \ chmod \ chown \ chroot \ clear \ clinfo \ cmd-crypto \ cmd-inet \ col \ compress \ connstat \ consadm \ coreadm \ cpio \ cpc \ cron \ csplit \ ctfconvert \ ctfdiff \ ctfdump \ ctfmerge \ ctrun \ ctstat \ ctwatch \ date \ dd \ demangle \ deroff \ devfsadm \ syseventd \ devctl \ devinfo \ devmgmt \ devprop \ dfs.cmds \ diff \ diff3 \ diffmk \ dircmp \ dirname \ dis \ diskinfo \ dispadmin \ dladm \ dlstat \ dlutil \ dmesg \ dtrace \ du \ dumpadm \ dumpcs \ echo \ ed \ eeprom \ enhance \ env \ eqn \ etdump \ expand \ expr \ exstr \ false \ fcoesvc \ fdetach \ fdisk \ filesync \ file \ find \ flowadm \ flowstat \ fm \ fmt \ fmthard \ fmtmsg \ fold \ format \ fs.d \ fstyp \ fuser \ fwflash \ gcore \ gencat \ geniconvtbl \ genmsg \ getconf \ getdevpolicy \ getent \ getfacl \ getmajor \ getopt \ gettext \ gettxt \ gpioadm \ grep \ groups \ growfs \ grpck \ gss \ halt \ head \ hostid \ hostname \ hotplug \ hotplugd \ i2cadm \ ibd_upgrade \ iconv \ id \ idmap \ infocmp \ initpkg \ install.d \ intrd \ intrstat \ ipcrm \ ipcs \ ipdadm \ ipf \ isainfo \ isalist \ iscsiadm \ iscsid \ iscsitsvc \ isns \ itadm \ kbd \ killall \ krb5 \ ktest \ kvmstat \ last \ lastcomm \ lgrpinfo \ line \ link \ dlmgmtd \ loadkeys \ locale \ localedef \ lockstat \ locator \ lofiadm \ logadm \ logger \ login \ logins \ logname \ ls \ mach \ mail \ mailwrapper \ mailx \ make \ man \ mandoc \ mdb \ mesg \ mkdir \ mkfifo \ mkfile \ mkmsgs \ mknod \ mkpwdict \ mktemp \ modload \ more \ mpathadm \ msgfmt \ msgid \ mt \ mv \ mvdir \ ndmpadm \ ndmpd \ ndmpstat \ netadm \ netfiles \ newform \ newgrp \ newtask \ nice \ nl \ nohup \ nsadmin \ nscd \ oamuser \ od \ pagesize \ passmgmt \ passwd \ patch \ pathchk \ pbind \ pcidb \ pcidr \ pcieadm \ pcieb \ pcitool \ pfexec \ pfexecd \ pginfo \ pgstat \ pgrep \ picl \ plimit \ pools \ power \ powertop \ ppgsz \ pg \ plockstat \ pr \ prctl \ printf \ priocntl \ profiles \ projadd \ projects \ prstat \ prtconf \ prtdiag \ prtvtoc \ ps \ psradm \ psrinfo \ psrset \ ptools \ pwck \ pwconv \ pwd \ raidctl \ raidz_test \ ramdiskadm \ rcap \ rcm_daemon \ rctladm \ refer \ renice \ rm \ rmdir \ rmt \ roles \ rpcbind \ rsync \ rpcgen \ rpcinfo \ runat \ sa \ sasinfo \ savecore \ sbdadm \ script \ scsi \ sdiff \ sdpadm \ sed \ setfacl \ setmnt \ setpgrp \ sgs \ sh \ sleep \ smbios \ smbsrv \ smserverd \ soelim \ sort \ spd \ split \ sqlite \ srchtxt \ srptadm \ srptsvc \ ssh \ stat \ stmfadm \ stmfproxy \ stmfsvc \ stmsboot \ streams \ strings \ su \ sulogin \ swap \ sync \ sysdef \ syseventadm \ syslogd \ tabs \ tail \ tar \ tbl \ tcopy \ tcpd \ th_tools \ tic \ time \ touch \ tput \ tr \ trapstat \ troff \ true \ truss \ tsol \ tty \ ttymon \ tzreload \ uadmin \ ul \ uname \ units \ unlink \ unpack \ userattr \ users \ utmp_update \ utmpd \ uuidgen \ varpd \ vgrind \ vi \ vscan \ vt \ vtfontcvt \ w \ wall \ which \ who \ whodo \ wracct \ write \ xargs \ xstr \ yes \ zdb \ zdump \ zfs \ zhack \ zic \ zinject \ zlogin \ zoneadm \ zoneadmd \ zonecfg \ zonename \ zpool \ zlook \ zonestat \ zsh \ zstreamdump \ ztest \ .WAIT \ reefc \ .WAIT \ coral i386_SUBDIRS= \ acpi \ acpihpd \ ahciem \ amdzen \ bhyve \ bhyvectl \ biosdev \ diskscan \ ficl \ nvmeadm \ pptadm \ rdmsr \ rsrvrctl \ rtc \ ucodeadm \ xhci \ xvm # Hammerhead: sparc_SUBDIRS removed - amd64 only build # # Commands that are messaged. # Hammerhead: Removed lp and allocate (temporarily disabled) # MSGSUBDIRS= \ abi \ acctadm \ asa \ ast \ audio \ audit \ auditconfig \ auditd \ auditrecord \ auditset \ auths \ autopush \ awk \ awk_xpg4 \ backup \ bart \ basename \ beadm \ busstat \ cal \ cat \ cfgadm \ checkeq \ checknr \ chgrp \ chmod \ chown \ cmd-crypto \ cmd-inet \ col \ compress \ connstat \ consadm \ coreadm \ cpio \ cpc \ cron \ csplit \ ctrun \ ctstat \ ctwatch \ date \ dd \ deroff \ devfsadm \ dfs.cmds \ diff \ diffmk \ dladm \ dlstat \ du \ dumpcs \ ed \ env \ eqn \ expand \ expr \ file \ filesync \ find \ flowadm \ flowstat \ fm \ fold \ fs.d \ fwflash \ geniconvtbl \ genmsg \ getconf \ getent \ gettext \ gettxt \ grep \ grpck \ gss \ halt \ head \ hostname \ hotplug \ iconv \ id \ idmap \ iscsiadm \ iscsid \ isns \ itadm \ kbd \ krb5 \ last \ lgrpinfo \ locale \ lofiadm \ logadm \ logger \ logins \ ls \ mailx \ make \ man \ mesg \ mkdir \ mkpwdict \ mktemp \ more \ mpathadm \ msgfmt \ mv \ ndmpadm \ ndmpstat \ newgrp \ newtask \ nice \ nohup \ passwd \ passmgmt \ pathchk \ pfexec \ pg \ pgrep \ picl \ pools \ power \ pr \ praudit \ profiles \ projadd \ projects \ prstat \ prtdiag \ ps \ psrinfo \ ptools \ pwconv \ pwd \ raidctl \ ramdiskadm \ rcap \ rcm_daemon \ refer \ renice \ roles \ rm \ rmdir \ rsync \ sasinfo \ sbdadm \ script \ scsi \ sdiff \ sdpadm \ sgs \ sh \ smbsrv \ sort \ split \ srptadm \ stat \ stmfadm \ stmsboot \ strings \ su \ swap \ syseventadm \ syseventd \ tabs \ tar \ tbl \ time \ touch \ tput \ troff \ tsol \ tty \ ttymon \ tzreload \ ul \ uname \ units \ unlink \ unpack \ userattr \ vgrind \ vi \ vscan \ w \ who \ whodo \ wracct \ write \ xargs \ zdump \ zfs \ zic \ zlogin \ zoneadm \ zoneadmd \ zonecfg \ zonename \ zpool \ zonestat \ zsh # Hammerhead: sparc_MSGSUBDIRS removed - amd64 only build i386_MSGSUBDIRS= \ rdmsr \ ucodeadm # # commands that use dcgettext for localized time, LC_TIME # DCSUBDIRS= \ cal \ cfgadm \ diff \ ls \ pr \ ps \ tar \ w \ who \ whodo \ write # # commands that belong only to audit. # AUDITSUBDIRS= \ amt \ audit \ audit_warn \ auditconfig \ auditd \ auditrecord \ auditreduce \ auditset \ auditstat \ praudit all : TARGET = all install : TARGET = install clean : TARGET = clean clobber : TARGET = clobber _msg : TARGET = _msg _dc : TARGET = _dc .KEEP_STATE: SUBDIRS = $(COMMON_SUBDIRS) $($(MACH)_SUBDIRS) .PARALLEL: $(SUBDIRS) $(MSGSUBDIRS) $(AUDITSUBDIRS) all install clean clobber: $(FIRST_SUBDIRS) .WAIT $(SUBDIRS) \ $(AUDITSUBDIRS) # # Manifests cannot be checked in parallel, because we are using # the global repository that is in $(SRC)/cmd/svc/seed/global.db. # For this reason, to avoid .PARALLEL and .NO_PARALLEL conflicts, # we spawn off a sub-make to perform the non-parallel 'make check' # check: $(MAKE) -f Makefile.check check # # The .WAIT directive works around an apparent bug in parallel make. # Evidently make was getting the target _msg vs. _dc confused under # some level of parallelization, causing some of the _dc objects # not to be built. # _msg: $(MSGSUBDIRS) $($(MACH)_MSGSUBDIRS) .WAIT _dc _dc: $(DCSUBDIRS) # # Dependencies # fs.d: fstyp # Hammerhead: Removed ast: isaexec (isaexec removed for amd64-only build) # Hammerhead: print: lp dependency removed (printing removed in Phase A) fmt: mailx $(FIRST_SUBDIRS) $(SUBDIRS) $(AUDITSUBDIRS): FRC cd $@; pwd; $(MAKE) $(TARGET) FRC: