patches from Simon Ruderich that broaden use of hardening build flags
[debian/sudo] / src / Makefile.in
1 #
2 # Copyright (c) 2011 Todd C. Miller <Todd.Miller@courtesan.com>
3 #
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.
7 #
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.
16 #
17 # @configure_input@
18 #
19
20 #### Start of system configuration section. ####
21
22 srcdir = @srcdir@
23 devdir = @devdir@
24 top_builddir = @top_builddir@
25 top_srcdir = @top_srcdir@
26 incdir = $(top_srcdir)/include
27
28 # Compiler & tools to use
29 CC = @CC@
30 LIBTOOL = @LIBTOOL@ @LT_STATIC@
31
32 # Our install program supports extra flags...
33 INSTALL = $(SHELL) $(top_srcdir)/install-sh -c
34
35 # Libraries
36 LT_LIBS = $(top_builddir)/common/libcommon.la $(LIBOBJDIR)libreplace.la
37 LIBS = @LIBS@ @SUDO_LIBS@ @GETGROUPS_LIB@ @NET_LIBS@ @LIBINTL@ $(LT_LIBS)
38
39 # C preprocessor flags
40 CPPFLAGS = -I$(incdir) -I$(top_builddir) -I$(srcdir) -I$(top_srcdir) -I. @CPPFLAGS@
41
42 # Usually -O and/or -g
43 CFLAGS = @CFLAGS@
44
45 # Flags to pass to the link stage
46 LDFLAGS = @LDFLAGS@
47 LTLDFLAGS = @LTLDFLAGS@
48
49 # Where to install things...
50 prefix = @prefix@
51 exec_prefix = @exec_prefix@
52 bindir = @bindir@
53 sbindir = @sbindir@
54 sysconfdir = @sysconfdir@
55 libexecdir = @libexecdir@
56 datarootdir = @datarootdir@
57 localedir = @localedir@
58 localstatedir = @localstatedir@
59 noexecfile = @NOEXECFILE@
60 noexecdir = @NOEXECDIR@
61
62 # User and group ids the installed files should be "owned" by
63 install_uid = 0
64 install_gid = 0
65
66 # OS dependent defines
67 DEFS = @OSDEFS@ -D_PATH_SUDO_CONF=\"$(sysconfdir)/sudo.conf\" \
68        -DLOCALEDIR=\"$(localedir)\" 
69
70 #### End of system configuration section. ####
71
72 SHELL = @SHELL@
73
74 PROGS = @PROGS@
75
76 OBJS = conversation.o error.o exec.o exec_pty.o get_pty.o net_ifs.o \
77        load_plugins.o parse_args.o sudo.o sudo_edit.o tgetpass.o \
78        ttysize.o utmp.o @SUDO_OBJS@
79
80 LIBOBJDIR = $(top_builddir)/@ac_config_libobj_dir@/
81
82 VERSION = @PACKAGE_VERSION@
83
84 all: $(PROGS)
85
86 Makefile: $(srcdir)/Makefile.in
87         (cd $(top_builddir) && ./config.status --file src/Makefile)
88
89 .SUFFIXES: .c .h .lo .o
90
91 .c.o:
92         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $<
93
94 .c.lo:
95         $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $<
96
97 sudo: $(OBJS) $(LT_LIBS)
98         $(LIBTOOL) --mode=link $(CC) -o $@ $(OBJS) $(LDFLAGS) $(LIBS) -static-libtool-libs
99
100 libsudo_noexec.la: sudo_noexec.lo
101         $(LIBTOOL) --mode=link $(CC) $(LDFLAGS) $(LTLDFLAGS) -o $@ sudo_noexec.lo -avoid-version -rpath $(noexecdir)
102
103 sesh: sesh.o
104         $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ sesh.o
105
106 pre-install:
107
108 install: install-dirs install-binaries @INSTALL_NOEXEC@
109
110 install-dirs:
111         $(SHELL) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(bindir) \
112             $(DESTDIR)$(noexecdir)
113
114 install-binaries: install-dirs $(PROGS)
115         $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 04111 sudo $(DESTDIR)$(bindir)/sudo
116         rm -f $(DESTDIR)$(bindir)/sudoedit
117         ln $(DESTDIR)$(bindir)/sudo $(DESTDIR)$(bindir)/sudoedit
118         if [ -f sesh ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 0111 sesh $(DESTDIR)$(libexecdir)/sesh; fi
119
120 install-doc:
121
122 install-includes:
123
124 # We install sudo_noexec by hand so we can avoid a "lib" prefix
125 # and a version number.  Since we use LD_PRELOAD, neither is needed.
126 install-noexec: install-dirs libsudo_noexec.la
127         if [ -f .libs/lib$(noexecfile) ]; then $(INSTALL) -b~ -O $(install_uid) -G $(install_gid) -M 0755 .libs/lib$(noexecfile) $(DESTDIR)$(noexecdir)/$(noexecfile); fi
128
129 install-plugin:
130
131 uninstall:
132         -rm -f  $(DESTDIR)$(bindir)/sudo $(DESTDIR)$(bindir)/sudoedit \
133                 $(DESTDIR)$(libexecdir)/sesh \
134                 $(DESTDIR)$(noexecdir)/$(noexecfile) \
135
136 check:
137
138 clean:
139         -$(LIBTOOL) --mode=clean rm -f $(PROGS) *.lo *.o *.la *.a stamp-* core *.core core.*
140
141 mostlyclean: clean
142
143 distclean: clean
144         -rm -rf Makefile .libs sudo_usage.h
145
146 clobber: distclean
147
148 realclean: distclean
149         rm -f TAGS tags
150
151 cleandir: realclean
152
153 # Autogenerated dependencies, do not modify
154 conversation.o: $(srcdir)/conversation.c $(top_builddir)/config.h \
155                 $(srcdir)/sudo.h $(top_builddir)/pathnames.h \
156                 $(incdir)/missing.h $(incdir)/alloc.h $(incdir)/error.h \
157                 $(incdir)/fileops.h $(incdir)/list.h $(incdir)/gettext.h \
158                 $(incdir)/sudo_plugin.h
159         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/conversation.c
160 error.o: $(srcdir)/error.c $(top_builddir)/config.h $(incdir)/missing.h \
161          $(incdir)/error.h $(incdir)/gettext.h
162         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/error.c
163 exec.o: $(srcdir)/exec.c $(top_builddir)/config.h $(srcdir)/sudo.h \
164         $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/alloc.h \
165         $(incdir)/error.h $(incdir)/fileops.h $(incdir)/list.h \
166         $(incdir)/gettext.h $(srcdir)/sudo_exec.h $(incdir)/sudo_plugin.h \
167         $(srcdir)/sudo_plugin_int.h
168         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/exec.c
169 exec_pty.o: $(srcdir)/exec_pty.c $(top_builddir)/config.h $(srcdir)/sudo.h \
170             $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/alloc.h \
171             $(incdir)/error.h $(incdir)/fileops.h $(incdir)/list.h \
172             $(incdir)/gettext.h $(srcdir)/sudo_exec.h $(incdir)/sudo_plugin.h \
173             $(srcdir)/sudo_plugin_int.h
174         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/exec_pty.c
175 get_pty.o: $(srcdir)/get_pty.c $(top_builddir)/config.h $(srcdir)/sudo.h \
176            $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/alloc.h \
177            $(incdir)/error.h $(incdir)/fileops.h $(incdir)/list.h \
178            $(incdir)/gettext.h
179         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/get_pty.c
180 load_plugins.o: $(srcdir)/load_plugins.c $(top_builddir)/config.h \
181                 $(top_srcdir)/compat/dlfcn.h $(srcdir)/sudo.h \
182                 $(top_builddir)/pathnames.h $(incdir)/missing.h \
183                 $(incdir)/alloc.h $(incdir)/error.h $(incdir)/fileops.h \
184                 $(incdir)/list.h $(incdir)/gettext.h $(incdir)/sudo_plugin.h \
185                 $(srcdir)/sudo_plugin_int.h
186         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/load_plugins.c
187 net_ifs.o: $(srcdir)/net_ifs.c $(top_builddir)/config.h $(incdir)/missing.h \
188            $(incdir)/alloc.h $(incdir)/error.h $(incdir)/gettext.h
189         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/net_ifs.c
190 parse_args.o: $(srcdir)/parse_args.c $(top_builddir)/config.h ./sudo_usage.h \
191               $(srcdir)/sudo.h $(top_builddir)/pathnames.h $(incdir)/missing.h \
192               $(incdir)/alloc.h $(incdir)/error.h $(incdir)/fileops.h \
193               $(incdir)/list.h $(incdir)/gettext.h $(incdir)/lbuf.h
194         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/parse_args.c
195 preload.o: $(srcdir)/preload.c $(top_builddir)/config.h $(incdir)/sudo_plugin.h
196         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/preload.c
197 selinux.o: $(srcdir)/selinux.c $(top_builddir)/config.h $(srcdir)/sudo.h \
198            $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/alloc.h \
199            $(incdir)/error.h $(incdir)/fileops.h $(incdir)/list.h \
200            $(incdir)/gettext.h
201         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/selinux.c
202 sesh.o: $(srcdir)/sesh.c $(top_builddir)/config.h $(incdir)/missing.h \
203         $(incdir)/gettext.h
204         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sesh.c
205 sudo.o: $(srcdir)/sudo.c $(top_builddir)/config.h $(srcdir)/sudo.h \
206         $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/alloc.h \
207         $(incdir)/error.h $(incdir)/fileops.h $(incdir)/list.h \
208         $(incdir)/gettext.h $(incdir)/sudo_plugin.h \
209         $(srcdir)/sudo_plugin_int.h ./sudo_usage.h
210         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sudo.c
211 sudo_edit.o: $(srcdir)/sudo_edit.c $(top_builddir)/config.h $(srcdir)/sudo.h \
212              $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/alloc.h \
213              $(incdir)/error.h $(incdir)/fileops.h $(incdir)/list.h \
214              $(incdir)/gettext.h
215         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sudo_edit.c
216 sudo_noexec.lo: $(srcdir)/sudo_noexec.c $(top_builddir)/config.h \
217                 $(incdir)/missing.h
218         $(LIBTOOL) --mode=compile $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/sudo_noexec.c
219 tgetpass.o: $(srcdir)/tgetpass.c $(top_builddir)/config.h $(srcdir)/sudo.h \
220             $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/alloc.h \
221             $(incdir)/error.h $(incdir)/fileops.h $(incdir)/list.h \
222             $(incdir)/gettext.h
223         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/tgetpass.c
224 ttysize.o: $(srcdir)/ttysize.c $(top_builddir)/config.h $(incdir)/missing.h
225         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/ttysize.c
226 utmp.o: $(srcdir)/utmp.c $(top_builddir)/config.h $(srcdir)/sudo.h \
227         $(top_builddir)/pathnames.h $(incdir)/missing.h $(incdir)/alloc.h \
228         $(incdir)/error.h $(incdir)/fileops.h $(incdir)/list.h \
229         $(incdir)/gettext.h $(srcdir)/sudo_exec.h
230         $(CC) -c $(CPPFLAGS) $(CFLAGS) $(DEFS) $(srcdir)/utmp.c