2a37b303863ead6ebb0d78f57815cc19d8788489
[debian/sudo] / debian / rules
1 #!/usr/bin/make -f
2
3 export DH_VERBOSE=1
4
5 CFLAGS = `dpkg-buildflags --get CFLAGS`
6 CFLAGS += -Wall -Wno-comment
7 LDFLAGS = `dpkg-buildflags --get LDFLAGS`
8 CPPFLAGS = `dpkg-buildflags --get CPPFLAGS`
9
10 DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
11 ifeq ($(DEB_HOST_ARCH_OS),linux)
12   configure_args += --with-selinux
13 endif
14
15 reconf-stamp:
16         cp -f /usr/share/misc/config.sub config.sub
17         cp -f /usr/share/misc/config.guess config.guess
18         autoreconf -v
19         touch $@
20
21 configure: configure-stamp
22 configure-stamp: reconf-stamp
23         dh_testdir
24         cp -f /usr/share/misc/config.sub config.sub
25         cp -f /usr/share/misc/config.guess config.guess
26
27         # simple version
28         mkdir -p build-simple
29         cd build-simple && NROFFPROG=/usr/bin/nroff CFLAGS="$(CFLAGS)" \
30             CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" $(CURDIR)/configure \
31                 --prefix=/usr -v \
32                 --with-all-insults \
33                 --with-pam \
34                 --with-fqdn \
35                 --with-logging=syslog \
36                 --with-logfac=authpriv \
37                 --with-env-editor \
38                 --with-editor=/usr/bin/editor \
39                 --with-timeout=15 \
40                 --with-password-timeout=0 \
41                 --with-passprompt="[sudo] password for %p: " \
42                 --disable-root-mailer \
43                 --with-sendmail=/usr/sbin/sendmail \
44                 --with-timedir=/var/lib/sudo \
45                 --mandir=/usr/share/man \
46                 --libexecdir=/usr/lib/sudo \
47                 $(configure_args)
48
49         # LDAP version
50         mkdir -p build-ldap
51         cd build-ldap && NROFFPROG=/usr/bin/nroff CFLAGS="$(CFLAGS)" \
52             CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" $(CURDIR)/configure \
53                 --prefix=/usr -v \
54                 --with-all-insults \
55                 --with-pam \
56                 --with-ldap \
57                 --with-fqdn \
58                 --with-logging=syslog \
59                 --with-logfac=authpriv \
60                 --with-env-editor \
61                 --with-editor=/usr/bin/editor \
62                 --with-timeout=15 \
63                 --with-password-timeout=0 \
64                 --with-passprompt="[sudo] password for %p: " \
65                 --disable-root-mailer \
66                 --disable-setresuid \
67                 --with-sendmail=/usr/sbin/sendmail \
68                 --with-ldap-conf-file=/etc/sudo-ldap.conf \
69                 --mandir=/usr/share/man \
70                 --libexecdir=/usr/lib/sudo \
71                 --with-secure-path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
72
73         touch configure-stamp
74
75 build: build-arch build-indep
76 build-arch: build-stamp
77 build-indep: build-stamp
78 build-stamp: configure-stamp
79         dh_testdir
80
81         # ensure our pod changes get picked up
82         $(MAKE) -C doc sudoers.man.in sudo.man.in visudo.man.in
83
84         $(MAKE) -C build-simple
85         $(MAKE) -C build-ldap
86
87         $(MAKE) -C build-simple check
88
89         touch build-stamp
90
91 clean:
92         dh_testdir
93         dh_testroot
94         rm -f configure-stamp build-stamp
95         rm -rf build-simple build-ldap
96         rm -f config.cache
97         dh_clean
98
99 install: build-stamp
100         dh_testdir
101         dh_testroot
102         dh_prep
103         dh_installdirs
104
105         $(MAKE) -C build-simple install DESTDIR=$(CURDIR)/debian/sudo
106         $(MAKE) -C build-ldap   install DESTDIR=$(CURDIR)/debian/sudo-ldap
107
108         # remove stuff we don't want
109         rm -f   debian/sudo*/etc/sudoers \
110                 debian/sudo*/usr/share/doc/sudo/LICENSE* \
111                 debian/sudo*/usr/share/doc/sudo/ChangeLog
112
113         # move upstream-installed docs to the right place for ldap package
114         mv      debian/sudo-ldap/usr/share/doc/sudo/* \
115                 debian/sudo-ldap/usr/share/doc/sudo-ldap/
116         rmdir   debian/sudo-ldap/usr/share/doc/sudo
117
118         # move sample files to the examples folder
119         mv      debian/sudo/usr/share/doc/sudo/sample.* \
120                 debian/sudo/usr/share/doc/sudo/examples/
121         mv      debian/sudo-ldap/usr/share/doc/sudo-ldap/sample.* \
122                 debian/sudo-ldap/usr/share/doc/sudo-ldap/examples/
123
124         # and install things we do want that make install doesn't know about
125         install -o root -g root -m 0644 debian/sudo.pam \
126                 debian/sudo/etc/pam.d/sudo
127         install -o root -g root -m 0644 debian/sudo.pam \
128                 debian/sudo-ldap/etc/pam.d/sudo
129
130         install -o root -g root -m 0644 debian/sudo.lintian \
131                 debian/sudo/usr/share/lintian/overrides/sudo
132         install -o root -g root -m 0644 debian/sudo-ldap.lintian \
133                 debian/sudo-ldap/usr/share/lintian/overrides/sudo-ldap
134
135         install -o root -g root -m 0440 debian/sudoers \
136                 debian/sudo/etc/sudoers
137         install -o root -g root -m 0440 debian/sudoers \
138                 debian/sudo-ldap/etc/sudoers
139
140         install -o root -g root -m 0440 debian/README \
141                 debian/sudo/etc/sudoers.d/README
142         install -o root -g root -m 0440 debian/README \
143                 debian/sudo-ldap/etc/sudoers.d/README
144
145         install -o root -g root -m 0644 debian/sudo.service \
146                 debian/sudo/lib/systemd/system/sudo.service
147         install -o root -g root -m 0644 debian/sudo.service \
148                 debian/sudo-ldap/lib/systemd/system/sudo.service
149
150 binary-indep: build install
151
152 binary-arch: build install
153         dh_testdir
154         dh_testroot
155         dh_installdocs -A
156         dh_installinit -psudo -psudo-ldap --name=sudo
157         dh_installman -A
158         dh_installinfo -A
159         dh_installchangelogs ChangeLog 
160         dh_strip
161         dh_compress
162         dh_fixperms
163         chown root.root debian/sudo/usr/bin/sudo debian/sudo-ldap/usr/bin/sudo
164         chmod 4755 debian/sudo/usr/bin/sudo debian/sudo-ldap/usr/bin/sudo
165         chmod 0440      debian/sudo/etc/sudoers.d/README \
166                         debian/sudo-ldap/etc/sudoers.d/README
167         dh_installdeb
168         dh_shlibdeps
169         dh_gencontrol
170         dh_md5sums
171         dh_builddeb
172
173 binary: binary-indep binary-arch
174 .PHONY: configure build-indep build-arch build clean binary-indep binary-arch binary install