Mac OSX release process changes
authorGavin Andresen <gavinandresen@gmail.com>
Mon, 10 Oct 2011 15:13:32 +0000 (11:13 -0400)
committerGavin Andresen <gavinandresen@gmail.com>
Mon, 10 Oct 2011 15:13:32 +0000 (11:13 -0400)
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
contrib/create_osx_dmg.sh
src/makefile.osx

index 834e311..42d721e 100644 (file)
@@ -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
index af164e5..d26dcc8 100755 (executable)
@@ -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"
index 6269d93..7830f3b 100644 (file)
@@ -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