]> git.ipfire.org Git - thirdparty/glibc.git/blame - login/Makefile
login: Use unsigned 32-bit types for seconds-since-epoch
[thirdparty/glibc.git] / login / Makefile
CommitLineData
dff8da6b 1# Copyright (C) 1996-2024 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 \
5361ad39
FW
47 tst-pututxline-lockfail tst-pututxline-cache tst-utmp-size tst-utmp-size-64 \
48 tst-utmp-unsigned tst-utmp-unsigned-64
9abdae94
FW
49
50CFLAGS-tst-utmp-size-64.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
5361ad39 51CFLAGS-tst-utmp-unsigned-64.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
7ba4fcfc 52
734c60eb 53# Empty compatibility library for old binaries.
b8fe19fa 54extra-libs := libutil
ba1ffaa1 55extra-libs-others := $(extra-libs)
b3cf94ef 56ifeq ($(have-GLIBC_2.33),yes)
734c60eb
FW
57libutil-routines := libutil-compat
58libutil-shared-only-routines := libutil-compat
59
60# Pretend that libutil.so is a linker script, so that the symbolic
61# link is not installed.
62install-lib-ldscripts = libutil.so
63$(inst_libdir)/libutil.so:
b3cf94ef
SH
64else # not $(have-GLIBC_2.33)
65libutil-inhibit-o = $(filter-out .o,$(object-suffixes))
734c60eb 66endif # $(have-GLIBC_2.33)
b8fe19fa 67
b8fe19fa 68include ../Rules
9498096c 69
36975e8e 70CFLAGS-getpt.c += -fexceptions
8d98c7c0 71CFLAGS-getlogin_r.c += $(config-cflags-wno-ignored-attributes)
f1c30c98 72
20c894d2
FB
73# Exclude fortified routines from being built with _FORTIFY_SOURCE
74routines_no_fortify += \
75 getlogin_r \
76 ptsname_r \
77 # routines_no_fortify
78
f051ddfe
UD
79ifeq (yesyes,$(have-fpie)$(build-shared))
80pt_chown-cflags += $(pie-ccflag)
81endif
f793b624
UD
82ifeq (yes,$(have-libcap))
83libcap = -lcap
84endif
36975e8e 85CFLAGS-pt_chown.c += $(pt_chown-cflags)
f793b624 86LDLIBS-pt_chown = $(libcap)
f051ddfe
UD
87ifeq (yesyes,$(have-fpie)$(build-shared))
88LDFLAGS-pt_chown = -Wl,-z,now
f051ddfe 89endif
f793b624 90
6591c335 91# pt_chown needs to be setuid root.
73237de3 92$(inst_libexecdir)/pt_chown: $(objpfx)pt_chown $(+force)
da2d1bc5 93 $(make-target-directory)
f98b4bbd 94 -$(INSTALL_PROGRAM) -m 4755 -o root $< $@
61d3db42
FW
95
96$(objpfx)tst-pututxline-lockfail: $(shared-thread-library)
be6b16d9 97$(objpfx)tst-pututxline-cache: $(shared-thread-library)