1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
|
#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
# Copyright © 2013-2014 Jonas Smedegaard <dr@jones.dk>
# Description: Main Debian packaging script for libbitcoin
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# This needs to run (and thus be declared) before CDBS includes
debian/control:: debian/control.in
DEB_PHONY_RULES += debian/control.in
debian/control.in::
sed -e 's/__LIBPKG__/$(libpkg)/g' <debian/control.in.in >debian/control.in
DEB_AUTO_UPDATE_LIBTOOL = pre
DEB_AUTO_UPDATE_ACLOCAL = ,
DEB_AUTO_UPDATE_AUTOCONF = ,
DEB_AUTO_UPDATE_AUTOMAKE = ,
include /usr/share/cdbs/1/rules/upstream-tarball.mk
include /usr/share/cdbs/1/rules/utils.mk
include /usr/share/cdbs/1/class/autotools.mk
include /usr/share/cdbs/1/rules/debhelper.mk
pkg = $(DEB_SOURCE_PACKAGE)
stem = $(patsubst lib%,%,$(pkg))
abi = 0
lib = lib$(stem)
libpkg = lib$(stem)$(abi)
devpkg = lib$(stem)-dev
DEB_UPSTREAM_URL = https://libbitcoin.org/download
DEB_UPSTREAM_TARBALL_EXTENSION = tar.bz2
# Needed by upstream build
dev-deps = db++ leveldb ssl curl4-openssl
dev-deps += boost boost-thread boost-system boost-regex boost-filesystem
deps = $(patsubst %,$(comma) lib%-dev,$(dev-deps))
deps +=, pkg-config
# Needed for our packaging
deps-pkg +=, autoconf-archive, d-shlibs (>= 0.50)
CDBS_BUILD_DEPENDS +=, $(deps), $(deps-pkg)
# Multiarch quirk (see also other uses of that variable in this file)
CDBS_PREDEPENDS_$(libpkg) = $(if $(DEB_HOST_MULTIARCH),multiarch-support)
# extract metadata from images before copyright check
CDBS_BUILD_DEPENDS +=, libregexp-assemble-perl, libimage-exiftool-perl
CDBS_BUILD_DEPENDS +=, libfont-ttf-perl
local_inspection_regex = png
DEB_COPYRIGHT_CHECK_IGNORE_REGEX = ^((.*/)?[^/]+\.($(local_inspection_regex))|debian/(changelog|copyright(|_hints|_newhints)))$$
debian/stamp-copyright-check: debian/stamp-extract-copyright
debian/stamp-extract-copyright:
find * -type f -regextype posix-extended \
-regex '.*\.($(local_inspection_regex))' \
-print0 | perl -0 debian/license-miner
touch $@
pre-build:: clean-extracted-copyright-during-build
clean-extracted-copyright-during-build: debian/stamp-copyright-check
find -type f -name '*.metadata_dump' -delete
clean::
find -type f -name '*.metadata_dump' -delete
rm -f debian/stamp-extract-copyright
# work around build failure with g++ 4.8
#CXXFLAGS += -fpermissive
DEB_CONFIGURE_EXTRA_FLAGS += --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
DEB_CONFIGURE_EXTRA_FLAGS += --enable-bdb --enable-leveldb
DEB_MAKE_CHECK_TARGET = check
DEB_INSTALL_EXAMPLES_$(devpkg) = examples/*
# Let d-shlibs calculate development package dependencies
# and handle shared library install
# * d-shlibs 0.50 required for --multiarch and --exclude-la options
binary-post-install/$(libpkg) binary-post-install/$(devpkg):: \
debian/stamp-local-shlibs-$(lib)
debian/stamp-local-shlibs-$(lib): \
binary-install/$(libpkg) \
binary-install/$(devpkg)
d-shlibmove --commit \
--devunversioned \
--exclude-la \
--multiarch \
--override s/libleveldb1-dev/libleveldb-dev/ \
--override 's/libboost_\([^-]\+\)\.[0-9]-dev/libboost-\1-dev/' \
--override 's/libcurl4-dev/libcurl4-openssl-dev/' \
--movedev "debian/tmp/usr/include/*" usr/include/ \
--movedev "debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig/*" \
usr/lib/$(DEB_HOST_MULTIARCH)/pkgconfig \
debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/$(lib).so
touch $@
clean::
rm -f debian/stamp-local-shlibs-$(lib)
# put aside upstream-shipped autogenerated files and (re)generate during build
auxdir = build-aux
macrodir = m4
makefiledirs = . include/bitcoin src
files_autotools_core = $(auxdir)/config.guess $(auxdir)/config.sub
stems_m4_libtool = libtool ltoptions ltsugar ltversion lt~obsolete
files_libtool = $(auxdir)/ltmain.sh $(stems_m4_libtool:%=$(macrodir)/%.m4)
stems_aclocal_ax = berkeley_db_cxx boost_base boost_system boost_thread
stems_aclocal_ax += cxx_compile_stdcxx_11
files_aclocal_ax = $(stems_aclocal_ax:%=$(macrodir)/ax_%.m4)
files_aclocal = aclocal.m4 $(macrodir)/pkg.m4 $(files_aclocal_ax)
stems_aux_autoconf = ar-lib compile install-sh missing
files_autoconf = configure $(stems_aux_autoconf:%=$(auxdir)/%)
files_automake = $(auxdir)/depcomp $(makefiledirs:=/Makefile.in)
files_configure = config.log
files_autotools = $(files_autotools_core) $(files_libtool) $(files_aclocal)
files_autotools += $(files_autoconf) $(files_automake) $(files_configure)
DEB_UPSTREAM_CRUFT_MOVE = $(files_aclocal_ax)
DEB_ACLOCAL_ARGS = -Im4 --install --force
DEB_AUTOMAKE_ARGS = --add-missing --copy --foreign --force
DEB_MAKE_CLEAN_TARGET = distclean
makefile-clean::
rm -rf autom4te.cache
rm -f $(filter-out $(DEB_UPSTREAM_CRUFT_MOVE),$(files_autotools))
clean::
rm -f $(filter-out $(DEB_UPSTREAM_CRUFT_MOVE),$(files_autotools_core))
test ! -d $(auxdir) || rmdir --ignore-fail-on-non-empty $(auxdir)
|