1# Copyright (C) 1991-2022 Free Software Foundation, Inc. 2# This file is part of the GNU C Library. 3 4# The GNU C Library is free software; you can redistribute it and/or 5# modify it under the terms of the GNU Lesser General Public 6# License as published by the Free Software Foundation; either 7# version 2.1 of the License, or (at your option) any later version. 8 9# The GNU C Library is distributed in the hope that it will be useful, 10# but WITHOUT ANY WARRANTY; without even the implied warranty of 11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12# Lesser General Public License for more details. 13 14# You should have received a copy of the GNU Lesser General Public 15# License along with the GNU C Library; if not, see 16# <https://www.gnu.org/licenses/>. 17 18# 19# Sub-makefile for inet portion of the library. 20# 21subdir := inet 22 23include ../Makeconfig 24 25headers := netinet/ether.h netinet/in.h netinet/in_systm.h \ 26 netinet/if_ether.h netinet/igmp.h \ 27 netinet/tcp.h netinet/ip.h $(wildcard arpa/*.h protocols/*.h) \ 28 aliases.h ifaddrs.h netinet/ip6.h netinet/icmp6.h bits/in.h \ 29 rpc/netdb.h 30 31routines := htonl htons \ 32 inet_lnaof inet_mkadr \ 33 inet_netof inet_ntoa inet_net herrno herrno-loc \ 34 gethstbyad gethstbyad_r gethstbynm gethstbynm2 gethstbynm2_r \ 35 gethstbynm_r gethstent gethstent_r \ 36 getnetbyad getnetbyad_r getnetbynm getnetent getnetent_r \ 37 getnetbynm_r \ 38 getproto getproto_r getprtent getprtent_r getprtname getprtname_r \ 39 getsrvbynm getsrvbynm_r getsrvbypt getsrvbypt_r getservent \ 40 getservent_r getrpcent getrpcbyname getrpcbynumber \ 41 getrpcent_r getrpcbyname_r getrpcbynumber_r \ 42 ether_aton ether_aton_r ether_hton ether_line \ 43 ether_ntoa ether_ntoa_r ether_ntoh \ 44 rcmd rexec ruserpass bindresvport \ 45 getnetgrent_r getnetgrent \ 46 getaliasent_r getaliasent getaliasname getaliasname_r \ 47 in6_addr getnameinfo if_index ifaddrs inet6_option \ 48 getipv4sourcefilter setipv4sourcefilter \ 49 getsourcefilter setsourcefilter inet6_opt inet6_rth \ 50 inet6_scopeid_pton deadline idna idna_name_classify 51 52install-others = $(inst_sysconfdir)/rpc 53 54aux := check_pf check_native ifreq 55 56tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \ 57 tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \ 58 tst-getni1 tst-getni2 tst-inet6_rth tst-checks tst-checks-posix \ 59 tst-sockaddr test-hnto-types tst-if_index-long 60 61# tst-deadline must be linked statically so that we can access 62# internal functions. 63tests-static += tst-deadline 64tests-internal += tst-deadline 65 66# tst-idna_name_classify must be linked statically because it tests 67# internal functionality. 68tests-static += tst-idna_name_classify 69tests-internal += tst-idna_name_classify 70 71# tst-inet6_scopeid_pton also needs internal functions but does not 72# need to be linked statically. 73tests-internal += tst-inet6_scopeid_pton 74 75include ../Rules 76 77LOCALES := en_US.UTF-8 en_US.ISO-8859-1 78include ../gen-locales.mk 79 80ifeq ($(have-thread-library),yes) 81 82CFLAGS-gethstbyad_r.c += -fexceptions 83CFLAGS-gethstbyad.c += -fexceptions 84CFLAGS-gethstbynm_r.c += -fexceptions 85CFLAGS-gethstbynm.c += -fexceptions 86CFLAGS-gethstbynm2_r.c += -fexceptions 87CFLAGS-gethstbynm2.c += -fexceptions 88CFLAGS-gethstent_r.c += -fexceptions 89CFLAGS-gethstent.c += -fexceptions 90CFLAGS-rcmd.c += -fexceptions 91CFLAGS-getnetbynm_r.c += -fexceptions 92CFLAGS-getnetbynm.c += -fexceptions 93CFLAGS-getnetbyad_r.c += -fexceptions 94CFLAGS-getnetbyad.c += -fexceptions 95CFLAGS-getnetent_r.c += -fexceptions 96CFLAGS-getnetent.c += -fexceptions 97CFLAGS-getaliasent_r.c += -fexceptions 98CFLAGS-getaliasent.c += -fexceptions 99CFLAGS-getrpcent_r.c += -fexceptions 100CFLAGS-getrpcent.c += -fexceptions 101CFLAGS-getservent_r.c += -fexceptions 102CFLAGS-getservent.c += -fexceptions 103CFLAGS-getprtent_r.c += -fexceptions 104CFLAGS-getprtent.c += -fexceptions 105CFLAGS-either_ntoh.c += -fexceptions 106CFLAGS-either_hton.c += -fexceptions 107CFLAGS-getnetgrent.c += -fexceptions 108CFLAGS-getnetgrent_r.c += -fexceptions 109 110CFLAGS-tst-checks-posix.c += -std=c99 111CFLAGS-tst-sockaddr.c += -fno-strict-aliasing 112 113endif 114 115# Install the rpc database file. 116$(inst_sysconfdir)/rpc: etc.rpc $(+force) 117 $(do-install) 118 119ifeq ($(build-static-nss),yes) 120CFLAGS += -DSTATIC_NSS 121endif 122 123# The test uses dlopen indirectly and would otherwise load system 124# objects. 125tst-idna_name_classify-ENV = \ 126 LD_LIBRARY_PATH=$(ld-library-path):$(common-objpfx):$(common-objpfx)elf 127$(objpfx)tst-idna_name_classify.out: $(gen-locales) 128