1#
2# Copyright (c) 1996, 1998-2005, 2007-2012
3#	Todd C. Miller <Todd.Miller@courtesan.com>
4#
5# Permission to use, copy, modify, and distribute this software for any
6# purpose with or without fee is hereby granted, provided that the above
7# copyright notice and this permission notice appear in all copies.
8#
9# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
17#
18# Sponsored in part by the Defense Advanced Research Projects
19# Agency (DARPA) and Air Force Research Laboratory, Air Force
20# Materiel Command, USAF, under agreement number F39502-99-1-0512.
21#
22# @configure_input@
23#
24
25#### Start of system configuration section. ####
26
27srcdir = @srcdir@
28devdir = @devdir@
29authdir = $(srcdir)/auth
30top_builddir = .
31
32# Compiler & tools to use
33CC = @CC@
34FLEX = @FLEX@
35YACC = @YACC@
36LIBTOOL = @LIBTOOL@
37AR=@AR@
38RANLIB=@RANLIB@
39SED=@SED@
40TR = @TRPROG@
41MANDOC = @MANDOCPROG@
42MANCOMPRESS = @MANCOMPRESS@
43MANCOMPRESSEXT = @MANCOMPRESSEXT@
44
45# Our install program supports extra flags...
46INSTALL = $(SHELL) $(srcdir)/install-sh -c
47
48# Libraries
49LIBS = @LIBS@
50NET_LIBS = @NET_LIBS@
51SUDO_LIBS = @SUDO_LIBS@ @AFS_LIBS@ @GETGROUPS_LIB@ $(LIBS) $(NET_LIBS)
52
53# C preprocessor flags
54CPPFLAGS = -I. -I$(srcdir) @CPPFLAGS@
55
56# Usually -O and/or -g
57CFLAGS = @CFLAGS@
58
59# Flags to pass to the link stage
60LDFLAGS = -L. @LDFLAGS@
61SUDO_LDFLAGS = @SUDO_LDFLAGS@ $(LDFLAGS)
62
63# PIE flags
64PIE_CFLAGS = @PIE_CFLAGS@
65PIE_LDFLAGS = @PIE_LDFLAGS@
66
67# Stack smashing protection flags
68SSP_CFLAGS = @SSP_CFLAGS@
69SSP_LDFLAGS = @SSP_LDFLAGS@
70
71# Where to install things...
72prefix = @prefix@
73exec_prefix = @exec_prefix@
74bindir = @bindir@
75sbindir = @sbindir@
76sysconfdir = @sysconfdir@
77libexecdir = @libexecdir@
78datarootdir = @datarootdir@
79localstatedir = @localstatedir@
80docdir = @docdir@
81mandir = @mandir@
82timedir = @timedir@
83noexecfile = @NOEXECFILE@
84noexecdir = @NOEXECDIR@
85
86# Directory in which to install sudo.
87sudodir = $(bindir)
88
89# Directory in which to install visudo
90visudodir = $(sbindir)
91
92# Directory in which to install the sudoers file
93sudoersdir = $(sysconfdir)
94
95# Directory in which to install the man page
96mantype = @MANTYPE@
97mansectsu = @mansectsu@
98mansectform = @mansectform@
99mandirsu = $(mandir)/@MANDIRTYPE@$(mansectsu)
100mandirform = $(mandir)/@MANDIRTYPE@$(mansectform)
101
102# User and group ids the installed files should be "owned" by
103install_uid = 0
104install_gid = 0
105
106# User, group, and mode the sudoers file should be "owned" by (configure)
107sudoers_uid = @SUDOERS_UID@
108sudoers_gid = @SUDOERS_GID@
109sudoers_mode = @SUDOERS_MODE@
110shlib_mode = @SHLIB_MODE@
111
112# Pass in paths and uid/gid + OS dependent defined
113DEFS = @OSDEFS@ -D_PATH_SUDOERS=\"$(sudoersdir)/sudoers\" -DSUDOERS_UID=$(sudoers_uid) -DSUDOERS_GID=$(sudoers_gid) -DSUDOERS_MODE=$(sudoers_mode)
114
115# Set to non-empty for development mode
116DEVEL = @DEVEL@
117
118#### End of system configuration section. ####
119
120SHELL = @SHELL@
121
122PROGS = @PROGS@
123
124SRCS = aix.c alias.c alloc.c audit.c boottime.c bsm_audit.c check.c \
125       closefrom.c def_data.c defaults.c env.c error.c exec.c exec_pty.c \
126       fileops.c find_path.c fnmatch.c get_pty.c getcwd.c getprogname.c \
127       getspwuid.c gettime.c glob.c goodpath.c gram.c gram.y interfaces.c \
128       iolog.c isblank.c lbuf.c ldap.c linux_audit.c list.c logging.c \
129       logwrap.c match.c mksiglist.c mkstemps.c memrchr.c nanosleep.c parse.c \
130       parse_args.c pwutil.c secure_path.c set_perms.c setsid.c sigaction.c \
131       snprintf.c strcasecmp.c strerror.c strlcat.c strlcpy.c strsignal.c \
132       sudo.c sudo_noexec.c sudo_edit.c sudo_nss.c term.c testsudoers.c \
133       tgetpass.c toke.c toke.l toke_util.c tsgetgrpw.c ttyname.c ttysize.c \
134       utimes.c vasgroups.c visudo.c zero_bytes.c redblack.c selinux.c sesh.c \
135       sudoreplay.c getdate.c getdate.y getline.c timestr.c $(AUTH_SRCS)
136
137AUTH_SRCS = auth/afs.c auth/aix_auth.c auth/bsdauth.c auth/dce.c auth/fwtk.c \
138	    auth/kerb4.c auth/kerb5.c auth/pam.c auth/passwd.c auth/rfc1938.c \
139	    auth/secureware.c auth/securid.c auth/securid5.c auth/sia.c \
140	    auth/sudo_auth.c
141
142HDRS = alloc.h bsm_audit.h def_data.h defaults.h error.h ins_2001.h \
143       ins_classic.h ins_csops.h ins_goons.h insults.h interfaces.h lbuf.h \
144       linux_audit.h list.h logging.h missing.h mksiglist.h nonunix.h \
145       redblack.h parse.h secure_path.h sudo.h sudo_exec.h sudo_nss.h \
146       gram.h toke.h auth/sudo_auth.h emul/charclass.h emul/fnmatch.h \
147       emul/glob.h emul/timespec.h emul/utime.h
148
149AUTH_OBJS = sudo_auth.o @AUTH_OBJS@
150
151COMMON_OBJS = alias.o alloc.o defaults.o error.o gram.o list.o match.o \
152	      pwutil.o timestr.o toke.o toke_util.o redblack.o \
153	      secure_path.o term.o zero_bytes.o @COMMON_OBJS@
154
155SUDO_OBJS = $(AUTH_OBJS) @SUDO_OBJS@ audit.o boottime.o check.o env.o \
156	    exec.o gettime.o goodpath.o fileops.o find_path.o \
157	    interfaces.o lbuf.o logging.o logwrap.o parse.o parse_args.o \
158	    set_perms.o sudo.o sudo_edit.o sudo_nss.o tgetpass.o ttyname.o
159
160VISUDO_OBJS = visudo.o fileops.o gettime.o goodpath.o find_path.o
161
162REPLAY_OBJS = getdate.o sudoreplay.o ttysize.o
163
164TEST_OBJS = interfaces.o testsudoers.o tsgetgrpw.o
165
166LIB_OBJS = @LIBOBJS@
167
168ZLIB_OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o \
169	    gzread.o gzwrite.o infback.o inffast.o inflate.o inftrees.o \
170	    trees.o uncompr.o zutil.o
171
172VERSION = @PACKAGE_VERSION@
173PACKAGE_TARNAME = @PACKAGE_TARNAME@
174
175DISTFILES = $(SRCS) $(HDRS) ChangeLog CONTRIBUTORS HISTORY INSTALL \
176	    INSTALL.configure LICENSE Makefile.in NEWS PORTING README \
177	    README.LDAP TROUBLESHOOTING UPGRADE aclocal.m4 aixcrypt.exp \
178	    config.guess config.h.in config.sub configure configure.in \
179	    def_data.in fixman.sh fixmdoc.sh indent.pro install-sh ltmain.sh \
180	    m4 mkdefaults mkinstalldirs mkpkg pathnames.h.in pp sample.pam \
181	    sample.syslog.conf sample.sudoers schema.ActiveDirectory \
182	    schema.OpenLDAP schema.iPlanet siglist.in sudo.cat sudo.man.in \
183	    sudo.mdoc.in sudo.pp sudo_usage.h.in sudoers.in sudoers.cat \
184	    sudoers.man.in sudoers.mdoc.in sudoers.ldap.cat \
185	    sudoers.ldap.man.in sudoers.ldap.mdoc.in sudoers2ldif \
186	    sudoreplay.cat sudoreplay.man.in sudoreplay.mdoc.in \
187	    visudo.cat visudo.man.in visudo.mdoc.in auth/API sudo.man.pl \
188	    sudoers.man.pl $(ZLIB_FILES)
189
190ZLIB_FILES = zlib/adler32.c zlib/compress.c zlib/crc32.c zlib/crc32.h \
191	     zlib/deflate.c zlib/deflate.h zlib/gzclose.c zlib/gzguts.h \
192	     zlib/gzlib.c zlib/gzread.c zlib/gzwrite.c zlib/infback.c \
193	     zlib/inffast.c zlib/inffast.h zlib/inffixed.h zlib/inflate.c \
194	     zlib/inflate.h zlib/inftrees.c zlib/inftrees.h zlib/trees.c \
195	     zlib/trees.h zlib/uncompr.c zlib/zconf.h.in zlib/zlib.h \
196	     zlib/zutil.c zlib/zutil.h
197
198SUDODEP = $(srcdir)/sudo.h $(srcdir)/alloc.h $(srcdir)/defaults.h \
199	  $(srcdir)/error.h $(srcdir)/list.h $(srcdir)/logging.h \
200	  $(srcdir)/missing.h $(srcdir)/sudo_nss.h $(devdir)/def_data.h \
201	  pathnames.h config.h
202
203AUTHDEP = $(SUDODEP) $(authdir)/sudo_auth.h
204
205INSDEP = $(srcdir)/ins_2001.h $(srcdir)/ins_classic.h $(srcdir)/ins_csops.h \
206	 $(srcdir)/ins_goons.h $(srcdir)/insults.h
207
208DOCS =	sudo.$(mantype) visudo.$(mantype) sudoers.$(mantype) \
209	sudoers.ldap.$(mantype) sudoers.$(mantype) \
210	sudoreplay.$(mantype)
211
212DEVDOCS = $(srcdir)/sudo.man.in $(srcdir)/sudo.cat \
213	  $(srcdir)/visudo.man.in $(srcdir)/visudo.cat \
214	  $(srcdir)/sudoers.man.in $(srcdir)/sudoers.cat \
215	  $(srcdir)/sudoers.ldap.man.in $(srcdir)/sudoers.ldap.cat \
216	  $(srcdir)/sudoers.man.in $(srcdir)/sudoers.cat \
217	  $(srcdir)/sudoreplay.man.in $(srcdir)/sudoreplay.cat
218
219all: $(PROGS) $(DEVDOCS) $(DOCS)
220
221.SUFFIXES: .o .c .h .l .y .lo
222
223.c.o:
224	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $<
225
226.c.lo:
227	$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $<
228
229libsudo.a: $(LIB_OBJS) $(COMMON_OBJS)
230	$(AR) rv $@ $(LIB_OBJS) $(COMMON_OBJS)
231	$(RANLIB) $@
232
233libz.a: $(ZLIB_OBJS)
234	$(AR) rv $@ $(ZLIB_OBJS)
235	$(RANLIB) $@
236
237sudo: libsudo.a @ZLIB_DEP@ $(SUDO_OBJS)
238	$(CC) -o $@ $(SUDO_OBJS) $(SUDO_LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) -lsudo $(SUDO_LIBS) @ZLIB@
239
240visudo: libsudo.a $(VISUDO_OBJS)
241	$(CC) -o $@ $(VISUDO_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) -lsudo $(LIBS) $(NET_LIBS)
242
243sudoreplay: libsudo.a @ZLIB_DEP@ $(REPLAY_OBJS)
244	$(CC) -o $@ $(REPLAY_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) -lsudo $(LIBS) @ZLIB@
245
246testsudoers: $(TEST_OBJS)
247	$(CC) -o $@ $(TEST_OBJS) $(LDFLAGS) $(PIE_LDFLAGS) $(SSP_LDFLAGS) -lsudo $(LIBS) $(NET_LIBS)
248
249sudo_noexec.lo: $(srcdir)/sudo_noexec.c
250	$(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/sudo_noexec.c
251
252libsudo_noexec.la: sudo_noexec.lo
253	$(LIBTOOL) --mode=link $(CC) $(LDFLAGS) -o $@ sudo_noexec.lo -avoid-version -rpath $(noexecdir)
254
255GENERATED = gram.h gram.c toke.c def_data.c def_data.h getdate.c
256
257$(devdir)/gram.c $(devdir)/gram.h: $(srcdir)/gram.y
258	@if [ -n "$(DEVEL)" ]; then \
259	    if test "$(srcdir)" = "."; then \
260		gram_y="gram.y"; \
261	    else \
262		gram_y="$(srcdir)/gram.y"; \
263	    fi; \
264	    cmd='$(YACC) -d '"$$gram_y"'; echo "#include <config.h>" > $(devdir)/gram.c; sed "s/^\\(#line .*\\) \"y\\.tab\\.c\"/\1 \"gram.c\"/" y.tab.c >> $(devdir)/gram.c; rm -f y.tab.c; mv -f y.tab.h $(devdir)/gram.h'; \
265	    echo "$$cmd"; eval $$cmd; \
266	fi
267
268$(devdir)/toke.c: $(srcdir)/toke.l
269	@if [ -n "$(DEVEL)" ]; then \
270	    if test "$(srcdir)" = "."; then \
271		toke_l="toke.l"; \
272	    else \
273		toke_l="$(srcdir)/toke.l"; \
274	    fi; \
275	    cmd='$(FLEX) '"$$toke_l"'; echo "#include <config.h>" > $(devdir)/toke.c; cat lex.yy.c >> $(devdir)/toke.c; rm -f lex.yy.c'; \
276	    echo "$$cmd"; eval $$cmd; \
277	fi
278
279$(devdir)/getdate.c: $(srcdir)/getdate.y
280	@if [ -n "$(DEVEL)" ]; then \
281	    echo "expect 10 shift/reduce conflicts"; \
282	    if test "$(srcdir)" = "."; then \
283		getdate_y="getdate.y"; \
284	    else \
285		getdate_y="$(srcdir)/getdate.y"; \
286	    fi; \
287	    cmd='$(YACC) '"$$getdate_y"'; echo "#include <config.h>" > $(devdir)/getdate.c; sed "s/^\\(#line .*\\) \"y\\.tab\\.c\"/\1 \"getdate.c\"/" y.tab.c >> $(devdir)/getdate.c; rm -f y.tab.c'; \
288	    echo "$$cmd"; eval $$cmd; \
289	fi
290
291$(devdir)/def_data.c $(devdir)/def_data.h: $(srcdir)/def_data.in
292	@if [ -n "$(DEVEL)" ]; then \
293	    cmd='$(PERL) $(srcdir)/mkdefaults -o $(devdir)/def_data $(srcdir)/def_data.in'; \
294	    echo "$$cmd"; eval $$cmd; \
295	fi
296
297siglist.c: mksiglist
298	./mksiglist > $@
299
300mksiglist: $(srcdir)/mksiglist.c $(srcdir)/mksiglist.h $(srcdir)/missing.h config.h
301	$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/mksiglist.c -o $@
302
303$(srcdir)/mksiglist.h: $(srcdir)/siglist.in
304	@if [ -n "$(DEVEL)" ]; then \
305	    awk 'BEGIN {print "/* public domain */\n"} /^    [A-Z]/ {printf("#ifdef SIG%s\n    if (sudo_sys_siglist[SIG%s] == NULL)\n\tsudo_sys_siglist[SIG%s] = \"%s\";\n#endif\n", $$1, $$1, $$1, substr($$0, 13))}' < $(srcdir)/siglist.in > $@; \
306	fi
307
308# Dependencies (not counting auth functions)
309aix.o: $(srcdir)/aix.c
310	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/aix.c
311alias.o: $(srcdir)/alias.c $(SUDODEP) $(srcdir)/parse.h $(srcdir)/list.h $(srcdir)/redblack.h
312	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/alias.c
313alloc.o: $(srcdir)/alloc.c $(SUDODEP)
314	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/alloc.c
315audit.o: $(srcdir)/audit.c $(SUDODEP) $(srcdir)/bsm_audit.h $(srcdir)/linux_audit.h
316	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/audit.c
317boottime.o: $(srcdir)/boottime.c config.h
318	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/boottime.c
319bsm_audit.o: $(srcdir)/bsm_audit.c $(SUDODEP) $(srcdir)/bsm_audit.h
320	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/bsm_audit.c
321check.o: $(srcdir)/check.c $(SUDODEP)
322	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/check.c
323closefrom.o: $(srcdir)/closefrom.c config.h
324	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/closefrom.c
325defaults.o: $(srcdir)/defaults.c $(SUDODEP) $(srcdir)/def_data.c $(authdir)/sudo_auth.h $(devdir)/gram.h
326	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/defaults.c
327env.o: $(srcdir)/env.c $(SUDODEP)
328	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/env.c
329error.o: $(srcdir)/error.c $(srcdir)/missing.h $(srcdir)/error.h config.h
330	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/error.c
331exec.o: $(srcdir)/exec.c $(SUDODEP) $(srcdir)/sudo_exec.h
332	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/exec.c
333exec_pty.o: $(srcdir)/exec.c $(SUDODEP) $(srcdir)/sudo_exec.h
334	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/exec_pty.c
335fileops.o: $(srcdir)/fileops.c $(SUDODEP)
336	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/fileops.c
337find_path.o: $(srcdir)/find_path.c $(SUDODEP)
338	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/find_path.c
339fnmatch.o: $(srcdir)/fnmatch.c $(srcdir)/emul/fnmatch.h $(srcdir)/missing.h config.h
340	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/fnmatch.c
341get_pty.o: $(srcdir)/get_pty.c $(SUDODEP)
342	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/get_pty.c
343getcwd.o: $(srcdir)/getcwd.c $(srcdir)/missing.h config.h
344	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/getcwd.c
345getdate.o: $(srcdir)/getdate.c $(srcdir)/missing.h config.h
346	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/getdate.c
347getline.o: $(srcdir)/getline.c config.h
348	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/getline.c
349getprogname.o: $(srcdir)/getprogname.c config.h
350	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/getprogname.c
351getspwuid.o: $(srcdir)/getspwuid.c $(SUDODEP)
352	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/getspwuid.c
353gettime.o: $(srcdir)/gettime.c $(SUDODEP)
354	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/gettime.c
355glob.o: $(srcdir)/glob.c $(srcdir)/emul/glob.h $(srcdir)/missing.h config.h
356	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/glob.c
357goodpath.o: $(srcdir)/goodpath.c $(SUDODEP)
358	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/goodpath.c
359gram.o: $(devdir)/gram.c $(SUDODEP) $(srcdir)/parse.h $(srcdir)/list.h $(devdir)/gram.h
360	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(devdir)/gram.c
361interfaces.o: $(srcdir)/interfaces.c $(SUDODEP) $(srcdir)/interfaces.h
362	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/interfaces.c
363iolog.o: $(srcdir)/iolog.c $(SUDODEP)
364	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/iolog.c
365isblank.o: $(srcdir)/isblank.c $(srcdir)/missing.h config.h
366	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/isblank.c
367lbuf.o: $(srcdir)/lbuf.c $(SUDODEP)
368	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/lbuf.c
369ldap.o: $(srcdir)/ldap.c $(SUDODEP) $(srcdir)/parse.h $(srcdir)/list.h
370	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/ldap.c
371linux_audit.o: $(srcdir)/linux_audit.c $(SUDODEP) $(srcdir)/linux_audit.h
372	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/linux_audit.c
373list.o: $(srcdir)/list.c $(SUDODEP)
374	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/list.c
375logging.o: $(srcdir)/logging.c $(SUDODEP)
376	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/logging.c
377logwrap.o: $(srcdir)/logwrap.c $(SUDODEP)
378	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/logwrap.c
379match.o: $(srcdir)/match.c $(SUDODEP) $(srcdir)/parse.h $(srcdir)/list.h $(srcdir)/interfaces.h $(devdir)/gram.h
380	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/match.c
381memrchr.o: $(srcdir)/memrchr.c $(SUDODEP)
382	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/memrchr.c
383mkstemps.o: $(srcdir)/mkstemps.c $(SUDODEP)
384	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/mkstemps.c
385nanosleep.o: $(srcdir)/nanosleep.c $(srcdir)/missing.h config.h
386	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/nanosleep.c
387parse.o: $(srcdir)/parse.c $(SUDODEP) $(srcdir)/parse.h $(srcdir)/list.h $(devdir)/gram.h
388	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/parse.c
389parse_args.o: $(srcdir)/parse_args.c $(SUDODEP)
390	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/parse_args.c
391pwutil.o: $(srcdir)/pwutil.c $(SUDODEP)
392	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/pwutil.c
393redblack.o: $(srcdir)/redblack.c $(SUDODEP) $(srcdir)/redblack.h
394	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/redblack.c
395secure_path.o: $(srcdir)/secure_path.c $(SUDODEP) $(srcdir)/secure_path.h
396	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/secure_path.c
397set_perms.o: $(srcdir)/set_perms.c $(SUDODEP)
398	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/set_perms.c
399setsid.o: $(srcdir)/setsid.c $(srcdir)/missing.h config.h
400	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/setsid.c
401sigaction.o: $(srcdir)/sigaction.c $(srcdir)/missing.h
402	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/sigaction.c
403siglist.o: siglist.c $(srcdir)/missing.h config.h
404	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/siglist.c
405snprintf.o: $(srcdir)/snprintf.c $(srcdir)/missing.h config.h
406	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/snprintf.c
407strcasecmp.o: $(srcdir)/strcasecmp.c $(srcdir)/missing.h  config.h
408	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/strcasecmp.c
409strerror.o: $(srcdir)/strerror.c $(srcdir)/missing.h config.h
410	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/strerror.c
411strlcat.o: $(srcdir)/strlcat.c $(srcdir)/missing.h config.h
412	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/strlcat.c
413strlcpy.o: $(srcdir)/strlcpy.c $(srcdir)/missing.h config.h
414	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/strlcpy.c
415strsignal.o: $(srcdir)/strsignal.c $(srcdir)/missing.h config.h
416	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/strsignal.c
417selinux.o: $(srcdir)/selinux.c $(SUDODEP)
418	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/selinux.c
419sudo.o: $(srcdir)/sudo.c $(SUDODEP) sudo_usage.h $(srcdir)/interfaces.h
420	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/sudo.c
421sudoreplay.o: $(srcdir)/sudoreplay.c $(srcdir)/alloc.h $(srcdir)/missing.h $(srcdir)/error.h $(srcdir)/missing.h config.h
422	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/sudoreplay.c
423sudo_edit.o: $(srcdir)/sudo_edit.c $(SUDODEP)
424	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/sudo_edit.c
425sudo_noexec.o: $(srcdir)/sudo_noexec.c $(srcdir)/missing.h config.h
426	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/sudo_noexec.c
427sudo_nss.o: $(srcdir)/sudo_nss.c $(SUDODEP)
428	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/sudo_nss.c
429term.o: $(srcdir)/term.c $(SUDODEP)
430	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/term.c
431testsudoers.o: $(srcdir)/testsudoers.c $(SUDODEP) $(srcdir)/parse.h $(srcdir)/list.h $(srcdir)/interfaces.h $(devdir)/gram.h
432	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/testsudoers.c
433tgetpass.o: $(srcdir)/tgetpass.c $(SUDODEP)
434	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/tgetpass.c
435ttyname.o: $(srcdir)/ttyname.c $(SUDODEP)
436	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/ttyname.c
437ttysize.o: $(srcdir)/ttysize.c $(SUDODEP)
438	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/ttysize.c
439timestr.o: $(srcdir)/timestr.c $(srcdir)/missing.h config.h
440	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/timestr.c
441toke.o: $(devdir)/toke.c $(SUDODEP) $(srcdir)/parse.h $(srcdir)/list.h $(srcdir)/toke.h $(devdir)/gram.h
442	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(devdir)/toke.c
443toke_util.o: $(srcdir)/toke_util.c $(SUDODEP) $(srcdir)/parse.h $(srcdir)/list.h $(srcdir)/toke.h $(devdir)/gram.h
444	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/toke_util.c
445tsgetgrpw.o: $(srcdir)/tsgetgrpw.c $(SUDODEP)
446	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/tsgetgrpw.c
447utimes.o: $(srcdir)/utimes.c $(srcdir)/missing.h $(srcdir)/emul/utime.h config.h
448	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/utimes.c
449vasgroups.o: $(srcdir)/vasgroups.c $(srcdir)/nonunix.h $(SUDODEP)
450	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/vasgroups.c
451visudo.o: $(srcdir)/visudo.c $(SUDODEP) $(devdir)/gram.h
452	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/visudo.c
453zero_bytes.o: $(srcdir)/zero_bytes.c $(srcdir)/missing.h config.h
454	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(srcdir)/zero_bytes.c
455sudo_auth.o: $(authdir)/sudo_auth.c $(AUTHDEP) $(INSDEP)
456	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/sudo_auth.c
457afs.o: $(authdir)/afs.c $(AUTHDEP)
458	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/afs.c
459aix_auth.o: $(authdir)/aix_auth.c $(AUTHDEP)
460	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/aix_auth.c
461bsdauth.o: $(authdir)/bsdauth.c $(AUTHDEP)
462	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/bsdauth.c
463dce.o: $(authdir)/dce.c $(AUTHDEP)
464	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/dce.c
465fwtk.o: $(authdir)/fwtk.c $(AUTHDEP)
466	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/fwtk.c
467kerb4.o: $(authdir)/kerb4.c $(AUTHDEP)
468	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/kerb4.c
469kerb5.o: $(authdir)/kerb5.c $(AUTHDEP)
470	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/kerb5.c
471pam.o: $(authdir)/pam.c $(AUTHDEP)
472	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/pam.c
473passwd.o: $(authdir)/passwd.c $(AUTHDEP)
474	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/passwd.c
475rfc1938.o: $(authdir)/rfc1938.c $(AUTHDEP)
476	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/rfc1938.c
477secureware.o: $(authdir)/secureware.c $(AUTHDEP)
478	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/secureware.c
479securid.o: $(authdir)/securid.c $(AUTHDEP)
480	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/securid.c
481securid5.o: $(authdir)/securid5.c $(AUTHDEP)
482	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/securid5.c
483sia.o: $(authdir)/sia.c $(AUTHDEP)
484	$(CC) -c $(CPPFLAGS) $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(DEFS) $(OPTIONS) $(authdir)/sia.c
485
486# Zlib dependencies
487adler32.o: $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h
488	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/adler32.c
489compress.o: $(srcdir)/zlib/zlib.h zlib/zconf.h
490	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/compress.c
491crc32.o: $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/crc32.h
492	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/crc32.c
493deflate.o: $(srcdir)/zlib/deflate.h $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h
494	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/deflate.c
495gzclose.o: $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/gzguts.h
496	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/gzclose.c
497gzlib.o: $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/gzguts.h
498	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/gzlib.c
499gzread.o: $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/gzguts.h
500	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/gzread.c
501gzwrite.o: $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/gzguts.h
502	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/gzwrite.c
503infback.o: $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/inftrees.h $(srcdir)/zlib/inflate.h $(srcdir)/zlib/inffast.h $(srcdir)/zlib/inffixed.h
504	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/infback.c
505inffast.o: $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/inftrees.h $(srcdir)/zlib/inflate.h $(srcdir)/zlib/inffast.h
506	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/inffast.c
507inflate.o: $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/inftrees.h $(srcdir)/zlib/inflate.h $(srcdir)/zlib/inffast.h $(srcdir)/zlib/inffixed.h
508	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/inflate.c
509inftrees.o: $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/inftrees.h
510	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/inftrees.c
511trees.o: $(srcdir)/zlib/deflate.h $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h $(srcdir)/zlib/trees.h
512	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/trees.c
513uncompr.o: $(srcdir)/zlib/zlib.h zlib/zconf.h
514	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/uncompr.c
515zutil.o: $(srcdir)/zlib/zutil.h $(srcdir)/zlib/zlib.h zlib/zconf.h
516	$(CC) -c -I. -I$(srcdir)/zlib $(CFLAGS) $(PIE_CFLAGS) $(SSP_CFLAGS) $(srcdir)/zlib/zutil.c
517
518varsub: $(srcdir)/configure.in
519	@if [ -n "$(DEVEL)" ]; then \
520	    printf 's#@%s@#1#\ns#@%s@#1#\ns#@%s@#1#\ns#@%s@#/etc#g\ns#@%s@#/usr/local#g\ns#@%s@#5#g\ns#@%s@#8#g\ns#@%s@#%s#\n' SEMAN BAMAN LCMAN sysconfdir prefix mansectform mansectsu PACKAGE_VERSION $(VERSION) > $@; \
521	    $(SED) -n '/Begin initial values for man page substitution/,/End initial values for man page substitution/{;p;}' $(srcdir)/configure.in | $(SED) -e '/^#/d' -e 's/^/s#@/' -e 's/=[\\"]*/@#/' -e 's/[\\"]*$$/#g/' >> $@; \
522	fi
523
524$(srcdir)/sudo.man.in: $(srcdir)/sudo.mdoc.in
525	@if [ -n "$(DEVEL)" ]; then \
526	    echo "Generating $@"; \
527	    mansectsu=`echo @MANSECTSU@|$(TR) A-Z a-z`; \
528	    mansectform=`echo @MANSECTFORM@|$(TR) A-Z a-z`; \
529	    printf '.\\" DO NOT EDIT THIS FILE, IT IS NOT THE MASTER!\n' > $@; \
530	    printf '.\\" IT IS GENERATED AUTOMATICALLY FROM sudo.mdoc.in\n' >> $@; \
531	    $(SED) -n -e '/^.Dd/q' -e '/^\.\\/p' $(srcdir)/sudo.mdoc.in >> $@; \
532	    $(SED) -e "s/$$mansectsu/8/g" -e "s/$$mansectform/5/g" $(srcdir)/sudo.mdoc.in | $(MANDOC) -Tman | $(SED) -e 's/^\(\.TH "SUDO" \)"8"\(.*"\)OpenBSD \(.*\)/\1"'$$mansectsu'"\2\3/' -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" >> $@; \
533	fi
534
535sudo.man.sed: $(srcdir)/fixman.sh
536	BAMAN=@BAMAN@ LCMAN=@LCMAN@ SEMAN=@SEMAN@ PSMAN=@PSMAN@ $(SHELL) $(srcdir)/fixman.sh $@
537
538sudo.man: $(srcdir)/sudo.man.in sudo.man.sed
539	(cd $(top_builddir) && $(SHELL) config.status --file=-) < $(srcdir)/$@.in | $(SED) -f $@.sed > $@
540
541sudo.mdoc.sed: $(srcdir)/fixmdoc.sh
542	BAMAN=@BAMAN@ LCMAN=@LCMAN@ SEMAN=@SEMAN@ PSMAN=@PSMAN@ $(SHELL) $(srcdir)/fixmdoc.sh $@
543
544sudo.mdoc: $(srcdir)/sudo.mdoc.in sudo.mdoc.sed
545	(cd $(top_builddir) && $(SHELL) config.status --file=-) < $(srcdir)/$@.in | $(SED) -f $@.sed > $@
546
547$(srcdir)/sudo.cat: varsub $(srcdir)/sudo.mdoc.in
548	@if [ -n "$(DEVEL)" ]; then \
549	    echo "Generating $@"; \
550	    $(SED) -f varsub $(srcdir)/sudo.mdoc.in | $(MANDOC) -mdoc | $(SED) -e 's/ OpenBSD \([^ ].*  \)/     \1    /' -e 's/(5)/(4)/g' -e 's/(8)/(1m)/g' > $@; \
551	fi
552
553sudo.cat: $(srcdir)/sudo.cat
554
555$(srcdir)/visudo.man.in: $(srcdir)/visudo.mdoc.in
556	@if [ -n "$(DEVEL)" ]; then \
557	    echo "Generating $@"; \
558	    mansectsu=`echo @MANSECTSU@|$(TR) A-Z a-z`; \
559	    mansectform=`echo @MANSECTFORM@|$(TR) A-Z a-z`; \
560	    printf '.\\" DO NOT EDIT THIS FILE, IT IS NOT THE MASTER!\n' > $@; \
561	    printf '.\\" IT IS GENERATED AUTOMATICALLY FROM visudo.mdoc.in\n' >> $@; \
562	    $(SED) -n -e '/^.Dd/q' -e '/^\.\\/p' $(srcdir)/visudo.mdoc.in >> $@; \
563	    $(SED) -e "s/$$mansectsu/8/g" -e "s/$$mansectform/5/g" $(srcdir)/visudo.mdoc.in | $(MANDOC) -Tman | $(SED) -e 's/^\(\.TH "VISUDO" \)"8"\(.*"\)OpenBSD \(.*\)/\1"'$$mansectsu'"\2\3/' -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" >> $@; \
564	fi
565
566visudo.man.sed: $(srcdir)/fixman.sh
567	$(SHELL) $(srcdir)/fixman.sh $@
568
569visudo.man: $(srcdir)/visudo.man.in visudo.man.sed
570	(cd $(top_builddir) && $(SHELL) config.status --file=-) < $(srcdir)/$@.in | $(SED) -f $@.sed > $@
571
572visudo.mdoc: $(srcdir)/visudo.mdoc.in
573	(cd $(top_builddir) && $(SHELL) config.status --file=$@)
574
575$(srcdir)/visudo.cat: varsub $(srcdir)/visudo.mdoc.in
576	@if [ -n "$(DEVEL)" ]; then \
577	    echo "Generating $@"; \
578	    $(SED) -f varsub $(srcdir)/visudo.mdoc.in | $(MANDOC) -mdoc | $(SED) -e 's/ OpenBSD \([^ ].*  \)/     \1    /' -e 's/(5)/(4)/g' -e 's/(8)/(1m)/g' > $@; \
579	fi
580
581visudo.cat: $(srcdir)/visudo.cat
582
583$(srcdir)/sudoers.man.in: $(srcdir)/sudoers.mdoc.in
584	@if [ -n "$(DEVEL)" ]; then \
585	    echo "Generating $@"; \
586	    mansectsu=`echo @MANSECTSU@|$(TR) A-Z a-z`; \
587	    mansectform=`echo @MANSECTFORM@|$(TR) A-Z a-z`; \
588	    printf '.\\" DO NOT EDIT THIS FILE, IT IS NOT THE MASTER!\n' > $@; \
589	    printf '.\\" IT IS GENERATED AUTOMATICALLY FROM sudoers.mdoc.in\n' >> $@; \
590	    $(SED) -n -e '/^.Dd/q' -e '/^\.\\/p' $(srcdir)/sudoers.mdoc.in >> $@; \
591	    $(SED) -e "s/$$mansectsu/8/g" -e "s/$$mansectform/5/g" $(srcdir)/sudoers.mdoc.in | $(MANDOC) -Tman | $(SED) -e 's/^\(\.TH "SUDOERS" \)"5"\(.*"\)OpenBSD \(.*\)/\1"'$$mansectsu'"\2\3/' -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" >> $@; \
592	fi
593
594sudoers.man.sed: $(srcdir)/fixman.sh
595	LCMAN=@LCMAN@ SEMAN=@SEMAN@ $(SHELL) $(srcdir)/fixman.sh $@
596
597sudoers.man: $(srcdir)/sudoers.man.in sudoers.man.sed
598	(cd $(top_builddir) && $(SHELL) config.status --file=-) < $(srcdir)/$@.in | $(SED) -f $@.sed > $@
599
600sudoers.mdoc.sed: $(srcdir)/fixmdoc.sh
601	LCMAN=@LCMAN@ SEMAN=@SEMAN@ $(SHELL) $(srcdir)/fixmdoc.sh $@
602
603sudoers.mdoc: $(srcdir)/sudoers.mdoc.in sudoers.mdoc.sed
604	(cd $(top_builddir) && $(SHELL) config.status --file=-) < $(srcdir)/$@.in | $(SED) -f $@.sed > $@
605
606$(srcdir)/sudoers.cat: varsub $(srcdir)/sudoers.mdoc.in
607	@if [ -n "$(DEVEL)" ]; then \
608	    echo "Generating $@"; \
609	    $(SED) -f varsub $(srcdir)/sudoers.mdoc.in | $(MANDOC) -mdoc | $(SED) -e 's/ OpenBSD \([^ ].*  \)/     \1    /' -e 's/(5)/(4)/g' -e 's/(8)/(1m)/g' > $@; \
610	fi
611
612sudoers.cat: $(srcdir)/sudoers.cat
613
614$(srcdir)/sudoers.ldap.man.in: $(srcdir)/sudoers.ldap.mdoc.in
615	@if [ -n "$(DEVEL)" ]; then \
616	    echo "Generating $@"; \
617	    mansectsu=`echo @MANSECTSU@|$(TR) A-Z a-z`; \
618	    mansectform=`echo @MANSECTFORM@|$(TR) A-Z a-z`; \
619	    printf '.\\" DO NOT EDIT THIS FILE, IT IS NOT THE MASTER!\n' > $@; \
620	    printf '.\\" IT IS GENERATED AUTOMATICALLY FROM sudoers.ldap.mdoc.in\n' >> $@; \
621	    $(SED) -n -e '/^.Dd/q' -e '/^\.\\/p' $(srcdir)/sudoers.ldap.mdoc.in >> $@; \
622	    $(SED) -e "s/$$mansectsu/8/g" -e "s/$$mansectform/5/g" $(srcdir)/sudoers.ldap.mdoc.in | $(MANDOC) -Tman | $(SED) -e 's/^\(\.TH "SUDOERS.LDAP" \)"5"\(.*"\)OpenBSD \(.*\)/\1"'$$mansectsu'"\2\3/' -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" >> $@; \
623	fi
624
625sudoers.ldap.man.sed: $(srcdir)/fixman.sh
626	$(SHELL) $(srcdir)/fixman.sh $@
627
628sudoers.ldap.man: $(srcdir)/sudoers.ldap.man.in sudoers.ldap.man.sed
629	(cd $(top_builddir) && $(SHELL) config.status --file=-) < $(srcdir)/$@.in | $(SED) -f $@.sed > $@
630
631sudoers.ldap.mdoc: $(srcdir)/sudoers.ldap.mdoc.in
632	(cd $(top_builddir) && $(SHELL) config.status --file=$@)
633
634$(srcdir)/sudoers.ldap.cat: varsub $(srcdir)/sudoers.ldap.mdoc.in
635	@if [ -n "$(DEVEL)" ]; then \
636	    echo "Generating $@"; \
637	    $(SED) -f varsub $(srcdir)/sudoers.ldap.mdoc.in | $(MANDOC) -mdoc | $(SED) -e 's/ OpenBSD \([^ ].*  \)/     \1    /' -e 's/(5)/(4)/g' -e 's/(8)/(1m)/g' > $@; \
638	fi
639
640sudoers.ldap.cat: $(srcdir)/sudoers.ldap.cat
641
642$(srcdir)/sudoreplay.man.in: $(srcdir)/sudoreplay.mdoc.in
643	@if [ -n "$(DEVEL)" ]; then \
644	    echo "Generating $@"; \
645	    mansectsu=`echo @MANSECTSU@|$(TR) A-Z a-z`; \
646	    mansectform=`echo @MANSECTFORM@|$(TR) A-Z a-z`; \
647	    printf '.\\" DO NOT EDIT THIS FILE, IT IS NOT THE MASTER!\n' > $@; \
648	    printf '.\\" IT IS GENERATED AUTOMATICALLY FROM sudoreplay.mdoc.in\n' >> $@; \
649	    $(SED) -n -e '/^.Dd/q' -e '/^\.\\/p' $(srcdir)/sudoreplay.mdoc.in >> $@; \
650	    $(SED) -e "s/$$mansectsu/8/g" -e "s/$$mansectform/5/g" $(srcdir)/sudoreplay.mdoc.in | $(MANDOC) -Tman | $(SED) -e 's/^\(\.TH "SUDOREPLAY" \)"8"\(.*"\)OpenBSD \(.*\)/\1"'$$mansectsu'"\2\3/' -e "s/(5)/($$mansectform)/g" -e "s/(8)/($$mansectsu)/g" >> $@; \
651	fi
652
653sudoreplay.man.sed: $(srcdir)/fixman.sh
654	$(SHELL) $(srcdir)/fixman.sh $@
655
656sudoreplay.man: $(srcdir)/sudoreplay.man.in sudoreplay.man.sed
657	(cd $(top_builddir) && $(SHELL) config.status --file=-) < $(srcdir)/$@.in | $(SED) -f $@.sed > $@
658
659sudoreplay.mdoc: $(srcdir)/sudoreplay.mdoc.in
660	(cd $(top_builddir) && $(SHELL) config.status --file=$@)
661
662$(srcdir)/sudoreplay.cat: varsub $(srcdir)/sudoreplay.mdoc.in
663	@if [ -n "$(DEVEL)" ]; then \
664	    echo "Generating $@"; \
665	    $(SED) -f varsub $(srcdir)/sudoreplay.mdoc.in | $(MANDOC) -mdoc | $(SED) -e 's/ OpenBSD \([^ ].*  \)/     \1    /' -e 's/(5)/(4)/g' -e 's/(8)/(1m)/g' > $@; \
666	fi
667
668sudoreplay.cat: $(srcdir)/sudoreplay.cat
669
670sudoers: $(srcdir)/sudoers.in
671	(cd $(top_builddir) && $(SHELL) config.status --file=$@)
672
673# The 1.7 branch started Jan 18, 2010
674ChangeLog:
675	if test -d $(srcdir)/.hg && cd $(srcdir); then \
676	    if hg log --style=changelog -b 1.7 > $@.tmp && hg log --style=changelog -b default --date '<2010-01-18 00:00:00' >> $@.tmp; then \
677		mv -f $@.tmp $@; \
678	    else \
679		rm -f $@.tmp; \
680	    fi; \
681	fi
682
683pre-install:
684	@if test -r $(DESTDIR)$(sudoersdir)/sudoers; then \
685	    echo "Checking existing sudoers file for syntax errors."; \
686	    ./visudo -c -f $(DESTDIR)$(sudoersdir)/sudoers; \
687	fi
688
689install: pre-install install-dirs install-binaries @INSTALL_NOEXEC@ install-sudoers install-doc
690
691install-dirs:
692	$(SHELL) $(srcdir)/mkinstalldirs $(DESTDIR)$(sudodir) \
693	    $(DESTDIR)$(visudodir) $(DESTDIR)$(noexecdir) \
694	    $(DESTDIR)$(sudoersdir) $(DESTDIR)$(docdir) \
695	    $(DESTDIR)$(mandirsu) $(DESTDIR)$(mandirform) \
696	    `echo $(DESTDIR)$(timedir)|sed 's,/[^/]*$$,,'`
697	$(INSTALL) -d -O $(install_uid) -G $(install_gid) -m 0700 $(DESTDIR)$(timedir)
698
699install-binaries: install-dirs $(PROGS)
700	if [ X"$$SUDO_PREINSTALL_CMD" != X"" ]; then exec $$SUDO_PREINSTALL_CMD sudo; fi
701	$(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 04755 sudo $(DESTDIR)$(sudodir)/sudo
702	rm -f $(DESTDIR)$(sudodir)/sudoedit
703	ln -s sudo $(DESTDIR)$(sudodir)/sudoedit
704	if [ -f sudoreplay ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -m 0755 sudoreplay $(DESTDIR)$(sudodir)/sudoreplay; fi
705	$(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -m 0755 visudo $(DESTDIR)$(visudodir)/visudo
706	if [ -f sesh ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -m 0755 sesh $(DESTDIR)$(libexecdir)/sesh; fi
707
708install-noexec: install-dirs libsudo_noexec.la
709	if [ -f .libs/lib$(noexecfile) ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -m $(shlib_mode) .libs/lib$(noexecfile) $(DESTDIR)$(noexecdir)/$(noexecfile); fi
710
711install-sudoers: install-dirs
712	$(INSTALL) -d -O $(sudoers_uid) -G $(sudoers_gid) -m 0750 \
713	    $(DESTDIR)$(sudoersdir)/sudoers.d
714	test -f $(DESTDIR)$(sudoersdir)/sudoers || \
715	    $(INSTALL) -O $(sudoers_uid) -G $(sudoers_gid) -m $(sudoers_mode) \
716		sudoers $(DESTDIR)$(sudoersdir)/sudoers
717
718install-doc: install-dirs ChangeLog
719	(cd $(srcdir) && for f in ChangeLog HISTORY LICENSE NEWS README TROUBLESHOOTING UPGRADE sample.*; do $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0644 $$f $(DESTDIR)$(docdir); done)
720	@LDAP@(cd $(srcdir) && for f in README.LDAP schema.* sudoers2ldif; do $(INSTALL) -O $(install_uid) -G $(install_gid) -m 0644 $$f $(DESTDIR)$(docdir); done)
721	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0644 @mansrcdir@/sudo.$(mantype) $(DESTDIR)$(mandirsu)/sudo.$(mansectsu)
722	@REPLAY@$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0644 @mansrcdir@/sudoreplay.$(mantype) $(DESTDIR)$(mandirsu)/sudoreplay.$(mansectsu)
723	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0644 @mansrcdir@/visudo.$(mantype) $(DESTDIR)$(mandirsu)/visudo.$(mansectsu)
724	$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0644 @mansrcdir@/sudoers.$(mantype) $(DESTDIR)$(mandirform)/sudoers.$(mansectform)
725	@LDAP@$(INSTALL) -O $(install_uid) -G $(install_gid) -m 0644 @mansrcdir@/sudoers.ldap.$(mantype) $(DESTDIR)$(mandirform)/sudoers.ldap.$(mansectform)
726	@if test -n "$(MANCOMPRESS)"; then \
727	    for f in $(mandirsu)/sudo.$(mansectsu) $(mandirsu)/sudoreplay.$(mansectsu) $(mandirsu)/visudo.$(mansectsu) $(mandirform)/sudoers.$(mansectform) $(mandirform)/sudoers.ldap.$(mansectform); do \
728		if test -f $(DESTDIR)$$f; then \
729		    echo $(MANCOMPRESS) -f $(DESTDIR)$$f; \
730		    $(MANCOMPRESS) -f $(DESTDIR)$$f; \
731		fi; \
732	    done; \
733	    rm -f $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu)$(MANCOMPRESSEXT); \
734	    echo ln -s sudo.$(mansectsu)$(MANCOMPRESSEXT) $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu)$(MANCOMPRESSEXT); \
735	    ln -s sudo.$(mansectsu)$(MANCOMPRESSEXT) $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu)$(MANCOMPRESSEXT); \
736	else \
737	    rm -f $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu); \
738	    echo ln -s sudo.$(mansectsu) $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu); \
739	    ln -s sudo.$(mansectsu) $(DESTDIR)$(mandirsu)/sudoedit.$(mansectsu); \
740	fi
741
742check:
743	@echo nothing to check
744
745clean:
746	-rm -f *.a *.o *.lo stamp-* varsub $(PROGS) testsudoers core *.core core.*
747
748mostlyclean: clean
749
750distclean: clean
751	-rm -rf Makefile pathnames.h config.h config.status config.cache \
752		config.log libtool sudoers sudo_noexec.lo .libs \
753		sudo.man sudoers.man sudoers.ldap.man sudoreplay.man \
754		visudo.man sudo_usage.h Makefile.binary zlib/zconf.h
755	@if [ -n "$(DEVEL)" -a "$(devdir)" != "$(srcdir)" ]; then \
756		cmd='rm -rf $(GENERATED)'; \
757		echo "$$cmd"; eval $$cmd; \
758	fi
759
760clobber: distclean
761
762realclean: distclean
763	rm -f TAGS tags
764
765cleandir: realclean
766
767dist: ChangeLog
768	pax -w -x ustar -s '/^/$(PACKAGE_TARNAME)-$(VERSION)\//' \
769	    -f ../$(PACKAGE_TARNAME)-$(VERSION).tar $(DISTFILES)
770	gzip -9f ../$(PACKAGE_TARNAME)-$(VERSION).tar
771	ls -l ../$(PACKAGE_TARNAME)-$(VERSION).tar.gz
772
773package: sudo.pp
774	DESTDIR=`cd $(top_builddir) && pwd`/destdir; rm -rf $$DESTDIR; \
775	$(MAKE) install DESTDIR=$$DESTDIR && \
776	$(SHELL) $(srcdir)/pp $(PPFLAGS) \
777	    --destdir=$$DESTDIR \
778	    $(srcdir)/sudo.pp \
779	    bindir=$(bindir) \
780	    sbindir=$(sbindir) \
781	    libexecdir=$(libexecdir) \
782	    timedir=$(timedir) \
783	    mandir=$(mandir) \
784	    docdir=$(docdir) \
785	    sysconfdir=$(sysconfdir) \
786	    sudoersdir=$(sudoersdir) \
787	    sudoers_uid=$(sudoers_uid) \
788	    sudoers_gid=$(sudoers_gid) \
789	    sudoers_mode=$(sudoers_mode) \
790	    shlib_mode=$(shlib_mode) \
791	    version=$(VERSION) $(PPVARS)
792
793me:
794
795a:
796
797sandwich:
798	@if test -n "$$SUDO_USER"; then \
799	    echo "Okay."; \
800	else \
801	    echo "What?  Make it yourself!"; \
802	fi
803
804.PHONY: ChangeLog me a sandwhich
805