Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update macOS Build Instructions for Dependency and Configuration IssuesMac os build fix #1463

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 51 additions & 37 deletions doc/build-macos.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,29 @@ macOS 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 macOS command line tools:
## Preparation
1. **Install macOS Command Line Tools** (if not already installed):
```bash
xcode-select --install
```
When the popup appears, click `Install`.

`xcode-select --install`

When the popup appears, click `Install`.
2. **Install Homebrew** (if not already installed):
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
firstcryptoman marked this conversation as resolved.
Show resolved Hide resolved

Then install [Homebrew](http://brew.sh).
## Dependencies
Install the required dependencies using Homebrew:
```bash
brew install automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf python qt libevent qrencode python-setuptools m4
```
levonpetrosyan93 marked this conversation as resolved.
Show resolved Hide resolved

Dependencies
----------------------

brew install automake berkeley-db4 libtool boost miniupnpc openssl pkg-config protobuf python qt libevent qrencode

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

brew install librsvg
brew install librsvg

Berkley DB
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This renders as a second-level heading that also contains the Firo Core build instructions, which is probably not what was intended. It might be more clear to have it under the dependency header, and then have the build instructions as a higher-level heading.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That’s an interesting point. My tests were on Macs that all had Xcode installed, which likely explains why I didn’t encounter the same problem. Considering the size of the full Xcode, its installation is mostly unnecessary for users who are just trying to manually build the project. I’ll continue to look into this issue to find a workaround. If I can't find a better solution, I'll update our documentation to suggest installing Xcode. Also, I’ve taken your advice and reorganized the build instructions for clearer navigation. Thanks for your insightful comments!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Plus it's apparently necessary to obtain an Apple ID in order to even obtain Xcode, which not all users may wish to do, and which imposes another effective build requirement.

------------------------
Expand All @@ -29,30 +34,40 @@ It is recommended to use Berkeley DB 4.8. If you have to build it yourself, you

from the root of the repository.

Note: You only need Berkeley DB if the wallet is enabled (see Disable-wallet mode).


Build Firo Core
------------------------
1. Build Firo-core:

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

In case you want to build the disk image with `make deploy` (.dmg / optional), by passing `--with-gui` to configure.

You can disable the GUI build by passing `--without-gui` to configure.
*Note*: You only need Berkeley DB if the wallet is enabled (see Disable-wallet mode).

#### Download the Source
Before building, download the Firo source code:
```bash
git clone https://github.com/firoorg/firo
cd firo
```

#### Build Firo Core
1. **Prepare the build environment**:
```bash
cd depends
make
cd ..
```

2. **Configure and build Firo-core**:
```bash
./autogen.sh
./configure --prefix=`pwd`/depends/`depends/config.guess`
make
```

3. (optional) **It is recommended to build and run the unit tests**:

```bash
./configure --prefix=`pwd`/depends/`depends/config.guess` --enable-tests
make check
```
levonpetrosyan93 marked this conversation as resolved.
Show resolved Hide resolved

./autogen.sh
./configure
make
4. (optional)**You can also create a .dmg that contains the .app bundle (optional)**:

2. It is recommended to build and run the unit tests:

` make check`

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

` make deploy`
make deploy


Running
Expand Down Expand Up @@ -86,7 +101,7 @@ Download and install the community edition of [Qt Creator](https://www.qt.io/dow
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`
2. Do a proper ``` ./configure --prefix=`pwd`/depends/`depends/config.guess` --enable-debug ```
firstcryptoman marked this conversation as resolved.
Show resolved Hide resolved
3. In Qt Creator do "New Project" -> Import Project -> Import Existing Project
4. Enter "bitcoin-qt" as project name, enter `src/qt` as location
5. Leave the file selection as it is
Expand All @@ -99,7 +114,6 @@ Uncheck everything except Qt Creator during the installation process.
Notes
-----

* Tested on macOS 10.11 through 10.14 on 64-bit Intel processors only.

* Building with downloaded Qt binaries is not officially supported. See the notes in [#7714](https://github.com/bitcoin/bitcoin/issues/7714)
* Tested on macOS 10.11 through 10.14 on 64-bit Intel processors, and on macOS 14.5 on an M2 chip.

* Building with downloaded Qt binaries is not officially supported. See the notes in [#7714](https://github.com/bitcoin/bitcoin/issues/7714)