From b50ac8f73e3e3aa47be567f3fcd5b7c8933c49db Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Mon, 10 Oct 2011 11:13:32 -0400 Subject: [PATCH] Mac OSX release process changes Rename App Bundle "Bitcoin-Qt.app" instead of "Bitcoin Qt" for consistency with Windows/Linux. Update create_osx_dmg.sh script to use macdeployqt tool. Add ifdef STATIC to makefile.osx to build bitcoind static or dynamic. --- bitcoin-qt.pro | 6 ++++- contrib/create_osx_dmg.sh | 51 +++++++++++++++------------------------ src/makefile.osx | 21 ++++++++++++++-- 3 files changed, 43 insertions(+), 35 deletions(-) diff --git a/bitcoin-qt.pro b/bitcoin-qt.pro index 834e3115..42d721e9 100644 --- a/bitcoin-qt.pro +++ b/bitcoin-qt.pro @@ -199,6 +199,10 @@ isEmpty(BDB_LIB_PATH) { macx:BDB_LIB_PATH = /opt/local/lib/db48 } +isEmpty(BDB_LIB_SUFFIX) { + macx:BDB_LIB_SUFFIX = -4.8 +} + isEmpty(BDB_INCLUDE_PATH) { macx:BDB_INCLUDE_PATH = /opt/local/include/db48 } @@ -217,7 +221,7 @@ windows:RC_FILE = src/qt/res/bitcoin-qt.rc macx:DEFINES += MAC_OSX MSG_NOSIGNAL=0 BOOST_FILESYSTEM_VERSION=3 macx:ICON = src/qt/res/icons/bitcoin.icns -macx:TARGET = "Bitcoin Qt" +macx:TARGET = "Bitcoin-Qt" # Set libraries and includes at end, to use platform-defined defaults if not overridden INCLUDEPATH += $$BOOST_INCLUDE_PATH $$BDB_INCLUDE_PATH $$OPENSSL_INCLUDE_PATH diff --git a/contrib/create_osx_dmg.sh b/contrib/create_osx_dmg.sh index af164e56..d26dcc82 100755 --- a/contrib/create_osx_dmg.sh +++ b/contrib/create_osx_dmg.sh @@ -24,37 +24,24 @@ else TOP=$1 fi -CONTRIB=$TOP/contrib -BUILD_DIR=/tmp/bitcoin_osx_build - -# First, compile bitcoin and bitcoind -cd "$TOP/src" -if [ ! -e bitcoin ]; then make -f makefile.osx bitcoin; fi -if [ ! -e bitcoind ]; then make -f makefile.osx bitcoind; fi -strip bitcoin bitcoind - -mkdir -p "$BUILD_DIR" -cd "$BUILD_DIR" - -rm -f Bitcoin.sparseimage -hdiutil convert "$CONTRIB/BitcoinTemplate.dmg" -format UDSP -o Bitcoin -hdiutil mount Bitcoin.sparseimage - -# Copy over placeholders in /Volumes/Bitcoin -cp "$TOP/src/bitcoind" /Volumes/Bitcoin/ -cp "$TOP/src/bitcoin" /Volumes/Bitcoin/Bitcoin.app/Contents/MacOS/ - -# Create source code .zip +# Create Bitcoin-Qt.app cd "$TOP" -git archive -o /Volumes/Bitcoin/bitcoin.zip $(git branch 2>/dev/null|grep -e ^* | cut -d ' ' -f 2) - -# Fix permissions -chmod -Rf go-w /Volumes/Bitcoin - -cd "$BUILD_DIR" -hdiutil eject /Volumes/Bitcoin -rm -f "$CWD/Bitcoin.dmg" -hdiutil convert Bitcoin.sparseimage -format UDBZ -o "$CWD/Bitcoin.dmg" +if [ ! -e Makefile ]; then qmake bitcoin-qt.pro; fi +make +macdeployqt Bitcoin-Qt.app +# Workaround a bug in macdeployqt: https://bugreports.qt.nokia.com/browse/QTBUG-21913 +# (when fixed, this won't be necessary) +cp /opt/local/lib/db48/libdb_cxx-4.8.dylib Bitcoin-Qt.app/Contents/Frameworks/ +install_name_tool -id @executable_path/../Frameworks/libdb_cxx-4.8.dylib \ + Bitcoin-Qt.app/Contents/Frameworks/libdb_cxx-4.8.dylib +install_name_tool -change libqt.3.dylib \ + @executable_path/../Frameworks/libqt.3.dylib \ + Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt + +# Create a .dmg +macdeployqt Bitcoin-Qt.app -dmg + +# Compile bitcoind +cd "$TOP/src" +STATIC=1 make -f makefile.osx -cd "$CWD" -rm -rf "$BUILD_DIR" diff --git a/src/makefile.osx b/src/makefile.osx index 6269d93b..7830f3ba 100644 --- a/src/makefile.osx +++ b/src/makefile.osx @@ -19,7 +19,19 @@ LIBPATHS= \ USE_UPNP:=1 -LIBS= -dead_strip \ +LIBS= -dead_strip +ifdef STATIC +# Build STATIC if you are redistributing the bitcoind binary +LIBS += \ + $(DEPSDIR)/lib/db48/libdb_cxx-4.8.a \ + $(DEPSDIR)/lib/libboost_system-mt.a \ + $(DEPSDIR)/lib/libboost_filesystem-mt.a \ + $(DEPSDIR)/lib/libboost_program_options-mt.a \ + $(DEPSDIR)/lib/libboost_thread-mt.a \ + $(DEPSDIR)/lib/libssl.a \ + $(DEPSDIR)/lib/libcrypto.a +else +LIBS += \ -ldb_cxx-4.8 \ -lboost_system-mt \ -lboost_filesystem-mt \ @@ -27,6 +39,7 @@ LIBS= -dead_strip \ -lboost_thread-mt \ -lssl \ -lcrypto +endif DEFS=-DMAC_OSX -DMSG_NOSIGNAL=0 -DUSE_SSL @@ -70,8 +83,12 @@ OBJS= \ obj/wallet.o ifdef USE_UPNP - LIBS += -lminiupnpc DEFS += -DUSE_UPNP=$(USE_UPNP) +ifdef STATIC + LIBS += $(DEPSDIR)/lib/libminiupnpc.a +else + LIBS += -lminiupnpc +endif endif