# Copyright (c) 2013-2016 The Bitcoin Core developers
# Distributed under the MIT software license, see the accompanying
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
ACLOCAL_AMFLAGS = -I build-aux/m4
SUBDIRS = src
i f E N A B L E _ M A N
SUBDIRS += doc/man
e n d i f
.PHONY : deploy FORCE
GZIP_ENV = "-9n"
export PYTHONPATH
i f B U I L D _ B I T C O I N _ L I B S
pkgconfigdir = $( libdir) /pkgconfig
pkgconfig_DATA = libbitcoinconsensus.pc
e n d i f
BITCOIND_BIN = $( top_builddir) /src/$( BITCOIN_DAEMON_NAME) $( EXEEXT)
BITCOIN_QT_BIN = $( top_builddir) /src/qt/$( BITCOIN_GUI_NAME) $( EXEEXT)
BITCOIN_CLI_BIN = $( top_builddir) /src/$( BITCOIN_CLI_NAME) $( EXEEXT)
BITCOIN_WIN_INSTALLER = $( PACKAGE) -$( PACKAGE_VERSION) -win$( WINDOWS_BITS) -setup$( EXEEXT)
empty :=
space := $( empty) $( empty)
OSX_APP = Bitcoin-Qt.app
OSX_VOLNAME = $( subst $( space) ,-,$( PACKAGE_NAME) )
OSX_DMG = $( OSX_VOLNAME) .dmg
OSX_BACKGROUND_SVG = background.svg
OSX_BACKGROUND_IMAGE = background.tiff
OSX_BACKGROUND_IMAGE_DPIS = 36 72
OSX_DSSTORE_GEN = $( top_srcdir) /contrib/macdeploy/custom_dsstore.py
OSX_DEPLOY_SCRIPT = $( top_srcdir) /contrib/macdeploy/macdeployqtplus
OSX_FANCY_PLIST = $( top_srcdir) /contrib/macdeploy/fancy.plist
OSX_INSTALLER_ICONS = $( top_srcdir) /src/qt/res/icons/bitcoin.icns
OSX_PLIST = $( top_builddir) /share/qt/Info.plist #not installed
OSX_QT_TRANSLATIONS = da,de,es,hu,ru,uk,zh_CN,zh_TW
DIST_DOCS = $( wildcard doc/*.md) $( wildcard doc/release-notes/*.md)
DIST_CONTRIB = $( top_srcdir) /contrib/bitcoin-cli.bash-completion \
$( top_srcdir) /contrib/bitcoin-tx.bash-completion \
$( top_srcdir) /contrib/bitcoind.bash-completion \
$( top_srcdir) /contrib/init \
$( top_srcdir) /contrib/rpm
BIN_CHECKS = $( top_srcdir) /contrib/devtools/symbol-check.py \
$( top_srcdir) /contrib/devtools/security-check.py
WINDOWS_PACKAGING = $( top_srcdir) /share/pixmaps/bitcoin.ico \
$( top_srcdir) /share/pixmaps/nsis-header.bmp \
$( top_srcdir) /share/pixmaps/nsis-wizard.bmp \
$( top_srcdir) /doc/README_windows.txt
OSX_PACKAGING = $( OSX_DEPLOY_SCRIPT) $( OSX_FANCY_PLIST) $( OSX_INSTALLER_ICONS) \
$( top_srcdir) /contrib/macdeploy/$( OSX_BACKGROUND_SVG) \
$( OSX_DSSTORE_GEN) \
$( top_srcdir) /contrib/macdeploy/detached-sig-apply.sh \
$( top_srcdir) /contrib/macdeploy/detached-sig-create.sh
COVERAGE_INFO = baseline_filtered_combined.info baseline.info \
leveldb_baseline.info test_bitcoin_filtered.info total_coverage.info \
baseline_filtered.info rpc_test.info rpc_test_filtered.info \
leveldb_baseline_filtered.info test_bitcoin_coverage.info test_bitcoin.info
dist-hook :
-$( GIT) archive --format= tar HEAD -- src/clientversion.cpp | $( AMTAR) -C $( top_distdir) -xf -
$(BITCOIN_WIN_INSTALLER) : all -recursive
$( MKDIR_P) $( top_builddir) /release
STRIPPROG = " $( STRIP) " $( INSTALL_STRIP_PROGRAM) $( BITCOIND_BIN) $( top_builddir) /release
STRIPPROG = " $( STRIP) " $( INSTALL_STRIP_PROGRAM) $( BITCOIN_QT_BIN) $( top_builddir) /release
STRIPPROG = " $( STRIP) " $( INSTALL_STRIP_PROGRAM) $( BITCOIN_CLI_BIN) $( top_builddir) /release
@test -f $( MAKENSIS) && $( MAKENSIS) -V2 $( top_builddir) /share/setup.nsi || \
echo error: could not build $@
@echo built $@
$(if $(findstring src/,$(MAKECMDGOALS)),$(MAKECMDGOALS), none) : FORCE
$( MAKE) -C src $( patsubst src/%,%,$@ )
$(OSX_APP)/Contents/PkgInfo :
$( MKDIR_P) $( @D)
@echo "APPL????" > $@
$(OSX_APP)/Contents/Resources/empty.lproj :
$( MKDIR_P) $( @D)
@touch $@
$(OSX_APP)/Contents/Info.plist : $( OSX_PLIST )
$( MKDIR_P) $( @D)
$( INSTALL_DATA) $< $@
$(OSX_APP)/Contents/Resources/bitcoin.icns : $( OSX_INSTALLER_ICONS )
$( MKDIR_P) $( @D)
$( INSTALL_DATA) $< $@
$(OSX_APP)/Contents/MacOS/Bitcoin-Qt : $( BITCOIN_QT_BIN )
$( MKDIR_P) $( @D)
STRIPPROG = " $( STRIP) " $( INSTALL_STRIP_PROGRAM) $< $@
$(OSX_APP)/Contents/Resources/Base.lproj/InfoPlist.strings :
$( MKDIR_P) $( @D)
echo '{ CFBundleDisplayName = "$(PACKAGE_NAME)"; CFBundleName = "$(PACKAGE_NAME)"; }' > $@
OSX_APP_BUILT = $( OSX_APP) /Contents/PkgInfo $( OSX_APP) /Contents/Resources/empty.lproj \
$( OSX_APP) /Contents/Resources/bitcoin.icns $( OSX_APP) /Contents/Info.plist \
$( OSX_APP) /Contents/MacOS/Bitcoin-Qt $( OSX_APP) /Contents/Resources/Base.lproj/InfoPlist.strings
osx_volname :
echo $( OSX_VOLNAME) >$@
i f B U I L D _ D A R W I N
$(OSX_DMG) : $( OSX_APP_BUILT ) $( OSX_PACKAGING ) $( OSX_BACKGROUND_IMAGE )
$( PYTHON) $( OSX_DEPLOY_SCRIPT) $( OSX_APP) -add-qt-tr $( OSX_QT_TRANSLATIONS) -translations-dir= $( QT_TRANSLATION_DIR) -dmg -fancy $( OSX_FANCY_PLIST) -verbose 2 -volname $( OSX_VOLNAME)
$(OSX_BACKGROUND_IMAGE).png : contrib /macdeploy /$( OSX_BACKGROUND_SVG )
sed 's/PACKAGE_NAME/$(PACKAGE_NAME)/' < " $< " | $( RSVG_CONVERT) -f png -d 36 -p 36 -o $@
$(OSX_BACKGROUND_IMAGE)@2x.png : contrib /macdeploy /$( OSX_BACKGROUND_SVG )
sed 's/PACKAGE_NAME/$(PACKAGE_NAME)/' < " $< " | $( RSVG_CONVERT) -f png -d 72 -p 72 -o $@
$(OSX_BACKGROUND_IMAGE) : $( OSX_BACKGROUND_IMAGE ) .png $( OSX_BACKGROUND_IMAGE ) @2x .png
tiffutil -cathidpicheck $^ -out $@
deploydir : $( OSX_DMG )
e l s e
APP_DIST_DIR = $( top_builddir) /dist
APP_DIST_EXTRAS = $( APP_DIST_DIR) /.background/$( OSX_BACKGROUND_IMAGE) $( APP_DIST_DIR) /.DS_Store $( APP_DIST_DIR) /Applications
$(APP_DIST_DIR)/Applications :
@rm -f $@
@cd $( @D) ; $( LN_S) /Applications $( @F)
$(APP_DIST_EXTRAS) : $( APP_DIST_DIR ) /$( OSX_APP ) /Contents /MacOS /Bitcoin -Qt
$(OSX_DMG) : $( APP_DIST_EXTRAS )
$( GENISOIMAGE) -no-cache-inodes -D -l -probe -V " $( OSX_VOLNAME) " -no-pad -r -dir-mode 0755 -apple -o $@ dist
dpi%.$(OSX_BACKGROUND_IMAGE) : contrib /macdeploy /$( OSX_BACKGROUND_SVG )
sed 's/PACKAGE_NAME/$(PACKAGE_NAME)/' < " $< " | $( RSVG_CONVERT) -f png -d $* -p $* | $( IMAGEMAGICK_CONVERT) - $@
OSX_BACKGROUND_IMAGE_DPIFILES := $( foreach dpi,$( OSX_BACKGROUND_IMAGE_DPIS) ,dpi$( dpi) .$( OSX_BACKGROUND_IMAGE) )
$(APP_DIST_DIR)/.background/$(OSX_BACKGROUND_IMAGE) : $( OSX_BACKGROUND_IMAGE_DPIFILES )
$( MKDIR_P) $( @D)
$( TIFFCP) -c none $( OSX_BACKGROUND_IMAGE_DPIFILES) $@
$(APP_DIST_DIR)/.DS_Store : $( OSX_DSSTORE_GEN )
$( PYTHON) $< " $@ " " $( OSX_VOLNAME) "
$(APP_DIST_DIR)/$(OSX_APP)/Contents/MacOS/Bitcoin-Qt : $( OSX_APP_BUILT ) $( OSX_PACKAGING )
INSTALLNAMETOOL = $( INSTALLNAMETOOL) OTOOL = $( OTOOL) STRIP = $( STRIP) $( PYTHON) $( OSX_DEPLOY_SCRIPT) $( OSX_APP) -translations-dir= $( QT_TRANSLATION_DIR) -add-qt-tr $( OSX_QT_TRANSLATIONS) -verbose 2
deploydir : $( APP_DIST_EXTRAS )
e n d i f
i f T A R G E T _ D A R W I N
appbundle : $( OSX_APP_BUILT )
deploy : $( OSX_DMG )
e n d i f
i f T A R G E T _ W I N D O W S
deploy : $( BITCOIN_WIN_INSTALLER )
e n d i f
$(BITCOIN_QT_BIN) : FORCE
$( MAKE) -C src qt/$( @F)
$(BITCOIND_BIN) : FORCE
$( MAKE) -C src $( @F)
$(BITCOIN_CLI_BIN) : FORCE
$( MAKE) -C src $( @F)
i f U S E _ L C O V
baseline.info :
$( LCOV) -c -i -d $( abs_builddir) /src -o $@
baseline_filtered.info : baseline .info
$( LCOV) -r $< "/usr/include/*" -o $@
leveldb_baseline.info : baseline_filtered .info
$( LCOV) -c -i -d $( abs_builddir) /src/leveldb -b $( abs_builddir) /src/leveldb -o $@
leveldb_baseline_filtered.info : leveldb_baseline .info
$( LCOV) -r $< "/usr/include/*" -o $@
baseline_filtered_combined.info : leveldb_baseline_filtered .info baseline_filtered .info
$( LCOV) -a leveldb_baseline_filtered.info -a baseline_filtered.info -o $@
test_bitcoin.info : baseline_filtered_combined .info
$( MAKE) -C src/ check
$( LCOV) -c -d $( abs_builddir) /src -t test_bitcoin -o $@
$( LCOV) -z -d $( abs_builddir) /src
$( LCOV) -z -d $( abs_builddir) /src/leveldb
test_bitcoin_filtered.info : test_bitcoin .info
$( LCOV) -r $< "/usr/include/*" -o $@
rpc_test.info : test_bitcoin_filtered .info
-@TIMEOUT= 15 python qa/pull-tester/rpc-tests.py $( EXTENDED_RPC_TESTS)
$( LCOV) -c -d $( abs_builddir) /src --t rpc-tests -o $@
$( LCOV) -z -d $( abs_builddir) /src
$( LCOV) -z -d $( abs_builddir) /src/leveldb
rpc_test_filtered.info : rpc_test .info
$( LCOV) -r $< "/usr/include/*" -o $@
test_bitcoin_coverage.info : baseline_filtered_combined .info test_bitcoin_filtered .info
$( LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -o $@
total_coverage.info : baseline_filtered_combined .info test_bitcoin_filtered .info rpc_test_filtered .info
$( LCOV) -a baseline_filtered.info -a leveldb_baseline_filtered.info -a test_bitcoin_filtered.info -a rpc_test_filtered.info -o $@ | $( GREP) "\%" | $( AWK) '{ print substr($$3,2,50) "/" $$5 }' > coverage_percent.txt
test_bitcoin.coverage/.dirstamp : test_bitcoin_coverage .info
$( GENHTML) -s $< -o $( @D)
@touch $@
total.coverage/.dirstamp : total_coverage .info
$( GENHTML) -s $< -o $( @D)
@touch $@
cov : test_bitcoin .coverage /.dirstamp total .coverage /.dirstamp
e n d i f
dist_noinst_SCRIPTS = autogen.sh
EXTRA_DIST = $( top_srcdir) /share/genbuild.sh qa/pull-tester/rpc-tests.py qa/rpc-tests $( DIST_CONTRIB) $( DIST_DOCS) $( WINDOWS_PACKAGING) $( OSX_PACKAGING) $( BIN_CHECKS)
CLEANFILES = $( OSX_DMG) $( BITCOIN_WIN_INSTALLER)
# This file is problematic for out-of-tree builds if it exists.
DISTCLEANFILES = qa/pull-tester/tests_config.pyc
.INTERMEDIATE : $( COVERAGE_INFO )
DISTCHECK_CONFIGURE_FLAGS = --enable-man
clean-local :
rm -rf coverage_percent.txt test_bitcoin.coverage/ total.coverage/ qa/tmp/ cache/ $( OSX_APP)
rm -rf qa/pull-tester/__pycache__