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