src/process.c: fix copy and paste bug
[vlock.git] / Makefile
blob457897a9468d574fd53e4a0f75a57e632fc8266f
1 # vlock makefile
3 include config.mk
5 VPATH = src
7 VLOCK_VERSION = 2.2 alpha2
9 PROGRAMS = vlock vlock-main
11 .PHONY: all
12 all: $(PROGRAMS)
14 .PHONY: debug
15 debug:
16 @$(MAKE) DEBUG=y
18 ifeq ($(ENABLE_PLUGINS),yes)
19 all: plugins
20 endif
22 .PHONY: plugins
23 plugins: modules scripts
25 .PHONY: modules
26 modules:
27 @$(MAKE) -C modules
29 .PHONY: scripts
30 scripts:
31 @$(MAKE) -C scripts
33 ### configuration ###
35 config.mk:
36 $(warning Creating default configuration.)
37 @./configure --quiet
39 ### installation rules ###
41 .PHONY: install
42 install: install-programs install-man
44 ifeq ($(ENABLE_PLUGINS),yes)
45 install: install-plugins
46 endif
48 .PHONY: install-programs
49 install-programs: $(PROGRAMS)
50 $(MKDIR_P) $(DESTDIR)$(PREFIX)/bin
51 $(INSTALL) -m 755 -o root -g $(ROOT_GROUP) vlock $(DESTDIR)$(BINDIR)/vlock
52 $(MKDIR_P) $(DESTDIR)$(PREFIX)/sbin
53 $(INSTALL) -m 4711 -o root -g $(ROOT_GROUP) vlock-main $(DESTDIR)$(SBINDIR)/vlock-main
55 .PHONY: install-plugins
56 install-plugins: install-modules install-scripts
58 .PHONY: install-modules
59 install-modules:
60 @$(MAKE) -C modules install
62 .PHONY: install-scripts
63 install-scripts:
64 @$(MAKE) -C scripts install
66 .PHONY: install-man
67 install-man:
68 $(MKDIR_P) $(DESTDIR)$(PREFIX)/share/man/man1
69 $(INSTALL) -m 644 -o root -g $(ROOT_GROUP) man/vlock.1 $(DESTDIR)$(MANDIR)/man1/vlock.1
70 $(MKDIR_P) $(DESTDIR)$(PREFIX)/share/man/man8
71 $(INSTALL) -m 644 -o root -g $(ROOT_GROUP) man/vlock-main.8 $(DESTDIR)$(MANDIR)/man8/vlock-main.8
74 ### build rules ###
76 vlock: vlock.sh config.mk Makefile
77 $(BOURNE_SHELL) -n $<
78 sed \
79 -e 's,%BOURNE_SHELL%,$(BOURNE_SHELL),' \
80 -e 's,%PREFIX%,$(PREFIX),' \
81 -e 's,%VLOCK_VERSION%,$(VLOCK_VERSION),' \
82 -e 's,%VLOCK_ENABLE_PLUGINS%,$(ENABLE_PLUGINS),' \
83 $< > $@.tmp
84 mv -f $@.tmp $@
86 override CFLAGS += -Isrc
88 vlock-main: vlock-main.o prompt.o auth-$(AUTH_METHOD).o console_switch.o util.o
90 auth-pam.o: auth-pam.c prompt.h auth.h
91 auth-shadow.o: auth-shadow.c prompt.h auth.h
92 prompt.o: prompt.c prompt.h
93 vlock-main.o: vlock-main.c auth.h prompt.h util.h
94 plugins.o: plugins.c tsort.h plugin.h plugins.h list.h util.h
95 module.o : override CFLAGS += -DVLOCK_MODULE_DIR="\"$(MODULEDIR)\""
96 module.o: module.c plugin.h list.h util.h
97 script.o : override CFLAGS += -DVLOCK_SCRIPT_DIR="\"$(SCRIPTDIR)\""
98 script.o: script.c plugin.h process.h list.h util.h
99 plugin.o: plugin.c plugin.h list.h util.h
100 tsort.o: tsort.c tsort.h list.h
101 list.o: list.c list.h util.h
102 console_switch.o: console_switch.c console_switch.h
103 process.o: process.c process.h
104 util.o: util.c util.h
106 ifneq ($(ENABLE_ROOT_PASSWORD),yes)
107 vlock-main.o : override CFLAGS += -DNO_ROOT_PASS
108 endif
110 ifeq ($(AUTH_METHOD),pam)
111 vlock-main : override LDFLAGS += $(PAM_LIBS)
112 endif
114 ifeq ($(AUTH_METHOD),shadow)
115 vlock-main : override LDFLAGS += $(CRYPT_LIB)
116 endif
118 ifeq ($(ENABLE_PLUGINS),yes)
119 vlock-main: plugins.o plugin.o module.o process.o script.o tsort.o list.o
120 # -rdynamic is needed so that the all plugin can access the symbols from console_switch.o
121 vlock-main : override LDFLAGS += $(DL_LIB) -rdynamic
122 vlock-main.o : override CFLAGS += -DUSE_PLUGINS
123 vlock-main.o: plugins.h
124 endif
126 .PHONY: realclean
127 realclean: clean
128 $(RM) config.mk
130 .PHONY: clean
131 clean:
132 $(RM) $(PROGRAMS) $(wildcard *.o)
133 @$(MAKE) -C modules clean
134 @$(MAKE) -C scripts clean