mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-19 18:09:47 +01:00
bb9ab0fccf
cc5c39d
[Build] Add AM_OBJCXXFLAGS and QT_PIE_FLAGS to OBJCXXFLAGS to future-proof darwin targets (fanquake)f8c6697
Fix automake warnings when running autogen.sh (Evan Klitzke) Pull request description: Adjusted @eklitzke's commit to completely remove GZIP_ENV. Added a commit to address OBJCXXFLAGS. Rebased on master. Relevant info from @theuni & #11013 below. -------- GZIP_ENV was indeed added for determinism, but gitian exports this as needed, so it's not really necessary. I'd rather just remove it. The mm.o rule was added to support XCode 4.2's ancient version of automake. That's irrelevant now, so it makes sense to remove that too. All darwin targets are PIE by default, so we don't technically need the flags, but I'd be more comfortable if we hooked up the OBJCXXFLAGS in case future ones are added. -------- The second commit addresses the last point, but could probably use a better commit message. These warnings are removed from autogen output: ``` Makefile.am:12: warning: user variable 'GZIP_ENV' defined here ... /usr/local/Cellar/automake/1.15.1/share/automake-1.15/am/distdir.am: ... overrides Automake variable 'GZIP_ENV' defined here src/Makefile.am: installing 'build-aux/depcomp' src/Makefile.am:503: warning: user target '.mm.o' defined here ... /usr/local/Cellar/automake/1.15.1/share/automake-1.15/am/depend2.am: ... overrides Automake target '.mm.o' defined here ``` Tree-SHA512: bd59df5f6d3aafe35d5e36925bfe61cc71e774583a0438d7dd946c9e7ecf6e59d42f90a58b8cfef0faa404c81050338ad4cefe721b4a949af881e73b6ab254d4
282 lines
10 KiB
Makefile
282 lines
10 KiB
Makefile
# 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
|
|
if ENABLE_MAN
|
|
SUBDIRS += doc/man
|
|
endif
|
|
.PHONY: deploy FORCE
|
|
|
|
export PYTHONPATH
|
|
|
|
if BUILD_BITCOIN_LIBS
|
|
pkgconfigdir = $(libdir)/pkgconfig
|
|
pkgconfig_DATA = libbitcoinconsensus.pc
|
|
endif
|
|
|
|
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
|
|
DIST_SHARE = \
|
|
$(top_srcdir)/share/genbuild.sh \
|
|
$(top_srcdir)/share/rpcuser
|
|
|
|
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.info \
|
|
test_bitcoin_filtered.info total_coverage.info \
|
|
baseline_filtered.info functional_test.info functional_test_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 $@
|
|
|
|
$(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) >$@
|
|
|
|
if BUILD_DARWIN
|
|
$(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)
|
|
else
|
|
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)
|
|
endif
|
|
|
|
if TARGET_DARWIN
|
|
appbundle: $(OSX_APP_BUILT)
|
|
deploy: $(OSX_DMG)
|
|
endif
|
|
if TARGET_WINDOWS
|
|
deploy: $(BITCOIN_WIN_INSTALLER)
|
|
endif
|
|
|
|
$(BITCOIN_QT_BIN): FORCE
|
|
$(MAKE) -C src qt/$(@F)
|
|
|
|
$(BITCOIND_BIN): FORCE
|
|
$(MAKE) -C src $(@F)
|
|
|
|
$(BITCOIN_CLI_BIN): FORCE
|
|
$(MAKE) -C src $(@F)
|
|
|
|
if USE_LCOV
|
|
LCOV_FILTER_PATTERN=-p "/usr/include/" -p "src/leveldb/" -p "src/bench/" -p "src/univalue" -p "src/crypto/ctaes" -p "src/secp256k1"
|
|
|
|
baseline.info:
|
|
$(LCOV) -c -i -d $(abs_builddir)/src -o $@
|
|
|
|
baseline_filtered.info: baseline.info
|
|
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
|
|
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
|
|
|
test_bitcoin.info: baseline_filtered.info
|
|
$(MAKE) -C src/ check
|
|
$(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src -t test_bitcoin -o $@
|
|
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src
|
|
|
|
test_bitcoin_filtered.info: test_bitcoin.info
|
|
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
|
|
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
|
|
|
functional_test.info: test_bitcoin_filtered.info
|
|
-@TIMEOUT=15 test/functional/test_runner.py $(EXTENDED_FUNCTIONAL_TESTS)
|
|
$(LCOV) -c $(LCOV_OPTS) -d $(abs_builddir)/src --t functional-tests -o $@
|
|
$(LCOV) -z $(LCOV_OPTS) -d $(abs_builddir)/src
|
|
|
|
functional_test_filtered.info: functional_test.info
|
|
$(abs_builddir)/contrib/filter-lcov.py $(LCOV_FILTER_PATTERN) $< $@
|
|
$(LCOV) -a $@ $(LCOV_OPTS) -o $@
|
|
|
|
test_bitcoin_coverage.info: baseline_filtered.info test_bitcoin_filtered.info
|
|
$(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -o $@
|
|
|
|
total_coverage.info: test_bitcoin_filtered.info functional_test_filtered.info
|
|
$(LCOV) -a $(LCOV_OPTS) baseline_filtered.info -a test_bitcoin_filtered.info -a functional_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 $(LCOV_OPTS) $< -o $(@D)
|
|
@touch $@
|
|
|
|
total.coverage/.dirstamp: total_coverage.info
|
|
$(GENHTML) -s $(LCOV_OPTS) $< -o $(@D)
|
|
@touch $@
|
|
|
|
cov: test_bitcoin.coverage/.dirstamp total.coverage/.dirstamp
|
|
|
|
endif
|
|
|
|
dist_noinst_SCRIPTS = autogen.sh
|
|
|
|
EXTRA_DIST = $(DIST_SHARE) test/functional/test_runner.py test/functional $(DIST_CONTRIB) $(DIST_DOCS) $(WINDOWS_PACKAGING) $(OSX_PACKAGING) $(BIN_CHECKS)
|
|
|
|
EXTRA_DIST += \
|
|
test/util/bitcoin-util-test.py \
|
|
test/util/data/bitcoin-util-test.json \
|
|
test/util/data/blanktxv1.hex \
|
|
test/util/data/blanktxv1.json \
|
|
test/util/data/blanktxv2.hex \
|
|
test/util/data/blanktxv2.json \
|
|
test/util/data/tt-delin1-out.hex \
|
|
test/util/data/tt-delin1-out.json \
|
|
test/util/data/tt-delout1-out.hex \
|
|
test/util/data/tt-delout1-out.json \
|
|
test/util/data/tt-locktime317000-out.hex \
|
|
test/util/data/tt-locktime317000-out.json \
|
|
test/util/data/tx394b54bb.hex \
|
|
test/util/data/txcreate1.hex \
|
|
test/util/data/txcreate1.json \
|
|
test/util/data/txcreate2.hex \
|
|
test/util/data/txcreate2.json \
|
|
test/util/data/txcreatedata1.hex \
|
|
test/util/data/txcreatedata1.json \
|
|
test/util/data/txcreatedata2.hex \
|
|
test/util/data/txcreatedata2.json \
|
|
test/util/data/txcreatedata_seq0.hex \
|
|
test/util/data/txcreatedata_seq0.json \
|
|
test/util/data/txcreatedata_seq1.hex \
|
|
test/util/data/txcreatedata_seq1.json \
|
|
test/util/data/txcreatemultisig1.hex \
|
|
test/util/data/txcreatemultisig1.json \
|
|
test/util/data/txcreatemultisig2.hex \
|
|
test/util/data/txcreatemultisig2.json \
|
|
test/util/data/txcreatemultisig3.hex \
|
|
test/util/data/txcreatemultisig3.json \
|
|
test/util/data/txcreatemultisig4.hex \
|
|
test/util/data/txcreatemultisig4.json \
|
|
test/util/data/txcreatemultisig5.json \
|
|
test/util/data/txcreateoutpubkey1.hex \
|
|
test/util/data/txcreateoutpubkey1.json \
|
|
test/util/data/txcreateoutpubkey2.hex \
|
|
test/util/data/txcreateoutpubkey2.json \
|
|
test/util/data/txcreateoutpubkey3.hex \
|
|
test/util/data/txcreateoutpubkey3.json \
|
|
test/util/data/txcreatescript1.hex \
|
|
test/util/data/txcreatescript1.json \
|
|
test/util/data/txcreatescript2.hex \
|
|
test/util/data/txcreatescript2.json \
|
|
test/util/data/txcreatescript3.hex \
|
|
test/util/data/txcreatescript3.json \
|
|
test/util/data/txcreatescript4.hex \
|
|
test/util/data/txcreatescript4.json \
|
|
test/util/data/txcreatesignv1.hex \
|
|
test/util/data/txcreatesignv1.json \
|
|
test/util/data/txcreatesignv2.hex
|
|
|
|
CLEANFILES = $(OSX_DMG) $(BITCOIN_WIN_INSTALLER)
|
|
|
|
.INTERMEDIATE: $(COVERAGE_INFO)
|
|
|
|
DISTCHECK_CONFIGURE_FLAGS = --enable-man
|
|
|
|
clean-local:
|
|
rm -rf coverage_percent.txt test_bitcoin.coverage/ total.coverage/ test/tmp/ cache/ $(OSX_APP)
|
|
rm -rf test/functional/__pycache__
|