#!/usr/bin/make -f ifeq (,$(filter terse,${DEB_BUILD_OPTIONS})) export DH_VERBOSE=1 export V=1 export VERBOSE=1 endif LC_ALL:=C export LC_ALL shellescape='$(subst ','\'',$(1))' shellexport=$(1)=$(call shellescape,${$(1)}) DEB_BUILD_ARCH?=$(shell dpkg-architecture -qDEB_BUILD_ARCH) DEB_HOST_ARCH?=$(shell dpkg-architecture -qDEB_HOST_ARCH) DEB_BUILD_GNU_TYPE?=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_GNU_TYPE?=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) OUR_CPPFLAGS:= OUR_CFLAGS:= -Wall -Wformat OUR_LDFLAGS:= OUR_CPPFLAGS+= -D_GNU_SOURCE OUR_CPPFLAGS+= -DUSE_LIBBSD OUR_CFLAGS+= -fno-strict-aliasing # addresses part of #698908 OUR_CFLAGS+= -fwrapv # for now. uses are mostly checked. OUR_CFLAGS+= -Wno-unused-result dpkgbuildflagsmkescape=$(subst \,\\\,$(1)) export DEB_BUILD_MAINT_OPTIONS:=hardening=+all export DEB_CPPFLAGS_MAINT_APPEND:=$(call dpkgbuildflagsmkescape,${OUR_CPPFLAGS}) export DEB_CFLAGS_MAINT_APPEND:=$(call dpkgbuildflagsmkescape,${OUR_CFLAGS}) export DEB_CXXFLAGS_MAINT_APPEND:=$(call dpkgbuildflagsmkescape,${OUR_CXXFLAGS}) export DEB_LDFLAGS_MAINT_APPEND:=$(call dpkgbuildflagsmkescape,${OUR_LDFLAGS}) include /usr/share/dpkg/buildflags.mk include /usr/share/dpkg/buildtools.mk LIBS+= -lbsd CONFIGURE_ENV:= $(foreach i,CC CPPFLAGS CFLAGS LDFLAGS LIBS,$(call shellexport,$i)) CONFIGURE_ENV+= CSH=/bin/csh CONFIGURE_ENV+= ac_cv_path_MKTEMP=/bin/mktemp CONFIGURE_ARGS:= --build=${DEB_BUILD_GNU_TYPE} \ --host=${DEB_HOST_GNU_TYPE} \ --prefix=/usr \ --infodir=/usr/share/info \ --mandir=/usr/share/man \ --sysconfdir=/etc \ --disable-dependency-tracking \ --disable-maintainer-mode \ --disable-pam \ --disable-nls \ --enable-client \ --enable-password-authenticated-client \ --enable-server \ --enable-proxy \ --enable-case-sensitivity \ --enable-encryption \ --disable-lock-compatibility \ --enable-rootcommit \ --enable-config-override=no \ --without-krb4 \ --with-gssapi \ --with-external-zlib \ --with-rsh=/usr/bin/ssh \ --with-editor=/usr/bin/editor \ --with-tmpdir=/var/tmp \ --with-umask=002 \ --with-cvs-admin-group=_cvsadmin MAKE_ARGS:= MAKEINFO=makeinfo MAKE_ARGS+= MAKEINFOFLAGS=--no-split # ‘u’ is default in Debian and gives warnings (upstream has ‘cru’) MAKE_ARGS+= ARFLAGS=rc CLEANFILES:= autom4te.cache build-aux/config.guess \ build-aux/config.sub cvs.spec debian/.*_stamp \ debian/CVSTEMP debian/builddir debian/stagedir \ doc/cvs-paper.pdf doc/cvs.1 doc/cvs.info* \ doc/cvs.pdf doc/cvsclient.info* doc/cvsclient.pdf \ doc/getdate-cvs.texi emx/Makefile os2/Makefile \ vms/config.h windows-NT/config.h debian/.configure_stamp: dh_testdir -rm -rf ${CLEANFILES} cp /usr/share/misc/config.guess /usr/share/misc/config.sub build-aux/ dh_autoreconf mkdir debian/builddir debian/stagedir cd debian/builddir && \ env ${CONFIGURE_ENV} sh ../../configure ${CONFIGURE_ARGS} # generate PDF 1.4 by default ln -s ../../../build-aux/texinfo.tex debian/builddir/doc/texinfo-r.tex printf '%s\n' \ '\pdfminorversion4\relax\pdfobjcompresslevel0\relax%' \ '\input texinfo-r.tex' \ >debian/builddir/doc/texinfo.tex @:>$@ build-indep: build build-arch: debian/.build_stamp debian/.build_stamp: debian/.configure_stamp dh_testdir cd debian/builddir && ${MAKE} ${MAKE_ARGS} ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) cd debian/builddir && ${MAKE} -C doc ${MAKE_ARGS} doc html info pdf txt endif ifneq (,$(filter sanity,$(DEB_BUILD_OPTIONS))) # run the testsuite after build (DEB_BUILD_OPTIONS=sanity) # Depends on procps and, if running locally (not in a buildd chroot), # ssh + rsync (logging in to localhost), for testing remote/proxy op. # warning: this takes a *lot* of time! # idea: run this under Valgrind to take even more time ;) cd debian/builddir && ${MAKE} ${MAKE_ARGS} check endif @:>$@ clean: dh_testdir dh_autoreconf_clean -rm -rf ${CLEANFILES} dh_clean binary-indep: binary-arch: debian/.build_stamp dh_testdir dh_testroot if test -x "$$(which dh_prep)"; then dh_prep; else dh_clean -k; fi -rm -rf debian/stagedir mkdir -p debian/stagedir/clogs cd debian/builddir && \ ${MAKE} ${MAKE_ARGS} DESTDIR=${CURDIR}/debian/stagedir install cat ChangeLog ChangeLog.zoo >debian/stagedir/clogs/ChangeLog cat doc/ChangeLog doc/ChangeLog.fsf >debian/stagedir/clogs/ChangeLog.doc #cat lib/ChangeLog lib/ChangeLog.fsf >debian/stagedir/clogs/ChangeLog.lib #cat src/ChangeLog src/ChangeLog-97 src/ChangeLog-96 src/ChangeLog-9395 \ # src/ChangeLog-9194 >debian/stagedir/clogs/ChangeLog.src cp src/ChangeLog debian/stagedir/clogs/ChangeLog.src cp contrib/ChangeLog debian/stagedir/clogs/ChangeLog.contrib cp diff/ChangeLog debian/stagedir/clogs/ChangeLog.diff #cp m4/ChangeLog debian/stagedir/clogs/ChangeLog.m4 #cp man/ChangeLog debian/stagedir/clogs/ChangeLog.man #cp tools/ChangeLog debian/stagedir/clogs/ChangeLog.tools # fat and nonsensical to ship this rm -f debian/stagedir/usr/share/cvs/contrib/rcs-5.7-commitid.patch # uses csh rm -f debian/stagedir/usr/share/cvs/contrib/sccs2rcs # unsafe rm -f debian/stagedir/usr/share/cvs/contrib/commit_prep rm -f debian/stagedir/usr/share/cvs/contrib/cvs_acls rm -f debian/stagedir/usr/share/cvs/contrib/log rm -f debian/stagedir/usr/share/cvs/contrib/log_accum rm -f debian/stagedir/usr/share/cvs/contrib/mfpipe rm -f debian/stagedir/usr/share/cvs/contrib/rcslock # we ship cvs-switchroot(1) instead rm -f debian/stagedir/usr/share/cvs/contrib/newcvsroot dh_installchangelogs debian/stagedir/clogs/ChangeLog ifneq (,$(filter nodoc,$(DEB_BUILD_OPTIONS))) # this will cause lintian warnings as it installs the doc-base files endif dh_installdocs dh_install mv debian/cvs/usr/share/cvs/contrib/intro.doc \ debian/cvs/usr/share/doc/cvs/intro.txt dh_installinfo dh_installman dh_link dh_strip dh_compress -X.pdf cd debian/cvs/usr/share/cvs/contrib && chmod +x descend.sh rcs2sccs.sh dh_fixperms dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb -- -Zgzip -z9 binary: binary-indep binary-arch .PHONY: binary binary-arch binary-indep build build-arch build-indep clean