-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpam_xdg.makefile
65 lines (52 loc) · 1.7 KB
/
pam_xdg.makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#@ Makefile for pam_xdg(8).
#@ For example "$ make -f pam_xdg.makefile DESTDIR=.x CC=clang".
PREFIX =
MANPREFIX = $(PREFIX)/usr
DESTDIR =
LIBDIR = $(DESTDIR)$(PREFIX)/lib/security
MANDIR = $(DESTDIR)$(MANPREFIX)/share/man/man8
NAME = pam_xdg
XDG_CONFIG_DIR = /etc
# Standard says /usr/local/share/:/usr/share/, but instead of that
# /usr/local/ one may use a different prefix by changing this
XDG_DATA_DIR_LOCAL = /usr/local
# Of _RUNTIME_DIR_OUTER, only the last component is created if non-existing
XDG_RUNTIME_DIR_OUTER = /run
## >8 -- 8<
XDG_FLAGS = \
-D XDG_CONFIG_DIR=$(XDG_CONFIG_DIR) \
-D XDG_DATA_DIR_LOCAL=$(XDG_DATA_DIR_LOCAL) \
-D XDG_RUNTIME_DIR_OUTER=$(XDG_RUNTIME_DIR_OUTER) \
CC ?= cc
CFLAGS = -DNDEBUG \
-O2 -W -Wall -Wextra -pedantic \
-Wno-uninitialized -Wno-unused-result -Wno-unused-value \
-fno-asynchronous-unwind-tables -fno-unwind-tables \
-fno-common \
-fstrict-aliasing -fstrict-overflow \
-fstack-protector-strong \
-D_FORTIFY_SOURCE=3 \
-fcf-protection=full \
-fPIE -fPIC
LDF_SUN=
LDF_X=-Wl,-z,relro -Wl,-z,now -Wl,-z,noexecstack -Wl,--as-needed -Wl,--enable-new-dtags -fPIE -pie
LDFLAGS=$$(x=$$(uname); [ "$${x}" = "$${x\#Sun*}" ] && echo "$(SULDF_X)" || echo "$(SULDF_SUN)") -shared
LDLIBS = -lpam
INSTALL = install
MKDIR = mkdir
RM = rm
.PHONY: all clean distclean install uninstall
all: $(NAME).so
$(NAME).so: $(NAME).c
$(CC) $(CFLAGS) $(XDG_FLAGS) $(LDFLAGS) -o $(@) $(?) $(LDLIBS)
clean:
$(RM) -f $(NAME).so
distclean: clean
install: all
$(MKDIR) -p -m 0755 $(LIBDIR)
$(INSTALL) -m 0755 $(NAME).so $(LIBDIR)/$(NAME).so
$(MKDIR) -p -m 0755 $(MANDIR)
$(INSTALL) -m 0644 $(NAME).8 $(MANDIR)/$(NAME).8
uninstall:
$(RM) -f $(LIBDIR)/$(NAME).so $(MANDIR)/$(NAME).8
# s-mk-mode