#!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # GNU copyright 1997 to 1999 by Joey Hess. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # We've switched to the recommended hardening method export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-pie DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) INCLUDEDIR = "/usr/lib/$(DEB_HOST_MULTIARCH)" SHELL=/bin/bash # We changed this since dpkg-buildflags sets the variable initially for us # and the typical '=' overwrites some important hardening options # CFLAGS = -Wall -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) INSTALL_PROGRAM += -s endif p = rapidsvn p_lib = libsvncpp3 p_dev = libsvncpp-dev #p_doc = libsvncpp-doc d = debian/$(p) d_lib = debian/$(p_lib) d_dev = debian/$(p_dev) #d_doc = debian/$(p_doc) configure-stamp: dh_testdir cp -p /usr/share/misc/config.sub config.sub cp -p /usr/share/misc/config.guess config.guess # configure using --disable-shared, # so we don't have to package the library as well ... # # We changed CPPFLAGS so that hardening was included # i.e. $(CPPFLAGS) now included in the line CFLAGS="$(CFLAGS)" \ CPPFLAGS="-DNDEBUG $(CPPFLAGS)" \ ./configure \ --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) \ --prefix=/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info \ --with-docbook-xsl=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh \ --with-svn-lib=$(INCLUDEDIR) touch configure-stamp build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp build-stamp: configure-stamp dh_testdir $(MAKE) $(MAKE) -C doc/manpage manpage cd doc/svncpp && doxygen svncpp.dox touch build-stamp clean: dh_testdir dh_testroot rm -f configure-stamp build-stamp [ ! -f Makefile ] || $(MAKE) distclean rm -rf doc/svncpp/html/* rm -f src/locale/Makefile doc/manpage/Makefile doc/svncpp/Makefile rm -f config.sub rm -f config.guess : # temporary fix until upstream fixes the clean targets rm -f doc/svncpp/doxygen_sqlite3.db dh_clean install: build dh_testdir dh_testroot dh_prep dh_installdirs -p$(p) \ usr/share/pixmaps usr/share/locale usr/share/man/man1 $(MAKE) install DESTDIR=$(CURDIR)/debian/rapidsvn cp -p src/res/bitmaps/rapidsvn_32x32.xpm \ debian/rapidsvn/usr/share/pixmaps/rapidsvn.xpm cp -p src/res/bitmaps/rapidsvn_32x32.png \ debian/rapidsvn/usr/share/pixmaps/rapidsvn.png cp -p doc/manpage/rapidsvn.1 \ debian/rapidsvn/usr/share/man/man1/ dh_installdirs -p$(p_lib) usr/lib mv $(d)/usr/lib/libsvncpp.so.* $(d_lib)/usr/lib/ dh_installdirs -p$(p_dev) usr/lib mv $(d)/usr/lib/libsvncpp.{a,so} $(d_dev)/usr/lib/ rm $(d)/usr/lib/libsvncpp.la* rmdir $(d)/usr/lib/ : # doesn't work yet : #$(MAKE) -C include install DESTDIR=$(CURDIR)/$(d_dev) mv $(d)/usr/include $(d_dev)/usr/ install -d $(d)/usr/share/applications install -m644 debian/rapidsvn.desktop $(d)/usr/share/applications # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs -k CHANGES dh_installdocs README rm -rf $(d_dev)/usr/share/doc/$(p_dev) dh_link -p$(p_dev) /usr/share/doc/$(p_lib) /usr/share/doc/$(p_dev) mkdir -p $(d_dev)/usr/share/doc/$(p_lib) cp -a doc/svncpp/html $(d_dev)/usr/share/doc/$(p_lib)/ dh_lintian dh_installexamples dh_installmenu dh_icons # dh_installdebconf # dh_installinfo dh_installman dh_link dh_strip -v dh_compress dh_fixperms dh_makeshlibs dh_installdeb dh_shlibdeps -L$(p_lib) -l$(d_lib)/usr/lib -- -v -ldd debian/libsvncpp3/usr/lib/libsvncpp.so.3.0.0 | grep libsvn_subr-1.so.1 -objdump -T /usr/lib/libsvn_subr-1.so.1 | egrep 'svn_error__locate|svn_sort__hash' dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install