]> git.ipfire.org Git - thirdparty/glibc.git/blame - login/Makefile
Linux: consolidate sendfile implementation
[thirdparty/glibc.git] / login / Makefile
CommitLineData
581c785b 1# Copyright (C) 1996-2022 Free Software Foundation, Inc.
b8fe19fa
RM
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
41bdb6e2
AJ
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.
b8fe19fa
RM
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
41bdb6e2 12# Lesser General Public License for more details.
b8fe19fa 13
41bdb6e2 14# You should have received a copy of the GNU Lesser General Public
59ba27a6 15# License along with the GNU C Library; if not, see
5a82c748 16# <https://www.gnu.org/licenses/>.
b8fe19fa
RM
17
18#
19# Sub-makefile for login portion of the library.
20#
21
22subdir := login
23
a5f891ac
JM
24include ../Makeconfig
25
8619129f 26headers := utmp.h bits/utmp.h lastlog.h pty.h
b8fe19fa 27
ee586a6d 28routines := getlogin getlogin_r setlogin getlogin_r_chk \
8fb16a04 29 getutent getutent_r getutid getutline getutid_r getutline_r \
bd9ffde6 30 utmp_file utmpname updwtmp getpt grantpt unlockpt ptsname \
734c60eb 31 ptsname_r_chk login login_tty logout logwtmp openpty forkpty
8a523922 32
36975e8e 33CFLAGS-grantpt.c += -DLIBEXECDIR='"$(libexecdir)"'
6591c335 34
e4608715
CD
35others = utmpdump
36
e4608715
CD
37ifeq (yes,$(build-pt-chown))
38others += pt_chown
da62f81b 39others-pie = pt_chown
ff40792e 40install-others-programs = $(inst_libexecdir)/pt_chown
e4608715 41endif
76b87c03 42
b13927da
UD
43subdir-dirs = programs
44vpath %.c programs
b8fe19fa 45
61d3db42 46tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname tst-getlogin tst-updwtmpx \
be6b16d9 47 tst-pututxline-lockfail tst-pututxline-cache
7ba4fcfc 48
734c60eb 49# Empty compatibility library for old binaries.
b8fe19fa 50extra-libs := libutil
ba1ffaa1 51extra-libs-others := $(extra-libs)
b3cf94ef 52ifeq ($(have-GLIBC_2.33),yes)
734c60eb
FW
53libutil-routines := libutil-compat
54libutil-shared-only-routines := libutil-compat
55
56# Pretend that libutil.so is a linker script, so that the symbolic
57# link is not installed.
58install-lib-ldscripts = libutil.so
59$(inst_libdir)/libutil.so:
b3cf94ef
SH
60else # not $(have-GLIBC_2.33)
61libutil-inhibit-o = $(filter-out .o,$(object-suffixes))
734c60eb 62endif # $(have-GLIBC_2.33)
b8fe19fa 63
b8fe19fa 64include ../Rules
9498096c 65
36975e8e 66CFLAGS-getpt.c += -fexceptions
8d98c7c0 67CFLAGS-getlogin_r.c += $(config-cflags-wno-ignored-attributes)
f1c30c98 68
f051ddfe
UD
69ifeq (yesyes,$(have-fpie)$(build-shared))
70pt_chown-cflags += $(pie-ccflag)
71endif
f793b624
UD
72ifeq (yes,$(have-libcap))
73libcap = -lcap
74endif
36975e8e 75CFLAGS-pt_chown.c += $(pt_chown-cflags)
f793b624 76LDLIBS-pt_chown = $(libcap)
f051ddfe
UD
77ifeq (yesyes,$(have-fpie)$(build-shared))
78LDFLAGS-pt_chown = -Wl,-z,now
f051ddfe 79endif
f793b624 80
6591c335 81# pt_chown needs to be setuid root.
73237de3 82$(inst_libexecdir)/pt_chown: $(objpfx)pt_chown $(+force)
da2d1bc5 83 $(make-target-directory)
f98b4bbd 84 -$(INSTALL_PROGRAM) -m 4755 -o root $< $@
61d3db42
FW
85
86$(objpfx)tst-pututxline-lockfail: $(shared-thread-library)
be6b16d9 87$(objpfx)tst-pututxline-cache: $(shared-thread-library)