4027 remove CLOSED_BUILD
4028 remove CLOSED_IS_PRESENT
4029 remove tonic build bits
Reviewed by: Andy Stormont <andyjstormont@gmail.com>
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 # Copyright 2011 Nexenta Systems, Inc. All rights reserved.
23 # Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved.
24 # Copyright (c) 2012 by Delphix. All rights reserved.
25 # Copyright (c) 2012, Joyent, Inc. All rights reserved.
26 # Copyright (c) 2013 Gary Mills
27
28 include ../Makefile.master
29
30 # Note that libcurses installs commands along with its library.
31 # This is a minor bug which probably should be fixed.
32 # Note also that a few extra libraries are kept in cmd source.
33 #
34 # Certain libraries are linked with, hence depend on, other libraries.
35 #
36 # Although we have historically used .WAIT to express dependencies, it
37 # reduces the amount of parallelism and thus lengthens the time it
38 # takes to build the libraries. Thus, we now require that any new
39 # libraries explicitly call out their dependencies. Eventually, all
40 # the library dependencies will be called out explicitly. See
41 # "Library interdependencies" near the end of this file.
42 #
43 # Aside from explicit dependencies (and legacy .WAITs), all libraries
44 # are built in parallel.
45 #
46 .PARALLEL:
47
48 SUBDIRS= \
49 common .WAIT \
50 ../cmd/sgs/libconv \
51 ../cmd/sgs/libdl .WAIT
52
53 SUBDIRS += \
54 libc .WAIT \
55 ../cmd/sgs/libelf .WAIT \
56 c_synonyms \
57 libmd \
58 libmd5 \
59 librsm \
60 libmp .WAIT \
61 libnsl \
62 libsecdb .WAIT \
63 librpcsvc \
64 libsocket .WAIT \
65 libsctp \
66 libsip \
67 libcommputil \
68 libresolv \
69 libresolv2 .WAIT \
70 libw .WAIT \
71 libintl .WAIT \
72 ../cmd/sgs/librtld_db \
73 libaio \
74 libast \
75 libdll \
76 libcmd \
77 libshell \
78 libsum \
79 librt \
80 libadm \
81 libctf \
82 libdtrace \
83 libdtrace_jni \
84 libcurses \
85 libtermcap \
86 libgen \
87 libgss \
88 libpam \
89 libuuid \
90 libthread \
91 libpthread .WAIT \
92 libslp \
93 libbsdmalloc \
94 libdoor \
95 libdevinfo \
96 libdladm \
97 libdlpi \
98 libeti \
99 libcrypt \
100 libdns_sd \
101 libefi \
102 libfstyp \
103 libwanboot \
104 libwanbootutil \
105 libcryptoutil \
106 libinetutil \
107 libipadm \
108 libipmp \
109 libiscsit \
110 libkmf \
111 libkstat \
112 libkvm \
113 liblm \
114 libmalloc \
115 libmapmalloc \
116 libmtmalloc \
117 libnls \
118 libnwam \
119 libsmbios \
120 libtecla \
121 libumem \
122 libnvpair .WAIT \
123 libexacct \
124 libsasl \
125 libldap5 \
126 libsldap .WAIT \
127 libbsm \
128 libsys \
129 libsysevent \
130 libnisdb \
131 libpool \
132 libpp \
133 libproc \
134 libproject \
135 libsendfile \
136 nametoaddr \
137 ncad_addr \
138 hbaapi \
139 smhba \
140 sun_fc \
141 sun_sas \
142 gss_mechs/mech_krb5 .WAIT \
143 libkrb5 .WAIT \
144 krb5 .WAIT \
145 libsmbfs \
146 libfcoe \
147 libsrpt \
148 libstmf \
149 libstmfproxy \
150 libnsctl \
151 libunistat \
152 libdscfg \
153 librdc \
154 libinstzones \
155 libpkg \
156 libpcidb
157
158 SUBDIRS += \
159 passwdutil \
160 pam_modules \
161 crypt_modules \
162 libadt_jni \
163 abi \
164 auditd_plugins \
165 libvolmgt \
166 libdevice \
167 libdevid \
168 libdhcpsvc \
169 libc_db \
170 libndmp \
171 libsec \
172 libtnfprobe \
173 libtnf \
174 libtnfctl \
175 libdhcpagent \
176 libdhcpdu \
177 libdhcputil \
178 libxnet \
179 libipsecutil \
180 nsswitch \
181 print \
182 libuutil \
183 libscf \
184 libinetsvc \
185 librestart \
186 libsched \
187 libelfsign \
188 pkcs11 .WAIT \
189 libpctx .WAIT \
190 libcpc \
191 getloginx \
192 watchmalloc \
193 extendedFILE \
194 madv \
195 mpss \
196 libdisasm \
197 libwrap \
198 libxcurses \
199 libxcurses2 \
200 libbrand .WAIT \
201 libzonecfg \
202 libzoneinfo \
203 libzonestat \
204 libtsnet \
205 libtsol \
206 gss_mechs/mech_spnego \
207 gss_mechs/mech_dummy \
208 gss_mechs/mech_dh \
209 rpcsec_gss \
210 libraidcfg .WAIT \
211 librcm .WAIT \
212 libcfgadm .WAIT \
213 libpicl .WAIT \
214 libpicltree .WAIT \
215 raidcfg_plugins \
216 cfgadm_plugins \
217 libmail \
218 lvm \
219 libsmedia \
220 libipp \
221 libdiskmgt \
222 liblgrp \
223 libfsmgt \
224 fm \
225 libavl \
226 libcmdutils \
227 libcontract \
228 ../cmd/sendmail/libmilter \
229 sasl_plugins \
230 udapl \
231 libzpool \
232 libzfs_core \
233 libzfs \
234 libbe \
235 pylibbe \
236 libzfs_jni \
237 pyzfs \
238 pysolaris \
239 libmapid \
240 brand \
241 policykit \
242 hal \
243 libshare \
244 libsqlite \
245 libidmap \
246 libadutils \
247 libipmi \
248 libexacct/demo \
249 libvrrpadm \
250 libvscan \
251 libgrubmgmt \
252 smbsrv \
253 libilb \
254 scsi \
255 libima \
256 libsun_ima \
257 mpapi \
258 librstp \
259 libreparse \
260 libhotplug \
261 libfruutils .WAIT \
262 libfru \
263 $($(MACH)_SUBDIRS)
264
265 i386_SUBDIRS= \
266 libntfs \
267 libparted \
268 libfdisk \
269 libsaveargs
270
271 sparc_SUBDIRS= .WAIT \
272 efcode \
273 libds \
274 libdscp \
275 libprtdiag .WAIT \
276 libprtdiag_psr \
277 libpri \
278 librsc \
279 storage \
280 libpcp \
281 libtsalarm \
282 libv12n
283
284 FM_sparc_DEPLIBS= libpri
285
286 fm: \
287 libexacct \
288 libipmi \
289 libzfs \
290 scsi \
291 $(FM_$(MACH)_DEPLIBS)
292
293 #
294 # Create a special version of $(SUBDIRS) with no .WAIT's, for use with the
295 # clean and clobber targets (for more information, see those targets, below).
296 #
297 NOWAIT_SUBDIRS= $(SUBDIRS:.WAIT=)
298
299 DCSUBDIRS = \
300 lvm
301
302 MSGSUBDIRS= \
303 abi \
304 auditd_plugins \
305 brand \
306 cfgadm_plugins \
307 gss_mechs/mech_dh \
308 gss_mechs/mech_krb5 \
309 krb5 \
310 libast \
311 libbsm \
312 libc \
313 libcfgadm \
314 libcmd \
315 libcontract \
316 libcurses \
317 libdhcpsvc \
318 libdhcputil \
319 libipsecutil \
320 libdiskmgt \
321 libdladm \
322 libdll \
323 libgrubmgmt \
324 libgss \
325 libidmap \
326 libipmp \
327 libilb \
328 libinetutil \
329 libinstzones \
330 libipadm \
331 libnsl \
332 libnwam \
333 libpam \
334 libpicl \
335 libpool \
336 libpkg \
337 libpp \
338 libscf \
339 libsasl \
340 libldap5 \
341 libsecdb \
342 libshare \
343 libshell \
344 libsldap \
345 libslp \
346 libsmbfs \
347 libsmedia \
348 libsum \
349 libtsol \
350 libuutil \
351 libvrrpadm \
352 libvscan \
353 libwanboot \
354 libwanbootutil \
355 libzfs \
356 libzonecfg \
357 lvm \
358 madv \
359 mpss \
360 pam_modules \
361 pyzfs \
362 pysolaris \
363 rpcsec_gss \
364 libreparse
365 MSGSUBDIRS += \
366 $($(MACH)_MSGSUBDIRS)
367
368 sparc_MSGSUBDIRS= \
369 libprtdiag \
370 libprtdiag_psr
371
372 i386_MSGSUBDIRS= libfdisk
373
374 HDRSUBDIRS= \
375 auditd_plugins \
376 libast \
377 libbrand \
378 libbsm \
379 libc \
380 libcmd \
381 libcmdutils \
382 libcommputil \
383 libcontract \
384 libcpc \
385 libctf \
386 libcurses \
387 libtermcap \
388 libcryptoutil \
389 libdevice \
390 libdevid \
391 libdevinfo \
392 libdiskmgt \
393 libdladm \
394 libdll \
395 libdlpi \
396 libdhcpagent \
397 libdhcpsvc \
398 libdhcputil \
399 libdisasm \
400 libdns_sd \
401 libdscfg \
402 libdtrace \
403 libdtrace_jni \
404 libelfsign \
405 libeti \
406 libfru \
407 libfstyp \
408 libgen \
409 libipadm \
410 libipsecutil \
411 libinetsvc \
412 libinetutil \
413 libinstzones \
414 libipmi \
415 libipmp \
416 libipp \
417 libiscsit \
418 libkstat \
419 libkvm \
420 libmail \
421 libmd \
422 libmtmalloc \
423 libndmp \
424 libnvpair \
425 libnsctl \
426 libnsl \
427 libnwam \
428 libpam \
429 libpcidb \
430 libpctx \
431 libpicl \
432 libpicltree \
433 libpool \
434 libpp \
435 libproc \
436 libraidcfg \
437 librcm \
438 librdc \
439 libscf \
440 libsip \
441 libsmbios \
442 librestart \
443 librpcsvc \
444 librsm \
445 librstp \
446 libsasl \
447 libsec \
448 libshell \
449 libslp \
450 libsmedia \
451 libsocket \
452 libsqlite \
453 libfcoe \
454 libsrpt \
455 libstmf \
456 libstmfproxy \
457 libsum \
458 libsysevent \
459 libtecla \
460 libtnf \
461 libtnfctl \
462 libtnfprobe \
463 libtsnet \
464 libtsol \
465 libvrrpadm \
466 libvolmgt \
467 libumem \
468 libunistat \
469 libuutil \
470 libwanboot \
471 libwanbootutil \
472 libwrap \
473 libxcurses2 \
474 libzfs \
475 libzfs_core \
476 libzfs_jni \
477 libzoneinfo \
478 libzonestat \
479 hal \
480 policykit \
481 lvm \
482 pkcs11 \
483 passwdutil \
484 ../cmd/sendmail/libmilter \
485 fm \
486 udapl \
487 libmapid \
488 libkrb5 \
489 libsmbfs \
490 libshare \
491 libidmap \
492 libvscan \
493 libgrubmgmt \
494 smbsrv \
495 libilb \
496 scsi \
497 hbaapi \
498 smhba \
499 libima \
500 libsun_ima \
501 mpapi \
502 libreparse \
503 $($(MACH)_HDRSUBDIRS)
504
505 i386_HDRSUBDIRS= \
506 libparted \
507 libfdisk \
508 libsaveargs
509
510 sparc_HDRSUBDIRS= \
511 libds \
512 libdscp \
513 libpri \
514 libv12n \
515 storage
516
517 all := TARGET= all
518 check := TARGET= check
519 clean := TARGET= clean
520 clobber := TARGET= clobber
521 install := TARGET= install
522 install_h := TARGET= install_h
523 lint := TARGET= lint
524 _dc := TARGET= _dc
525 _msg := TARGET= _msg
526
527 .KEEP_STATE:
528
529 #
530 # For the all and install targets, we clearly must respect library
531 # dependencies so that the libraries link correctly. However, for
532 # the remaining targets (check, clean, clobber, install_h, lint, _dc
533 # and _msg), libraries do not have any dependencies on one another
534 # and thus respecting dependencies just slows down the build.
535 # As such, for these rules, we use pattern replacement to explicitly
536 # avoid triggering the dependency information. Note that for clean,
537 # clobber and lint, we must use $(NOWAIT_SUBDIRS) rather than
538 # $(SUBDIRS), to prevent `.WAIT' from expanding to `.WAIT-nodepend'.
539 #
540
541 all: $(SUBDIRS)
542
543 install: $(SUBDIRS) .WAIT install_extra
544
545 # extra libraries kept in other source areas
546 install_extra:
547 @cd ../cmd/sgs; pwd; $(MAKE) install_lib
548 @pwd
549
550 clean clobber lint: $(NOWAIT_SUBDIRS:%=%-nodepend)
551
552 install_h check: $(HDRSUBDIRS:%=%-nodepend)
553
554 _msg: $(MSGSUBDIRS:%=%-nodepend) .WAIT _dc
555
556 _dc: $(DCSUBDIRS:%=%-nodepend)
557
558 #
559 # Library interdependencies are called out explicitly here
560 #
561 auditd_plugins: libbsm libnsl libsecdb
562 gss_mechs/mech_krb5: libgss libnsl libsocket libresolv pkcs11
563 libadt_jni: libbsm
564 libast: libsocket
565 libadutils: libldap5 libresolv libsocket libnsl
566 nsswitch: libadutils libidmap
567 libbe: libzfs
568 libbsm: libtsol
569 libcmd: libsum libast libsocket libnsl
570 libcmdutils: libavl
571 libcontract: libnvpair
572 libdevid: libdevinfo
573 libdevinfo: libnvpair libsec
574 libdhcpagent: libsocket libdhcputil libuuid libdlpi libcontract
575 libdhcpsvc: libinetutil
576 libdhcputil: libnsl libgen libinetutil libdlpi
577 libdladm: libdevinfo libinetutil libsocket libscf librcm libnvpair \
578 libexacct libnsl libkstat libcurses
579 libdll: libast
580 libdlpi: libinetutil libdladm
581 libds: libsysevent
582 libdscfg: libnsctl libunistat libsocket libnsl
583 libdtrace: libproc libgen libctf
584 libdtrace_jni: libuutil libdtrace
585 libefi: libuuid
586 libfstyp: libnvpair
587 libelfsign: libcryptoutil libkmf
588 libidmap: libadutils libldap5 libavl libsldap libuutil
589 libipadm: libnsl libinetutil libsocket libdlpi libnvpair libdhcpagent \
590 libdladm libsecdb
591 libiscsit: libc libnvpair libstmf libuuid libnsl
592 libkmf: libcryptoutil pkcs11
593 libnsl: libmd5
594 libmapid: libresolv
595 librdc: libsocket libnsl libnsctl libunistat libdscfg
596 libuuid: libdlpi
597 libinetutil: libsocket
598 libipsecutil: libtecla libsocket
599 libinstzones: libzonecfg libcontract
600 libpkg: libwanboot libscf libadm
601 libnwam: libscf
602 libsecdb: libnsl
603 libsasl: libgss libsocket pkcs11 libmd
604 sasl_plugins: pkcs11 libgss libsocket libsasl
605 libsctp: libsocket
606 libshell: libast libcmd libdll libsocket libsecdb
607 libsip: libmd5
608 libsmbfs: libcmdutils libsocket libnsl libkrb5
609 libsocket: libnsl
610 libstmfproxy: libstmf libsocket libnsl libpthread
611 libsum: libast
612 libsysevent: libsecdb
613 libldap5: libsasl libsocket libnsl libmd
614 libsldap: libldap5 libtsol libnsl libc libscf libresolv
615 libpool: libnvpair libexacct
616 libpp: libast
617 libzonecfg: libc libsocket libnsl libuuid libnvpair libsysevent libsec \
618 libbrand libpool libscf
619 libproc: ../cmd/sgs/librtld_db ../cmd/sgs/libelf libctf libsaveargs
620 libproject: libpool libproc libsecdb
621 libtermcap: libcurses
622 libtsnet: libnsl libtsol libsecdb
623 libwrap: libnsl libsocket
624 libwanboot: libnvpair libresolv libnsl libsocket libdevinfo libinetutil \
625 libdhcputil
626 libwanbootutil: libnsl
627 pam_modules: libproject passwdutil smbsrv
628 libscf: libuutil libmd libgen libsmbios libnsl
629 libinetsvc: libscf
630 librestart: libuutil libscf
631 libsaveargs: libdisasm
632 ../cmd/sgs/libdl: ../cmd/sgs/libconv
633 ../cmd/sgs/libelf: ../cmd/sgs/libconv
634 pkcs11: libcryptoutil
635 print: libldap5
636 udapl/udapl_tavor: udapl/libdat
637 libzfs: libdevid libgen libnvpair libuutil \
638 libadm libavl libefi libidmap libmd libzfs_core
639 libzfs_core: libnvpair
640 libzfs_jni: libdiskmgt libnvpair libzfs
641 libzpool: libavl libumem libnvpair libcmdutils
642 libsec: libavl libidmap
643 brand: libc libsocket
644 libshare: libscf libzfs libuuid libfsmgt libsecdb libumem libsmbfs
645 libexacct/demo: libexacct libproject libsocket libnsl
646 libtsalarm: libpcp
647 smbsrv: libsocket libnsl libmd libxnet libpthread librt \
648 libshare libidmap pkcs11 libsqlite libcryptoutil \
649 libreparse libcmdutils
650 libv12n: libds libuuid
651 libvrrpadm: libsocket libdladm libscf
652 libvscan: libscf
653 libfru: libfruutils
654 scsi: libnvpair libfru
655 mpapi: libpthread libdevinfo libsysevent libnvpair
656 sun_fc: libdevinfo libsysevent libnvpair
657 libsun_ima: libdevinfo libsysevent libnsl
658 sun_sas: libdevinfo libsysevent libnvpair libkstat libdevid
659 libgrubmgmt: libdevinfo libzfs libfstyp
660 pylibbe: libbe libzfs
661 pyzfs: libnvpair libzfs
662 pysolaris: libsec libidmap
663 libreparse: libnvpair
664 libhotplug: libnvpair
665 cfgadm_plugins: libhotplug
666 libilb: libsocket
667 $(INTEL_BUILD)libdiskmgt:libfdisk
668
669 #
670 # The reason this rule checks for the existence of the
671 # Makefile is that some of the directories do not exist
672 # in certain situations (e.g., exportable source builds,
673 # OpenSolaris).
674 #
675 $(SUBDIRS): FRC
676 @if [ -f $@/Makefile ]; then \
677 cd $@; pwd; $(MAKE) $(TARGET); \
678 else \
679 true; \
680 fi
681
682 $(SUBDIRS:%=%-nodepend):
683 @if [ -f $(@:%-nodepend=%)/Makefile ]; then \
684 cd $(@:%-nodepend=%); pwd; $(MAKE) $(TARGET); \
685 else \
686 true; \
687 fi
688
689 FRC:
--- EOF ---