
1: # Copyright (C) 1996-1998,2000,2001,2002,2007 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, write to the Free 16: # Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 17: # 02111-1307 USA. 18: 19: # 20: # Makefile for name service switch. 21: # 22: subdir := nss 23: 24: headers := nss.h 25: distribute := nsswitch.h XXX-lookup.c getXXbyYY.c getXXbyYY_r.c \ 26: getXXent.c getXXent_r.c databases.def \ 27: nsswitch.conf digits_dots.c function.def 28: 29: # This is the trivial part which goes into libc itself. 30: routines = nsswitch getnssent getnssent_r digits_dots \ 31: $(addsuffix -lookup,$(databases)) 32: 33: # These are the databases that go through nss dispatch. 34: # Caution: if you add a database here, you must add its real name 35: # in databases.def, too. 36: databases = proto service hosts network grp pwd rpc ethers \ 37: spwd netgrp key alias 38: 39: others := getent 40: install-bin := getent 41: 42: tests = test-netdb 43: xtests = bug-erange 44: 45: include ../Makeconfig 46: 47: ifeq (yes,$(build-static-nss)) 48: otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ 49: $(resolvobjdir)/libresolv.a 50: endif 51: 52: # Specify rules for the nss_* modules. We have some services. 53: services := files 54: 55: extra-libs = $(services:%=libnss_%) 56: # These libraries will be built in the `others' pass rather than 57: # the `lib' pass, because they depend on libc.so being built already. 58: extra-libs-others = $(extra-libs) 59: 60: # The sources are found in the appropriate subdir. 61: subdir-dirs = $(services:%=nss_%) 62: vpath %.c $(subdir-dirs) 63: 64: 65: libnss_files-routines := $(addprefix files-,$(databases)) \ 66: files-have_o_cloexec 67: distribute += files-XXX.c files-parse.c 68: 69: 70: # Build static module if requested 71: ifneq ($(build-static-nss),yes) 72: libnss_files-inhibit-o = $(filter-out .os,$(object-suffixes)) 73: endif 74: 75: include ../Rules 76: 77: 78: ifeq (yes,$(build-static-nss)) 79: $(objpfx)getent: $(objpfx)libnss_files.a 80: endif 81: 82: # Depend on libc.so so a DT_NEEDED is generated in the shared objects. 83: # This ensures they will load libc.so for needed symbols if loaded by 84: # a statically-linked program that hasn't already loaded it. 85: $(services:%=$(objpfx)libnss_%.so): $(common-objpfx)libc.so \ 86: $(common-objpfx)libc_nonshared.a