2 # Copyright (c) 2011 Todd C. Miller <Todd.Miller@courtesan.com>
4 # Permission to use, copy, modify, and distribute this software for any
5 # purpose with or without fee is hereby granted, provided that the above
6 # copyright notice and this permission notice appear in all copies.
8 # THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 # WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 # MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 # ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 # WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20 #### Start of system configuration section. ####
24 top_builddir = @top_builddir@
25 top_srcdir = @top_srcdir@
26 incdir = $(top_srcdir)/include
28 # Compiler & tools to use
30 LIBTOOL = @LIBTOOL@ @LT_STATIC@
32 # Our install program supports extra flags...
33 INSTALL = $(SHELL) $(top_srcdir)/install-sh -c
36 LT_LIBS = $(top_builddir)/common/libcommon.la $(LIBOBJDIR)libreplace.la
37 LIBS = @LIBS@ @SUDO_LIBS@ @GETGROUPS_LIB@ @NET_LIBS@ @LIBINTL@ $(LT_LIBS)
39 # C preprocessor flags
40 CPPFLAGS = -I$(incdir) -I$(top_builddir) -I$(srcdir) -I$(top_srcdir) -I. @CPPFLAGS@
42 # Usually -O and/or -g
45 # Flags to pass to the link stage
47 LTLDFLAGS = @LTLDFLAGS@
49 # Where to install things...
51 exec_prefix = @exec_prefix@
54 sysconfdir = @sysconfdir@
55 libexecdir = @libexecdir@
56 datarootdir = @datarootdir@
57 localedir = @localedir@
58 localstatedir = @localstatedir@
59 noexecfile = @NOEXECFILE@
60 noexecdir = @NOEXECDIR@
62 # User and group ids the installed files should be "owned" by
66 # OS dependent defines
67 DEFS = @OSDEFS@ -DLOCALEDIR=\"$(localedir)\"
69 #### End of system configuration section. ####
75 OBJS = conversation.o env_hooks.o error.o exec.o exec_common.o exec_pty.o \
76 get_pty.o hooks.o net_ifs.o load_plugins.o parse_args.o sudo.o \
77 sudo_edit.o tgetpass.o ttyname.o utmp.o @SUDO_OBJS@
79 LIBOBJDIR = $(top_builddir)/@ac_config_libobj_dir@/
81 VERSION = @PACKAGE_VERSION@
85 Makefile: $(srcdir)/Makefile.in
86 (cd $(top_builddir) && ./config.status --file src/Makefile)
88 .SUFFIXES: .c .h .lo .o
91 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $<
94 $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $<
96 sudo: $(OBJS) $(LT_LIBS)
97 $(LIBTOOL) --mode=link $(CC) -o $@ $(OBJS) $(LDFLAGS) $(LIBS)
99 libsudo_noexec.la: sudo_noexec.lo
100 $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(LTLDFLAGS) -o $@ sudo_noexec.lo -avoid-version -rpath $(noexecdir)
102 sesh: sesh.o error.o exec_common.o @LIBINTL@ $(LT_LIBS)
103 $(LIBTOOL) --mode=link $(CC) -o $@ sesh.o error.o exec_common.o $(LDFLAGS) @LIBINTL@ $(LIBS)
107 install: install-binaries @INSTALL_NOEXEC@
110 $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir) \
111 $(DESTDIR)$(noexecdir)
113 install-binaries: install-dirs $(PROGS)
114 $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 04111 sudo $(DESTDIR)$(bindir)/sudo
115 rm -f $(DESTDIR)$(bindir)/sudoedit
116 ln $(DESTDIR)$(bindir)/sudo $(DESTDIR)$(bindir)/sudoedit
117 if [ -f sesh ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 0111 sesh $(DESTDIR)$(libexecdir)/sesh; fi
123 # We install sudo_noexec by hand so we can avoid a "lib" prefix
124 # and a version number. Since we use LD_PRELOAD, neither is needed.
125 install-noexec: install-dirs libsudo_noexec.la
126 if [ -f .libs/lib$(noexecfile) ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -m 0755 .libs/lib$(noexecfile) $(DESTDIR)$(noexecdir)/$(noexecfile); fi
131 -rm -f $(DESTDIR)$(bindir)/sudo $(DESTDIR)$(bindir)/sudoedit \
132 $(DESTDIR)$(libexecdir)/sesh \
133 $(DESTDIR)$(noexecdir)/$(noexecfile) \
138 -$(LIBTOOL) --mode=clean rm -f $(PROGS) *.lo *.o *.la *.a stamp-* core *.core core.*
143 -rm -rf Makefile .libs sudo_usage.h
152 # Autogenerated dependencies, do not modify
153 conversation.o: $(srcdir)/conversation.c $(top_builddir)/config.h \
154 $(srcdir)/sudo.h $(top_builddir)/pathnames.h \
155 $(top_srcdir)/compat/stdbool.h $(incdir)/missing.h \
156 $(incdir)/alloc.h $(incdir)/error.h $(incdir)/fileops.h \
157 $(incdir)/list.h $(incdir)/sudo_conf.h $(incdir)/list.h \
158 $(incdir)/sudo_debug.h $(incdir)/gettext.h \
159 $(incdir)/sudo_plugin.h $(srcdir)/sudo_plugin_int.h
160 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/conversation.c
161 env_hooks.o: $(srcdir)/env_hooks.c $(top_builddir)/config.h \
162 $(top_srcdir)/compat/dlfcn.h $(srcdir)/sudo.h \
163 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
164 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
165 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
166 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h \
167 $(incdir)/sudo_plugin.h
168 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/env_hooks.c
169 error.o: $(srcdir)/error.c $(top_builddir)/config.h $(incdir)/missing.h \
170 $(incdir)/error.h $(incdir)/gettext.h
171 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/error.c
172 exec.o: $(srcdir)/exec.c $(top_builddir)/config.h $(srcdir)/sudo.h \
173 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
174 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
175 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
176 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h \
177 $(srcdir)/sudo_exec.h $(incdir)/sudo_plugin.h \
178 $(srcdir)/sudo_plugin_int.h
179 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/exec.c
180 exec_common.o: $(srcdir)/exec_common.c $(top_builddir)/config.h \
181 $(srcdir)/sudo.h $(top_builddir)/pathnames.h \
182 $(top_srcdir)/compat/stdbool.h $(incdir)/missing.h \
183 $(incdir)/alloc.h $(incdir)/error.h $(incdir)/fileops.h \
184 $(incdir)/list.h $(incdir)/sudo_conf.h $(incdir)/list.h \
185 $(incdir)/sudo_debug.h $(incdir)/gettext.h $(srcdir)/sudo_exec.h
186 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/exec_common.c
187 exec_pty.o: $(srcdir)/exec_pty.c $(top_builddir)/config.h $(srcdir)/sudo.h \
188 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
189 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
190 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
191 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h \
192 $(srcdir)/sudo_exec.h $(incdir)/sudo_plugin.h \
193 $(srcdir)/sudo_plugin_int.h
194 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/exec_pty.c
195 get_pty.o: $(srcdir)/get_pty.c $(top_builddir)/config.h $(srcdir)/sudo.h \
196 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
197 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
198 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
199 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h
200 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/get_pty.c
201 hooks.o: $(srcdir)/hooks.c $(top_builddir)/config.h $(srcdir)/sudo.h \
202 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
203 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
204 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
205 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h \
206 $(incdir)/sudo_plugin.h $(srcdir)/sudo_plugin_int.h \
207 $(incdir)/sudo_debug.h
208 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/hooks.c
209 load_plugins.o: $(srcdir)/load_plugins.c $(top_builddir)/config.h \
210 $(top_srcdir)/compat/dlfcn.h $(srcdir)/sudo.h \
211 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
212 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
213 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
214 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h \
215 $(incdir)/sudo_plugin.h $(srcdir)/sudo_plugin_int.h \
216 $(incdir)/sudo_conf.h $(incdir)/list.h $(incdir)/sudo_debug.h
217 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/load_plugins.c
218 net_ifs.o: $(srcdir)/net_ifs.c $(top_builddir)/config.h $(incdir)/missing.h \
219 $(incdir)/alloc.h $(incdir)/error.h $(incdir)/sudo_debug.h \
221 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/net_ifs.c
222 parse_args.o: $(srcdir)/parse_args.c $(top_builddir)/config.h ./sudo_usage.h \
223 $(srcdir)/sudo.h $(top_builddir)/pathnames.h \
224 $(top_srcdir)/compat/stdbool.h $(incdir)/missing.h \
225 $(incdir)/alloc.h $(incdir)/error.h $(incdir)/fileops.h \
226 $(incdir)/list.h $(incdir)/sudo_conf.h $(incdir)/list.h \
227 $(incdir)/sudo_debug.h $(incdir)/gettext.h $(incdir)/lbuf.h
228 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/parse_args.c
229 preload.o: $(srcdir)/preload.c $(top_builddir)/config.h $(incdir)/sudo_plugin.h
230 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/preload.c
231 selinux.o: $(srcdir)/selinux.c $(top_builddir)/config.h $(srcdir)/sudo.h \
232 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
233 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
234 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
235 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h \
236 $(srcdir)/sudo_exec.h
237 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/selinux.c
238 sesh.o: $(srcdir)/sesh.c $(top_builddir)/config.h \
239 $(top_srcdir)/compat/stdbool.h $(incdir)/missing.h $(incdir)/alloc.h \
240 $(incdir)/error.h $(incdir)/gettext.h $(incdir)/sudo_conf.h \
241 $(incdir)/list.h $(incdir)/sudo_debug.h $(srcdir)/sudo_exec.h \
242 $(incdir)/sudo_plugin.h
243 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sesh.c
244 sudo.o: $(srcdir)/sudo.c $(top_builddir)/config.h $(srcdir)/sudo.h \
245 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
246 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
247 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
248 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h \
249 $(incdir)/sudo_plugin.h $(srcdir)/sudo_plugin_int.h ./sudo_usage.h
250 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sudo.c
251 sudo_edit.o: $(srcdir)/sudo_edit.c $(top_builddir)/config.h $(srcdir)/sudo.h \
252 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
253 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
254 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
255 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h
256 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sudo_edit.c
257 sudo_noexec.lo: $(srcdir)/sudo_noexec.c $(top_builddir)/config.h \
259 $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sudo_noexec.c
260 tgetpass.o: $(srcdir)/tgetpass.c $(top_builddir)/config.h $(srcdir)/sudo.h \
261 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
262 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
263 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
264 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h
265 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/tgetpass.c
266 ttyname.o: $(srcdir)/ttyname.c $(top_builddir)/config.h $(srcdir)/sudo.h \
267 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
268 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
269 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
270 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h
271 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/ttyname.c
272 utmp.o: $(srcdir)/utmp.c $(top_builddir)/config.h $(srcdir)/sudo.h \
273 $(top_builddir)/pathnames.h $(top_srcdir)/compat/stdbool.h \
274 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
275 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/sudo_conf.h \
276 $(incdir)/list.h $(incdir)/sudo_debug.h $(incdir)/gettext.h \
277 $(srcdir)/sudo_exec.h
278 $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/utmp.c