Correctly handle missing initgroups database
[platform/upstream/glibc.git] / grp / Makefile
index 273b7d1..e6ca864 100644 (file)
@@ -1,30 +1,71 @@
-# Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
+# Copyright (C) 1991,1992,1996-2000,2003,2004 Free Software Foundation, Inc.
 # This file is part of the GNU C Library.
 
 # The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Library General Public License as
-# published by the Free Software Foundation; either version 2 of the
-# License, or (at your option) any later version.
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License, or (at your option) any later version.
 
 # The GNU C Library is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Library General Public License for more details.
+# Lesser General Public License for more details.
 
-# You should have received a copy of the GNU Library General Public
-# License along with the GNU C Library; see the file COPYING.LIB.  If
-# not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-# Cambridge, MA 02139, USA.
+# You should have received a copy of the GNU Lesser General Public
+# License along with the GNU C Library; if not, write to the Free
+# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
 
 #
 #      Sub-makefile for grp portion of the library.
 #
 subdir := grp
+headers := grp.h
+
+distribute := tst_fgetgrent.c tst_fgetgrent.sh compat-initgroups.c
 
 routines := fgetgrent initgroups setgroups \
-           getgrent getgrgid getgrnam \
-           getgrent_r getgrgid_r getgrnam_r
+           getgrent getgrgid getgrnam putgrent \
+           getgrent_r getgrgid_r getgrnam_r fgetgrent_r
+
+include ../Makeconfig
 
 tests := testgrp
 
+ifeq (yes,$(build-shared))
+test-srcs :=  tst_fgetgrent
+endif
+
+
 include ../Rules
+
+ifeq (yes,$(build-static-nss))
+otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
+            $(resolvobjdir)/libresolv.a
+endif
+
+
+ifeq ($(have-thread-library),yes)
+
+CFLAGS-getgrgid_r.c = -DUSE_NSCD=1 -fexceptions
+CFLAGS-getgrnam_r.c = -DUSE_NSCD=1 -fexceptions
+CFLAGS-getgrent_r.c = -fexceptions
+CFLAGS-getgrent.c = -fexceptions
+CFLAGS-fgetgrent.c = -fexceptions
+CFLAGS-fgetgrent_r.c = -fexceptions -D_IO_MTSAFE_IO
+CFLAGS-putgrent.c = -fexceptions -D_IO_MTSAFE_IO
+CFLAGS-initgroups.c = -DUSE_NSCD=1 -fexceptions
+CFLAGS-getgrgid.c = -fexceptions
+
+endif
+
+ifeq (no,$(cross-compiling))
+# tst_fgetgrent currently only works with shared libraries
+ifeq (yes,$(build-shared))
+tests: $(objpfx)tst_fgetgrent.out
+$(objpfx)tst_fgetgrent.out: tst_fgetgrent.sh $(objpfx)tst_fgetgrent
+       $(SHELL) -e tst_fgetgrent.sh $(common-objpfx) $(elf-objpfx) \
+                $(rtld-installed-name)
+
+endif
+endif