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