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 grp portion of the library.
20#
21subdir	:= grp
22
23include ../Makeconfig
24
25headers := grp.h
26
27routines := fgetgrent initgroups setgroups \
28	    getgrent getgrgid getgrnam putgrent \
29	    getgrent_r getgrgid_r getgrnam_r fgetgrent_r \
30	    grp-merge
31
32tests := testgrp tst-putgrent
33
34tests-container = \
35	tst-initgroups1 \
36	tst-initgroups2
37
38ifeq (yes,$(build-shared))
39test-srcs :=  tst_fgetgrent
40ifeq ($(run-built-tests),yes)
41tests-special += $(objpfx)tst_fgetgrent.out
42endif
43endif
44
45
46include ../Rules
47
48ifeq ($(have-thread-library),yes)
49
50CFLAGS-getgrgid_r.c += -fexceptions
51CFLAGS-getgrnam_r.c += -fexceptions
52CFLAGS-getgrent_r.c += -fexceptions
53CFLAGS-getgrent.c += -fexceptions
54CFLAGS-fgetgrent.c += -fexceptions
55CFLAGS-fgetgrent_r.c += -fexceptions $(libio-mtsafe)
56CFLAGS-putgrent.c += -fexceptions $(libio-mtsafe)
57CFLAGS-initgroups.c += -fexceptions
58CFLAGS-getgrgid.c += -fexceptions
59
60endif
61
62ifeq ($(run-built-tests),yes)
63# tst_fgetgrent currently only works with shared libraries
64ifeq (yes,$(build-shared))
65$(objpfx)tst_fgetgrent.out: tst_fgetgrent.sh $(objpfx)tst_fgetgrent
66	$(SHELL) $< $(common-objpfx) '$(test-program-prefix)'; \
67	$(evaluate-test)
68
69endif
70endif
71