~ubuntu-branches/debian/squeeze/vlock/squeeze

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# vlock makefile

include config.mk

VPATH = src

VLOCK_VERSION = 2.2.2

PROGRAMS = vlock vlock-main

.PHONY: all
all: $(PROGRAMS)

.PHONY: debug
debug:
	@$(MAKE) DEBUG=y

ifeq ($(ENABLE_PLUGINS),yes)
all: plugins
endif

.PHONY: plugins
plugins: modules scripts

.PHONY: modules
modules:
	@$(MAKE) -C modules

.PHONY: scripts
scripts:
	@$(MAKE) -C scripts

.PHONY: check memcheck
check memcheck:
	@$(MAKE) -C tests $@

### configuration ###

config.mk:
	$(info )
	$(info ###################################################)
	$(info # Creating default configuration.                 #)
	$(info # Run ./configure or edit config.mk to customize. #)
	$(info ###################################################)
	$(info )
	@./configure --quiet

### installation rules ###

.PHONY: install
install: install-programs install-man

ifeq ($(ENABLE_PLUGINS),yes)
install: install-plugins
endif

.PHONY: install-programs
install-programs: $(PROGRAMS)
	$(MKDIR_P) -m 755 $(DESTDIR)$(PREFIX)/bin
	$(INSTALL) -m 755 -o root -g $(ROOT_GROUP) vlock $(DESTDIR)$(BINDIR)/vlock
	$(MKDIR_P) -m 755 $(DESTDIR)$(PREFIX)/sbin
	$(INSTALL) -m 4711 -o root -g $(ROOT_GROUP) vlock-main $(DESTDIR)$(SBINDIR)/vlock-main

.PHONY: install-plugins
install-plugins: install-modules install-scripts

.PHONY: install-modules
install-modules:
	@$(MAKE) -C modules install

.PHONY: install-scripts
install-scripts:
	@$(MAKE) -C scripts install

.PHONY: install-man
install-man:
	$(MKDIR_P) -m 755 $(DESTDIR)$(MANDIR)/man1
	$(INSTALL) -m 644 -o root -g $(ROOT_GROUP) man/vlock.1 $(DESTDIR)$(MANDIR)/man1/vlock.1
	$(MKDIR_P) -m 755 $(DESTDIR)$(MANDIR)/man8
	$(INSTALL) -m 644 -o root -g $(ROOT_GROUP) man/vlock-main.8 $(DESTDIR)$(MANDIR)/man8/vlock-main.8
	$(MKDIR_P) -m 755 $(DESTDIR)$(MANDIR)/man5
	$(INSTALL) -m 644 -o root -g $(ROOT_GROUP) man/vlock-plugins.5 $(DESTDIR)$(MANDIR)/man5/vlock-plugins.5


### build rules ###

vlock: vlock.sh config.mk Makefile
	$(BOURNE_SHELL) -n $<
	sed \
		-e 's,%BOURNE_SHELL%,$(BOURNE_SHELL),' \
		-e 's,%PREFIX%,$(PREFIX),' \
		-e 's,%VLOCK_VERSION%,$(VLOCK_VERSION),' \
		-e 's,%VLOCK_ENABLE_PLUGINS%,$(ENABLE_PLUGINS),' \
		$< > $@.tmp
	mv -f $@.tmp $@

override CFLAGS += -Isrc

vlock-main: vlock-main.o prompt.o auth-$(AUTH_METHOD).o console_switch.o util.o

auth-pam.o: auth-pam.c prompt.h auth.h
auth-shadow.o: auth-shadow.c prompt.h auth.h
prompt.o: prompt.c prompt.h
vlock-main.o: vlock-main.c auth.h prompt.h util.h
plugins.o: plugins.c tsort.h plugin.h plugins.h list.h util.h
module.o : override CFLAGS += -DVLOCK_MODULE_DIR="\"$(MODULEDIR)\""
module.o: module.c plugin.h list.h util.h
script.o : override CFLAGS += -DVLOCK_SCRIPT_DIR="\"$(SCRIPTDIR)\""
script.o: script.c plugin.h process.h list.h util.h
plugin.o: plugin.c plugin.h list.h util.h
tsort.o: tsort.c tsort.h list.h
list.o: list.c list.h util.h
console_switch.o: console_switch.c console_switch.h
process.o: process.c process.h
util.o: util.c util.h

ifneq ($(ENABLE_ROOT_PASSWORD),yes)
vlock-main.o : override CFLAGS += -DNO_ROOT_PASS
endif

ifeq ($(AUTH_METHOD),pam)
vlock-main : override LDLIBS += $(PAM_LIBS)
endif

ifeq ($(AUTH_METHOD),shadow)
vlock-main : override LDLIBS += $(CRYPT_LIB)
endif

ifeq ($(ENABLE_PLUGINS),yes)
vlock-main: plugins.o plugin.o module.o process.o script.o tsort.o list.o
# -rdynamic is needed so that the all plugin can access the symbols from console_switch.o
vlock-main : override LDFLAGS += -rdynamic
vlock-main : override LDLIBS += $(DL_LIB)
vlock-main.o : override CFLAGS += -DUSE_PLUGINS
vlock-main.o: plugins.h
endif

.PHONY: realclean
realclean: clean
	$(RM) config.mk

.PHONY: clean
clean:
	$(RM) $(PROGRAMS) $(wildcard *.o)
	@$(MAKE) -C modules clean
	@$(MAKE) -C scripts clean
	@$(MAKE) -C tests clean