xref: /titanic_44/usr/src/cmd/Makefile (revision 2c9a247fb01631b3eb3b85a1127e72f0b60ae108)
1# Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
2
3include ../Makefile.master
4
5#
6#	Note that the commands 'agents', 'lp', 'perl', and 'man' are first in
7#	the list, violating alphabetical order.  This is because they are very
8#	long-running and should be given the most wall-clock time for a
9#	parallel build.
10#
11#	Commands in the FIRST_SUBDIRS list are built before starting the build
12#	of other commands.  Currently this includes only 'isaexec' and
13#	'platexec'.  This is necessary because $(ROOT)/usr/lib/isaexec or
14#	$(ROOT)/usr/lib/platexec must exist when some other commands are built
15#	because their 'make install' creates a hard link to one of them.
16#
17#	Commands are listed one per line so that TeamWare can auto-merge most
18#	changes.
19#
20
21FIRST_SUBDIRS=		\
22	isaexec		\
23	platexec
24
25COMMON_SUBDIRS=		\
26	agents		\
27	availdevs	\
28	lp		\
29	perl		\
30	man		\
31	Adm		\
32	abi		\
33	adbgen		\
34	acct		\
35	acctadm		\
36	arch		\
37	asa		\
38	ast		\
39	audio		\
40	auths		\
41	autopush	\
42	avs		\
43	awk		\
44	awk_xpg4	\
45	backup		\
46	banner		\
47	bart		\
48	basename	\
49	bc		\
50	bdiff		\
51	bfs		\
52	bnu		\
53	boot		\
54	busstat		\
55	cal		\
56	calendar	\
57	captoinfo	\
58	cat		\
59	cdrw		\
60	cfgadm		\
61	checkeq		\
62	checknr		\
63	chgrp		\
64	chmod		\
65	chown		\
66	chroot		\
67	clear		\
68	clinfo		\
69	cmd-crypto	\
70	cmd-inet	\
71	col		\
72	compress	\
73	consadm		\
74	coreadm		\
75	cpio		\
76	cpc		\
77	cron		\
78	crypt		\
79	csh		\
80	csplit		\
81	ctrun		\
82	ctstat		\
83	ctwatch		\
84	datadm		\
85	date		\
86	dc		\
87	dd		\
88	deroff		\
89	des		\
90	devfsadm	\
91	syseventd	\
92	devctl		\
93	devinfo		\
94	devmgmt		\
95	devprop		\
96	dfs.cmds	\
97	diff		\
98	diff3		\
99	diffmk		\
100	dircmp		\
101	dirname		\
102	dis		\
103	diskmgtd	\
104	dispadmin	\
105	dladm		\
106	dlstat		\
107	dmesg		\
108	dodatadm	\
109	dtrace		\
110	du		\
111	dumpadm		\
112	dumpcs		\
113	echo		\
114	ed		\
115	eeprom		\
116	egrep		\
117	eject		\
118	emul64ioctl	\
119	enhance		\
120	env		\
121	eqn		\
122	expand		\
123	expr		\
124	exstr		\
125	factor		\
126	false		\
127	fcinfo		\
128	fcoesvc		\
129	fdetach		\
130	fdformat	\
131	fdisk		\
132	filesync	\
133	fgrep		\
134	file		\
135	filebench	\
136	find		\
137	flowadm		\
138	flowstat	\
139	fm		\
140	fmli		\
141	fmt		\
142	fmthard		\
143	fmtmsg		\
144	fold		\
145	format		\
146	fs.d		\
147	fstyp		\
148	fuser		\
149	fwflash		\
150	gcore		\
151	gencat		\
152	geniconvtbl	\
153	genmsg		\
154	getconf		\
155	getdevpolicy	\
156	getent		\
157	getfacl		\
158	getmajor	\
159	getopt		\
160	gettext		\
161	gettxt		\
162	graph		\
163	grep		\
164	grep_xpg4	\
165	groups		\
166	grpck		\
167	gss		\
168	hal		\
169	halt		\
170	head		\
171	hostid		\
172	hostname	\
173	hotplug		\
174	hotplugd	\
175	hwdata		\
176	ibd_upgrade	\
177	id		\
178	idmap		\
179	infocmp		\
180	init		\
181	initpkg		\
182	install.d	\
183	intrd		\
184	intrstat	\
185	ipcrm		\
186	ipcs		\
187	ipf		\
188	isainfo		\
189	isalist		\
190	itutools	\
191	iscsiadm	\
192	iscsid		\
193	iscsitsvc	\
194	isns		\
195	itadm		\
196	java		\
197	kbd		\
198	keyserv		\
199	killall		\
200	krb5		\
201	ksh		\
202	kstat		\
203	last		\
204	lastcomm	\
205	latencytop	\
206	ldap		\
207	ldapcachemgr	\
208	lgrpinfo	\
209	line		\
210	link		\
211	dlmgmtd		\
212	listen		\
213	loadkeys	\
214	locale		\
215	lockstat	\
216	locator		\
217	lofiadm		\
218	logadm		\
219	logger		\
220	login		\
221	logins		\
222	look		\
223	ls		\
224	luxadm		\
225	lvm		\
226	mach		\
227	machid		\
228	mail		\
229	mailx		\
230	makekey		\
231	mdb		\
232	mesg		\
233	mkdir		\
234	mkfifo		\
235	mkfile		\
236	mkmsgs		\
237	mknod		\
238	mkpwdict	\
239	mktemp		\
240	modload		\
241	more		\
242	mpathadm	\
243	msgfmt		\
244	msgid		\
245	mt		\
246	mv		\
247	mvdir		\
248	ndmpadm		\
249	ndmpd		\
250	ndmpstat	\
251	netadm		\
252	netfiles	\
253	newform		\
254	newgrp		\
255	news		\
256	newtask		\
257	nice		\
258	nl		\
259	nlsadmin	\
260	nohup		\
261	nsadmin		\
262	nscd		\
263	oamuser		\
264	oawk		\
265	pack		\
266	pagesize	\
267	passmgmt	\
268	passwd		\
269	pathchk		\
270	pbind		\
271	pcidr		\
272	pcitool		\
273	pfexec		\
274	pgrep		\
275	picl		\
276	plimit		\
277	policykit	\
278	pools		\
279	power		\
280	powertop	\
281	ppgsz		\
282	pg		\
283	plockstat	\
284	pr		\
285	prctl		\
286	print		\
287	priocntl	\
288	profiles	\
289	projadd		\
290	projects	\
291	prstat		\
292	prtconf		\
293	prtdiag		\
294	prtvtoc		\
295	ps		\
296	psradm		\
297	psrinfo		\
298	psrset		\
299	ptools		\
300	pwck		\
301	pwconv		\
302	pwd		\
303	pyzfs		\
304	raidctl		\
305	ramdiskadm	\
306	rcap		\
307	rcm_daemon	\
308	rctladm		\
309	refer		\
310	regcmp		\
311	renice		\
312	rexd		\
313	rm		\
314	rmdir		\
315	rmformat	\
316	rmmount		\
317	rmt		\
318	rmvolmgr	\
319	roles		\
320	rpcbind		\
321	rpcgen		\
322	rpcinfo		\
323	rpcsvc		\
324	runat		\
325	sa		\
326	saf		\
327	sasinfo		\
328	savecore	\
329	sbdadm		\
330	script		\
331	scsi		\
332	sdiff		\
333	sdpadm		\
334	sendmail	\
335	setfacl		\
336	setmnt		\
337	setpgrp		\
338	setuname	\
339	sgs		\
340	sh		\
341	shcomp		\
342	smbios		\
343	smbsrv		\
344	smserverd	\
345	soelim		\
346	sort		\
347	spell		\
348	spline		\
349	split		\
350	sqlite		\
351	srchtxt		\
352	srptadm		\
353	srptsvc		\
354	ssh		\
355	stat		\
356	stmfadm		\
357	stmfproxy	\
358	stmfsvc		\
359	stmsboot	\
360	streams		\
361	strings		\
362	su		\
363	sulogin		\
364	sunpc		\
365	svc		\
366	svr4pkg		\
367	swap		\
368	sync		\
369	sysdef		\
370	syseventadm	\
371	syslogd		\
372	tabs		\
373	tar		\
374	tbl		\
375	tcopy		\
376	tcpd		\
377	terminfo	\
378	th_tools	\
379	tic		\
380	time		\
381	tip		\
382	tnf		\
383	touch		\
384	tplot		\
385	tput		\
386	trapstat	\
387	troff		\
388	true		\
389	truss		\
390	tsol		\
391	tty		\
392	ttymon		\
393	tzreload	\
394	uadmin		\
395	ul		\
396	uname		\
397	units		\
398	unlink		\
399	unpack		\
400	users		\
401	utmp_update	\
402	utmpd		\
403	valtools	\
404	vgrind		\
405	vi		\
406	volcheck	\
407	volrmmount	\
408	vrrpadm		\
409	vscan		\
410	vt		\
411	w		\
412	wall		\
413	wbem		\
414	which		\
415	who		\
416	whodo		\
417	wracct		\
418	write		\
419	wusbadm		\
420	xargs		\
421	xstr		\
422	yes		\
423	ypcmd		\
424	yppasswd	\
425	zdb		\
426	zdump		\
427	zfs		\
428	zic		\
429	zinject		\
430	zlogin		\
431	zoneadm		\
432	zoneadmd	\
433	zonecfg		\
434	zonename	\
435	zpool		\
436	zlook		\
437	zstreamdump	\
438	ztest
439
440$(CLOSED_BUILD)COMMON_SUBDIRS += \
441	$(CLOSED)/cmd/iconv	\
442	$(CLOSED)/cmd/ksh	\
443	$(CLOSED)/cmd/llc2	\
444	$(CLOSED)/cmd/localedef	\
445	$(CLOSED)/cmd/more_xpg4	\
446	$(CLOSED)/cmd/mtst	\
447	$(CLOSED)/cmd/od	\
448	$(CLOSED)/cmd/patch	\
449	$(CLOSED)/cmd/pax	\
450	$(CLOSED)/cmd/printf	\
451	$(CLOSED)/cmd/sed	\
452	$(CLOSED)/cmd/sed_xpg4	\
453ODE	$(CLOSED)/cmd/tail	\
454	$(CLOSED)/cmd/tr_xpg4
455
456i386_SUBDIRS=		\
457	acpihpd		\
458	addbadsec	\
459	biosdev		\
460	diskscan	\
461	lms		\
462	ntfsprogs	\
463	parted		\
464	rtc		\
465	ucodeadm	\
466	xvm
467
468sparc_SUBDIRS=		\
469	cvcd		\
470	dcs		\
471	device_remap	\
472	drd		\
473	fps		\
474	fruadm		\
475	ldmad		\
476	oplhpd		\
477	prtdscp		\
478	prtfru		\
479	scadm		\
480	sckmd		\
481	sf880drd	\
482	virtinfo	\
483	vntsd
484
485#
486# Commands that are messaged.  Note that 'lp' and 'man' come first
487# (see previous comment about 'lp' and 'man').
488#
489MSGSUBDIRS=		\
490	lp		\
491	man		\
492	abi		\
493	acctadm		\
494	allocate	\
495	asa		\
496	audio		\
497	audit		\
498	auditd		\
499	auditrecord	\
500	auths		\
501	autopush	\
502	avs		\
503	awk		\
504	awk_xpg4	\
505	backup		\
506	banner		\
507	bart		\
508	basename	\
509	bnu		\
510	bsmconv		\
511	bsmunconv	\
512	busstat		\
513	cal		\
514	cat		\
515	cdrw		\
516	cfgadm		\
517	checkeq		\
518	checknr		\
519	chgrp		\
520	chmod		\
521	chown		\
522	cmd-crypto	\
523	cmd-inet	\
524	col		\
525	compress	\
526	consadm		\
527	coreadm		\
528	cpio		\
529	cpc		\
530	cron		\
531	csh		\
532	csplit		\
533	ctrun		\
534	ctstat		\
535	ctwatch		\
536	datadm		\
537	date		\
538	dc		\
539	dcs		\
540	dd		\
541	deroff		\
542	devfsadm	\
543	dfs.cmds	\
544	diff		\
545	diffmk		\
546	dladm		\
547	dlstat		\
548	du		\
549	dumpcs		\
550	ed		\
551	eject		\
552	env		\
553	eqn		\
554	expand		\
555	expr		\
556	fcinfo		\
557	fgrep		\
558	file		\
559	filesync	\
560	find		\
561	flowadm		\
562	flowstat	\
563	fm		\
564	fold		\
565	fs.d		\
566	fwflash		\
567	geniconvtbl	\
568	genmsg		\
569	getconf		\
570	getent		\
571	gettext		\
572	gettxt		\
573	grep		\
574	grep_xpg4	\
575	grpck		\
576	gss		\
577	halt		\
578	head		\
579	hostname	\
580	hotplug		\
581	id		\
582	idmap		\
583	isaexec		\
584	iscsiadm	\
585	iscsid		\
586	isns		\
587	itadm		\
588	kbd		\
589	krb5		\
590	ksh		\
591	kstat		\
592	last		\
593	ldap		\
594	ldapcachemgr	\
595	lgrpinfo	\
596	locale		\
597	lofiadm		\
598	logadm		\
599	logger		\
600	logins		\
601	ls		\
602	luxadm		\
603	lvm		\
604	mailx		\
605	mesg		\
606	mkdir		\
607	mkpwdict	\
608	mktemp		\
609	more		\
610	mpathadm	\
611	msgfmt		\
612	mv		\
613	ndmpadm		\
614	ndmpstat	\
615	newgrp		\
616	newtask		\
617	nice		\
618	nohup		\
619	oawk		\
620	pack		\
621	passwd		\
622	passmgmt	\
623	pathchk		\
624	pfexec		\
625	pg		\
626	pgrep		\
627	picl            \
628	pools		\
629	power		\
630	pr		\
631	praudit		\
632	print		\
633	profiles	\
634	projadd		\
635	projects	\
636	prstat		\
637	prtdiag		\
638	ps		\
639	psrinfo		\
640	ptools		\
641	pwconv		\
642	pwd		\
643	pyzfs		\
644	raidctl		\
645	ramdiskadm	\
646	rcap		\
647	rcm_daemon	\
648	refer		\
649	regcmp		\
650	renice		\
651	roles		\
652	rm		\
653	rmdir		\
654	rmformat	\
655	rmmount		\
656	rmvolmgr	\
657	sasinfo		\
658	sbdadm		\
659	scadm		\
660	script		\
661	scsi		\
662	sdiff		\
663	sdpadm		\
664	sgs		\
665	sh		\
666	shcomp		\
667	smbsrv		\
668	sort		\
669	split		\
670	srptadm		\
671	ssh		\
672	stat		\
673	stmfadm		\
674	stmsboot	\
675	strings		\
676	su		\
677	svc		\
678	svr4pkg		\
679	swap		\
680	syseventadm	\
681	syseventd	\
682	tabs		\
683	tar		\
684	tbl		\
685	time		\
686	tnf		\
687	touch		\
688	tput		\
689	troff		\
690	tsol		\
691	tty		\
692	ttymon		\
693	tzreload	\
694	ul		\
695	uname		\
696	units		\
697	unlink		\
698	unpack		\
699	valtools	\
700	vgrind		\
701	vi		\
702	volcheck	\
703	volrmmount	\
704	vrrpadm		\
705	vscan		\
706	w		\
707	wbem		\
708	who		\
709	whodo		\
710	wracct		\
711	write		\
712	wusbadm		\
713	xargs		\
714	yppasswd	\
715	zdump		\
716	zfs		\
717	zic		\
718	zlogin		\
719	zoneadm		\
720	zoneadmd	\
721	zonecfg		\
722	zonename	\
723	zpool
724
725$(CLOSED_BUILD)MSGSUBDIRS += \
726	$(CLOSED)/cmd/iconv	\
727	$(CLOSED)/cmd/ksh	\
728	$(CLOSED)/cmd/llc2	\
729	$(CLOSED)/cmd/localedef	\
730	$(CLOSED)/cmd/more_xpg4	\
731	$(CLOSED)/cmd/od	\
732	$(CLOSED)/cmd/patch	\
733	$(CLOSED)/cmd/pax	\
734	$(CLOSED)/cmd/printf	\
735	$(CLOSED)/cmd/sed	\
736	$(CLOSED)/cmd/sed_xpg4	\
737	$(CLOSED)/cmd/tail	\
738	$(CLOSED)/cmd/tr_xpg4
739
740sparc_MSGSUBDIRS=	\
741	fruadm		\
742	prtdscp		\
743	prtfru		\
744	virtinfo	\
745	vntsd
746
747i386_MSGSUBDIRS=	\
748	ucodeadm
749
750#
751# commands that use dcgettext for localized time, LC_TIME
752#
753DCSUBDIRS=		\
754	cal		\
755	cfgadm		\
756	diff		\
757	ls		\
758	pr		\
759	ps		\
760	tar		\
761	w		\
762	who		\
763	whodo		\
764	write
765
766$(CLOSED_BUILD)DCSUBDIRS += \
767	$(CLOSED)/cmd/pax
768
769#
770# commands that belong only to audit and device allocation
771#
772AUDITSUBDIRS=		\
773	allocate	\
774	amt		\
775	audit		\
776	audit_warn	\
777	auditconfig	\
778	auditd		\
779	auditrecord	\
780	auditreduce	\
781	auditstat	\
782	praudit		\
783	bsmconv		\
784	bsmunconv
785
786#
787# commands not owned by the systems group
788#
789BWOSDIRS=
790
791
792all :=		TARGET = all
793install :=	TARGET = install
794clean :=	TARGET = clean
795clobber :=	TARGET = clobber
796lint :=		TARGET = lint
797_msg :=		TARGET = _msg
798_dc :=		TARGET = _dc
799
800.KEEP_STATE:
801
802SUBDIRS = $(COMMON_SUBDIRS) $($(MACH)_SUBDIRS)
803
804.PARALLEL:	$(BWOSDIRS) $(SUBDIRS) $(MSGSUBDIRS) $(AUDITSUBDIRS)
805
806all install clean clobber lint: $(FIRST_SUBDIRS) .WAIT $(SUBDIRS) \
807	$(AUDITSUBDIRS)
808
809#
810# Manifests cannot be checked in parallel, because we are using
811# the global repository that is in $(SRC)/cmd/svc/seed/global.db.
812# For this reason, to avoid .PARALLEL and .NO_PARALLEL conflicts,
813# we spawn off a sub-make to perform the non-parallel 'make check'
814#
815check:
816	$(MAKE) -f Makefile.check check
817
818#
819# The .WAIT directive works around an apparent bug in parallel make.
820# Evidently make was getting the target _msg vs. _dc confused under
821# some level of parallelization, causing some of the _dc objects
822# not to be built.
823#
824_msg: $(MSGSUBDIRS) $($(MACH)_MSGSUBDIRS) .WAIT _dc
825
826_dc: $(DCSUBDIRS)
827
828#
829# Dependencies
830#
831fs.d: fstyp
832ksh:	shcomp isaexec
833print:	lp
834
835$(FIRST_SUBDIRS) $(BWOSDIRS) $(SUBDIRS) $(AUDITSUBDIRS): FRC
836	@if [ -f $@/Makefile  ]; then \
837		cd $@; pwd; $(MAKE) $(TARGET); \
838	else \
839		true; \
840	fi
841
842FRC:
843