]>
Commit | Line | Data |
---|---|---|
0269750c | 1 | # Copyright (C) 1994-2001,2003,2004,2007,2008,2011,2012 |
e057a1b5 | 2 | # Free Software Foundation, Inc. |
28f540f4 RM |
3 | # This file is part of the GNU C Library. |
4 | ||
5 | # The GNU C Library is free software; you can redistribute it and/or | |
41bdb6e2 AJ |
6 | # modify it under the terms of the GNU Lesser General Public |
7 | # License as published by the Free Software Foundation; either | |
8 | # version 2.1 of the License, or (at your option) any later version. | |
28f540f4 RM |
9 | |
10 | # The GNU C Library is distributed in the hope that it will be useful, | |
11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
41bdb6e2 | 13 | # Lesser General Public License for more details. |
28f540f4 | 14 | |
41bdb6e2 | 15 | # You should have received a copy of the GNU Lesser General Public |
59ba27a6 PE |
16 | # License along with the GNU C Library; if not, see |
17 | # <http://www.gnu.org/licenses/>. | |
28f540f4 RM |
18 | |
19 | # | |
20 | # Sub-makefile for resolv portion of the library. | |
21 | # | |
22 | subdir := resolv | |
23 | ||
c6d80202 RM |
24 | headers := resolv.h \ |
25 | netdb.h bits/netdb.h \ | |
26 | arpa/nameser.h arpa/nameser_compat.h \ | |
6500dff6 | 27 | sys/bitypes.h |
28f540f4 | 28 | |
b43b13ac | 29 | routines := herror inet_addr inet_ntop inet_pton nsap_addr res_init \ |
270d9d47 | 30 | res_hconf res_libc res-state |
282d8743 | 31 | |
37f02b1d | 32 | tests = tst-aton tst-leaks tst-inet_ntop |
2ed2dc18 | 33 | xtests = tst-leaks2 |
b062f051 | 34 | |
2ed2dc18 | 35 | generate := mtrace-tst-leaks tst-leaks.mtrace tst-leaks2.mtrace |
0696c2c0 | 36 | |
6ca96fe2 UD |
37 | include ../Makeconfig |
38 | ||
e10546cb AJ |
39 | extra-libs := libresolv libnss_dns |
40 | ifeq ($(have-thread-library),yes) | |
41 | extra-libs += libanl | |
3897dbb6 | 42 | routines += gai_sigqueue |
e10546cb | 43 | endif |
f0f1bf85 | 44 | extra-libs-others = $(extra-libs) |
845dcb57 | 45 | libresolv-routines := gethnamaddr res_comp res_debug \ |
569c558c | 46 | res_data res_mkquery res_query res_send \ |
b43b13ac UD |
47 | inet_net_ntop inet_net_pton inet_neta base64 \ |
48 | ns_parse ns_name ns_netint ns_ttl ns_print \ | |
cd5743fd | 49 | ns_samedomain ns_date |
28f540f4 | 50 | |
2ace5721 UD |
51 | libanl-routines := gai_cancel gai_error gai_misc gai_notify gai_suspend \ |
52 | getaddrinfo_a | |
53 | ||
fd26970f | 54 | subdir-dirs = nss_dns |
68dbb3a6 UD |
55 | vpath %.c nss_dns |
56 | ||
28977c2c | 57 | libnss_dns-routines := dns-host dns-network dns-canon |
40a55d20 | 58 | libnss_dns-inhibit-o = $(filter-out .os,$(object-suffixes)) |
3ff42526 PP |
59 | ifeq ($(build-static-nss),yes) |
60 | routines += $(libnss_dns-routines) $(libresolv-routines) | |
61 | static-only-routines += $(libnss_dns-routines) $(libresolv-routines) | |
5107cf1d | 62 | endif |
68dbb3a6 | 63 | |
e10546cb | 64 | ifeq (yesyes,$(build-shared)$(have-thread-library)) |
2ace5721 UD |
65 | tests: $(objpfx)ga_test |
66 | endif | |
67 | ||
2ed2dc18 UD |
68 | generated := mtrace-tst-leaks tst-leaks.mtrace \ |
69 | mtrace-tst-leaks2 tst-leaks2.mtrace | |
434190c0 | 70 | |
28f540f4 | 71 | include ../Rules |
0793d348 | 72 | |
282d8743 RM |
73 | CPPFLAGS += -Dgethostbyname=res_gethostbyname \ |
74 | -Dgethostbyname2=res_gethostbyname2 \ | |
75 | -Dgethostbyaddr=res_gethostbyaddr \ | |
76 | -Dgetnetbyname=res_getnetbyname \ | |
77 | -Dgetnetbyaddr=res_getnetbyaddr | |
78 | ||
44f0a71e UD |
79 | ifeq (yes,$(have-ssp)) |
80 | CFLAGS-libresolv += -fstack-protector | |
81 | endif | |
443f7933 UD |
82 | CFLAGS-res_hconf.c = -fexceptions |
83 | ||
282d8743 | 84 | # The BIND code elicits some harmless warnings. |
66ac0abe | 85 | +cflags += -Wno-strict-prototypes -Wno-write-strings |
f65fd747 UD |
86 | |
87 | # Depend on libc.so so a DT_NEEDED is generated in the shared objects. | |
88 | # This ensures they will load libc.so for needed symbols if loaded by | |
89 | # a statically-linked program that hasn't already loaded it. | |
639c3248 | 90 | $(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a |
e057a1b5 JM |
91 | # Some hosts need '__stack_chk_guard', so pull in the definition from |
92 | # ld.so if required. | |
0269750c | 93 | ifeq (yes,$(have-ssp)) |
e057a1b5 JM |
94 | LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed) |
95 | endif | |
68dbb3a6 UD |
96 | |
97 | # The DNS NSS modules needs the resolver. | |
639c3248 UD |
98 | $(objpfx)libnss_dns.so: $(objpfx)libresolv.so $(common-objpfx)libc.so \ |
99 | $(common-objpfx)libc_nonshared.a | |
2ace5721 UD |
100 | |
101 | # The asynchronous name lookup code needs the thread library. | |
639c3248 UD |
102 | $(objpfx)libanl.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a \ |
103 | $(shared-thread-library) | |
2ace5721 UD |
104 | |
105 | $(objpfx)ga_test: $(objpfx)libanl.so $(shared-thread-library) | |
dd174748 RM |
106 | |
107 | $(objpfx)tst-leaks: $(objpfx)libresolv.so | |
108 | tst-leaks-ENV = MALLOC_TRACE=$(objpfx)tst-leaks.mtrace | |
109 | $(objpfx)mtrace-tst-leaks: $(objpfx)tst-leaks.out | |
110 | $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks.mtrace > $@ | |
f88658e9 | 111 | ifeq (no,$(cross-compiling)) |
dd174748 RM |
112 | ifneq (no,$(PERL)) |
113 | tests: $(objpfx)mtrace-tst-leaks | |
114 | endif | |
f88658e9 | 115 | endif |
2ed2dc18 UD |
116 | |
117 | tst-leaks2-ENV = MALLOC_TRACE=$(objpfx)tst-leaks2.mtrace | |
118 | $(objpfx)mtrace-tst-leaks2: $(objpfx)tst-leaks2.out | |
119 | $(common-objpfx)malloc/mtrace $(objpfx)tst-leaks2.mtrace > $@ | |
120 | ifeq (no,$(cross-compiling)) | |
121 | ifneq (no,$(PERL)) | |
122 | xtests: $(objpfx)mtrace-tst-leaks2 | |
123 | endif | |
124 | endif |