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