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