1#!/usr/bin/make -f 2# 3# Important modifications (introduction of a saved config.cache to 4# solve build problems) introduced in Samba 2.2.1a-5. These 5# modification were made by Steve Langasek <vorlon@netexpress.net>. 6# 7# config.cache *DISABLED* to solve problems caused incorrect settings 8# --SSS 9# 10# 11 12# Uncomment this to turn on verbose mode. 13#export DH_VERBOSE=1 14 15# This is the debhelper compatability version to use. 16export DH_COMPAT=4 17 18# This has to be exported to make some magic below work. 19export DH_OPTIONS 20 21# Set the host and build architectures for use with config.cache loading, 22# cross-building, etc. 23DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) 24DEB_BUILD_GNU_TYPE := $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) 25DEB_HOST_GNU_SYSTEM := $(shell dpkg-architecture -qDEB_HOST_GNU_SYSTEM) 26DEB_BUILD_GNU_SYSTEM := $(shell dpkg-architecture -qDEB_BUILD_GNU_SYSTEM) 27 28export DEB_HOST_GNU_TYPE 29export DEB_BUILD_GNU_TYPE 30export DEB_HOST_GNU_SYSTEM 31export DEB_BUILD_GNU_SYSTEM 32 33# Support the DEB_BUILD_OPTIONS variable 34CFLAGS = -gstabs -Wall 35INSTALL = install 36 37ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) 38 CFLAGS += -O0 39else 40 CFLAGS += -O2 41endif 42 43ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) 44 INSTALL += -s 45endif 46 47 48DESTDIR=`pwd`/debian/tmp 49 50conf_args = \ 51 --with-fhs \ 52 --enable-shared \ 53 --enable-static \ 54 --prefix=/usr \ 55 --sysconfdir=/etc \ 56 --libdir=/etc/samba \ 57 --with-privatedir=/etc/samba \ 58 --with-piddir=/var/run/samba \ 59 --localstatedir=/var \ 60 --with-netatalk \ 61 --with-pam \ 62 --with-syslog \ 63 --with-utmp \ 64 --with-readline \ 65 --with-pam_smbpass \ 66 --with-libsmbclient \ 67 --with-winbind \ 68 --with-msdfs \ 69 --with-automount \ 70 --with-tdbsam \ 71 --with-ldap \ 72 --with-shared-modules=idmap_ad,idmap_rid \ 73 --with-python=python2.3 74 75ifeq ($(DEB_HOST_GNU_SYSTEM),linux) 76 conf_args += \ 77 --with-smbmount \ 78 --with-acl-support \ 79 --with-quotas \ 80 --with-cifsmount 81 mount_cifs = yes 82 smbfs = yes 83else 84 conf_args += --without-quotas 85 mount_cifs = no 86 smbfs = no 87endif 88 89ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE)) 90 conf_args += --build $(DEB_HOST_GNU_TYPE) 91else 92 conf_args += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE) 93endif 94 95patch: patch-stamp 96patch-stamp: 97 dh_testdir 98 if [ ! -f patch-stamp ]; then /bin/sh debian/scripts/patch-source; fi 99 touch patch-stamp 100 101unpatch: 102 dh_testdir 103 if [ -f patch-stamp ]; then /bin/sh debian/scripts/unpatch-source; fi 104 rm -f patch-stamp 105 106configure: patch-stamp configure-stamp 107configure-stamp: 108 dh_testdir 109 110# if [ -f debian/config.cache ]; then \ 111# cp -f debian/config.cache source/config.cache; \ 112# fi 113 114 [ -f source/Makefile ] || (cd source && CFLAGS="$(CFLAGS)" ./configure $(conf_args)) 115 116 touch configure-stamp 117 118build: patch-stamp configure-stamp build-stamp 119build-stamp: 120 dh_testdir 121 122 $(MAKE) -C source headers 123 $(MAKE) -C source all nsswitch/libnss_wins.so python_ext 124 125 touch build-stamp 126 127clean: unpatch 128 dh_testdir 129 dh_testroot 130 rm -f build-stamp configure-stamp 131 132 # Clean first the Samba package 133# -$(MAKE) -C source realclean 134# -$(MAKE) -C source clean 135 -$(MAKE) -C source python_clean distclean 136 137 # Delete stuff left after a build that is not deleted by 'make clean' 138 rm -f source/bin/wbinfo source/bin/winbindd source/bin/debug2html \ 139 source/bin/libsmbclient.a source/bin/mount.cifs \ 140 source/include/stamp-h 141 142 sed -e "s/@libacl@/`type-handling any linux-gnu`/g" \ 143 < debian/control.in > debian/control 144 145 dh_clean 146 147install: DH_OPTIONS= 148install: build 149 dh_testdir 150 dh_testroot 151 dh_clean -k 152 dh_installdirs 153 154 mkdir -p $(DESTDIR)/usr/share/man $(DESTDIR)/usr/lib/samba \ 155 $(DESTDIR)/lib/security $(DESTDIR)/sbin \ 156 $(DESTDIR)/usr/lib/cups/backend $(DESTDIR)/usr/share/samba \ 157 $(DESTDIR)/etc/pam.d $(DESTDIR)/etc/dhcp3/dhclient-enter-hooks.d \ 158 $(DESTDIR)/usr/lib/python2.3/site-packages/samba 159 160 # Add here commands to install the package into debian/tmp. 161 $(MAKE) -C source install DESTDIR=$(DESTDIR) 162 163 # libsmbclient files are not installed by the standard 164 # 'make install' - do it manually. 165 $(MAKE) -C source installclientlib DESTDIR=$(DESTDIR) 166 mv $(DESTDIR)/usr/lib/samba/libsmbclient.so $(DESTDIR)/usr/lib/samba/libsmbclient.so.0.1 167 ln -s libsmbclient.so.0.1 $(DESTDIR)/usr/lib/samba/libsmbclient.so.0 168 ln -s libsmbclient.so.0.1 $(DESTDIR)/usr/lib/samba/libsmbclient.so 169 170 # Starting with Samba 3.0.6 libsmbclient.so is installed in 171 # /usr/lib/samba. We don't want it there since it is not in the 172 # default library path. Here we move it to /usr/lib/. 173 mv $(DESTDIR)/usr/lib/samba/libsmbclient* \ 174 $(DESTDIR)/usr/lib/ 175 176 # Install other stuff not installed by "make install" 177 install -m 0755 debian/mksmbpasswd.awk $(DESTDIR)/usr/sbin/mksmbpasswd 178 179 # Install winbind stuff not installed by 'make install' 180 install -m 0644 source/bin/pam_winbind.so $(DESTDIR)/lib/security/ 181 install -m 0644 source/nsswitch/libnss_winbind.so $(DESTDIR)/lib/libnss_winbind.so.2 182 183 # Install libnss_wins.so, which is not installed by 'make install' either. 184 install -m 0644 source/nsswitch/libnss_wins.so $(DESTDIR)/lib/libnss_wins.so.2 185 186 # pam_smbpass.so isn't being installed by 'make install'. 187 # We'll move it here to $(DESTDIR)/lib/security/ and then 188 # libpam-smbpass.files will make dh_movefiles move it to the 189 # right location in the libpam-smbpass package. 190 install -m 0644 source/bin/pam_smbpass.so $(DESTDIR)/lib/security/ 191 192ifeq ($(smbfs),yes) 193 # Create the symlinks that will allow us to do "mount -t smbfs ..." 194 # and "mount -t smb ...". Note that the source/script/installbin.sh 195 # tries to create the first symlink, but we have commented 196 # that code out and do everything here. We also create 197 # symlinks for the man pages. 198 ln -s /usr/bin/smbmount $(DESTDIR)/sbin/mount.smbfs 199 ln -s /usr/bin/smbmount $(DESTDIR)/sbin/mount.smb 200 ln -s smbmount.8 $(DESTDIR)/usr/share/man/man8/mount.smb.8 201 ln -s smbmount.8 $(DESTDIR)/usr/share/man/man8/mount.smbfs.8 202endif 203 204ifeq ($(mount_cifs),yes) 205 # Install mount.cifs and its man page 206 install -m 04755 source/bin/mount.cifs $(DESTDIR)/sbin/ 207 install -m 0644 docs/manpages/mount.cifs.8 $(DESTDIR)/usr/share/man/man8/ 208endif 209 210 # For CUPS to support printing to samba printers, it's necessary 211 # to make the following symlink (according to 212 # Erich Schubert <debian@vitavonni.de> in #109509): 213 ln -s ../../../bin/smbspool $(DESTDIR)/usr/lib/cups/backend/smb 214 215 # Install man pages for files without man pages in the upstream sources 216 install -m 0644 debian/mksmbpasswd.8 $(DESTDIR)/usr/share/man/man8/mksmbpasswd.8 217 218 # We don't provide the "Using Samba" book in the swat package. 219 # It's provided in the samba-doc package so in the swat package 220 # we just provide a symlink to the real book. 221 ln -s ../../doc/samba-doc/htmldocs/using_samba \ 222 $(DESTDIR)/usr/share/samba/swat/using_samba 223 224 # Delete unwanted stuff leftover from "make install" 225 226 # The smbwrapper package is not being generated anymore, so we must 227 # delete the related man pages. 228 # rm $(DESTDIR)/usr/share/man/man1/smbsh.1 229 230 # We're not providing findsmb (should we?) so let's remove the man 231 # pages. 232 find debian/ -name 'findsmb*' -exec rm -f {} \; 233 234 # Install samba-common's conffiles - they'll get moved later to their 235 # correct place by dh_movefiles. 236 cp debian/smb.conf $(DESTDIR)/usr/share/samba/ 237 install -m755 debian/panic-action $(DESTDIR)/usr/share/samba/ 238 cp debian/gdbcommands $(DESTDIR)/etc/samba/ 239 cp debian/samba.pamd $(DESTDIR)/etc/pam.d/samba 240 install -m755 debian/samba-common.dhcp $(DESTDIR)/etc/dhcp3/dhclient-enter-hooks.d/samba 241 242 # Install the Python modules 243 # 244 # Hmmm... need to figure this out. We have lib.linux-i686-2.2 245 # and lib.linux-i686-2.3 directories. Using only the stuff from 246 # the 2.3 directory for now. peloy.- 247 #cp source/build/lib.*/samba/*.so $(DESTDIR)/usr/lib/python2.3/site-packages/ 248 cp source/build/lib.*-*-2.3/samba/*.so $(DESTDIR)/usr/lib/python2.3/site-packages/samba/ 249 cp source/python/samba/* $(DESTDIR)/usr/lib/python2.3/site-packages/samba/ 250 251 dh_movefiles 252 253# Build architecture-independent files here. 254# Pass -i to all debhelper commands in this target to reduce clutter. 255binary-indep: DH_OPTIONS=-i 256binary-indep: build install 257 dh_testdir 258 dh_testroot 259 dh_installdebconf 260 dh_installdocs -A debian/README.build 261 # dh_installexamples is not available in Debian Potato... 262 [ -x /usr/bin/dh_installexamples ] && DH_OPTIONS= dh_installexamples -v -psamba-doc examples/* 263# dh_installmenu 264# dh_installemacsen 265# dh_installpam 266# dh_installinit 267# dh_installcron 268# dh_installmanpages 269# dh_installinfo 270# dh_undocumented 271 dh_installchangelogs 272 dh_link 273 dh_compress 274 dh_fixperms 275 276 # Get rid of those pesky .cvsignore files to make lintian happy 277 find debian/ -name .cvsignore -exec rm -f {} \; 278 279 dh_installdeb 280# dh_perl 281 dh_gencontrol 282 dh_md5sums 283 dh_builddeb 284 285# Build architecture-dependent files here. 286# Pass -a to all debhelper commands in this target to reduce clutter. 287ifeq ($(smbfs),no) 288 DH_EXTRAS=-Nsmbfs 289endif 290 291binary-arch: DH_OPTIONS=-a $(DH_EXTRAS) 292binary-arch: build install 293 dh_testdir 294 dh_testroot 295 dh_installdebconf 296 dh_installdocs -A debian/README.build 297 # dh_installexamples is not available in Debian Potato... 298 [ -x /usr/bin/dh_installexamples ] && DH_OPTIONS= dh_installexamples -v -ppython2.3-samba source/python/examples/* 299# dh_installmenu 300 # dh_installlogrotate is not available in Debian Potato... 301 if [ -x /usr/bin/dh_installlogrotate ]; then \ 302 dh_installlogrotate; \ 303 else \ 304 mkdir -p debian/samba/etc/logrotate.d; \ 305 cp debian/samba.logrotate debian/samba/etc/logrotate.d/samba; \ 306 mkdir -p debian/winbind/etc/logrotate.d; \ 307 cp debian/winbind.logrotate debian/winbind/etc/logrotate.d/winbind; \ 308 fi 309# dh_installemacsen 310# dh_installpam 311 DH_OPTIONS= dh_installinit -psamba -- "defaults 20 19" 312 DH_OPTIONS= dh_installinit -pwinbind 313 dh_installcron 314# dh_installmanpages 315# dh_installinfo 316 cp debian/winbind.lintian debian/winbind/usr/share/lintian/overrides/winbind 317# dh_undocumented 318 dh_installchangelogs -Nlibpam-smbpass 319 DH_OPTIONS= dh_installchangelogs -plibpam-smbpass source/pam_smbpass/CHANGELOG 320 dh_strip --dbg-package=samba --dbg-package=smbclient 321 cp -a debian/smbclient-dbg/* debian/samba-dbg 322 rm -rf debian/smbclient-dbg 323 dh_link 324 dh_compress 325 dh_fixperms 326 327 # Why this is executable, I have NO idea... 328 chmod a-x debian/libsmbclient-dev/usr/include/libsmbclient.h 329 330ifeq ($(smbfs),yes) 331 # You may want to make some executables suid here. 332 # The smbmnt and smbumount binaries should be setuid-root. This 333 # has security implications because these programs haven't had 334 # a thorough security audit. smbmount _does not_ have to have 335 # the setuid bit set. In fact, it is a security hole. 336 chmod u+s debian/smbfs/usr/bin/smbmnt 337 chmod u+s debian/smbfs/usr/bin/smbumount 338endif 339 340 # Set some reasonable default perms for the samba logdir. 341 chmod 0750 debian/samba/var/log/samba/ 342 chown root.adm debian/samba/var/log/samba/ 343 344 # Get rid of those pesky .cvsignore files to make lintian happy 345 # (maybe we only need the "find ... -exec rm -f {} ;" we have 346 # in the binary-indep target?) peloy.- 347 find debian/ -name .cvsignore -exec rm -f {} \; 348 349 dh_installdeb 350# dh_makeshlibs 351# dh_perl 352 dh_shlibdeps 353 dh_gencontrol 354 dh_md5sums 355 dh_builddeb 356 357binary: binary-indep binary-arch 358.PHONY: build clean binary-indep binary-arch binary install configure 359