Skip to content

Latest commit

 

History

History
145 lines (94 loc) · 4.85 KB

build-osx.md

File metadata and controls

145 lines (94 loc) · 4.85 KB

Mac OS X Build Instructions and Notes

The commands in this guide should be executed in a Terminal application. The built-in one is located in /Applications/Utilities/Terminal.app.

Preparation

Install the OS X command line tools:

xcode-select --install

When the popup appears, click Install.

Then install Homebrew.

Dependencies

brew install automake berkeley-db4 libtool boost --c++11 miniupnpc openssl pkg-config protobuf qt libevent

If you want to build the disk image with make deploy (.dmg / optional), you need RSVG

brew install librsvg

NOTE: Building with Qt4 is still supported, however, could result in a broken UI. Building with Qt5 is recommended.

Build Ion Core

  1. Clone the ion source code and cd into ion

     git clone https://github.com/cevap/ion
     cd ion
    
  2. Build ion-core:

    Configure and build the headless ion binaries as well as the GUI (if Qt is found).

    You can disable the GUI build by passing --without-gui to configure.

    ./autogen.sh
    ./configure
    make
    
  3. It is recommended to build and run the unit tests:

    make check
    
  4. You can also create a .dmg that contains the .app bundle (optional):

    make deploy
    

Running

Ion Core is now available at ./src/iond

Before running, it's recommended you create an RPC configuration file.

echo -e "rpcuser=ionrpc\nrpcpassword=$(xxd -l 16 -p /dev/urandom)" > "/Users/${USER}/Library/Application Support/Ion/ioncoin.conf"

chmod 600 "/Users/${USER}/Library/Application Support/Ion/ioncoin.conf"

The first time you run iond, it will start downloading the blockchain. This process could take several hours.

You can monitor the download process by looking at the debug.log file:

tail -f $HOME/Library/Application\ Support/Ion/debug.log

Other commands:

./src/iond -daemon # Starts the ion daemon.
./src/ion-cli --help # Outputs a list of command-line options.
./src/ion-cli help # Outputs a list of RPC commands when the daemon is running.

Using Qt Creator as IDE

You can use Qt Creator as an IDE, for ion development. Download and install the community edition of Qt Creator. Uncheck everything except Qt Creator during the installation process.

  1. Make sure you installed everything through Homebrew mentioned above
  2. Do a proper ./configure --enable-debug
  3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
  4. Enter "ion-qt" as project name, enter src/qt as location
  5. Leave the file selection as it is
  6. Confirm the "summary page"
  7. In the "Projects" tab select "Manage Kits..."
  8. Select the default "Desktop" kit and select "Clang (x86 64bit in /usr/bin)" as compiler
  9. Select LLDB as debugger (you might need to set the path to your installation)
  10. Start debugging with Qt Creator

Cross-compilation

These steps can be performed on, for example, an Ubuntu VM. The depends system will also work on other Linux distributions, however the commands for installing the toolchain will be different.

First, install the general dependencies:

sudo apt-get install build-essential libtool autotools-dev automake pkg-config bsdmainutils curl

A host toolchain (build-essential) is necessary because some dependency packages (such as protobuf) need to build host utilities that are used in the build process.

OSX SDKs

All Apple builds must target an Apple SDK. From this SDK, a single directory is needed:

Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk

This folder must be placed in the depends folder. For more information on the full process for obtaining this folder, see here An overview of SDKs can be found here

The SDK can be acquired as follows:

mkdir -p depends/SDKs
cd depends/SDKs
curl -sL https://github.com/phracker/MacOSX-SDKs/releases/download/MacOSX10.11.sdk/MacOSX10.11.sdk.tar.xz | tar xJ
cd ..

Building for OSX from Linux

To build executables for OSX, install the following dependencies:

sudo apt-get install librsvg2-bin libtiff-tools cmake imagemagick libcap-dev libz-dev libbz2-dev python python-dev python-setuptools fonts-tuffy

Then build using:

cd depends
make HOST=x86_64-apple-darwin11
cd ..
./autogen.sh # not required when building from tarball
CONFIG_SITE=$PWD/depends/x86_64-apple-darwin11/share/config.site ./configure --prefix=/
make

Notes

  • Tested on OS X 10.8 through 10.12 on 64-bit Intel processors only.

  • Building with downloaded Qt binaries is not officially supported. See the notes in #7714