aboutsummaryrefslogtreecommitdiff
path: root/INSTALL.md
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL.md')
-rw-r--r--INSTALL.md83
1 files changed, 79 insertions, 4 deletions
diff --git a/INSTALL.md b/INSTALL.md
index b6602e0f4..51fb2dc2c 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -1,5 +1,80 @@
-Building Dogecoin
-================
+# Installing Dogecoin Core
-See doc/build-*.md for instructions on building the various
-elements of the Dogecoin Core reference implementation of Dogecoin.
+### Pre-compiled binaries
+
+The easiest way to install the latest version of the Dogecoin Core software is
+by to download the latest precompiled binaries for your platform from the
+[release page](https://github.com/dogecoin/dogecoin/releases). Currently,
+binaries are released for the following platforms:
+
+- Windows, 64-bit and 32-bit
+- Linux, 64-bit and 32-bit
+- MacOS, Intel 64-bit
+- ARM, 64-bit and 32-bit Linux
+
+These binaries are created and verified by multiple independent people, to
+ensure honest and malware-free releases. See
+[the gitian building documentation](doc/gitian-building.md) for more information
+regarding that process.
+
+### Compiling using packaged dependencies
+
+It is possible to build your own copy of Dogecoin Core with the exact, tested,
+dependencies, as used for the binary releases, by using the
+[depends system](depends/description.md). Please refer to the
+[depends README](depends/README.md) for instructions to build Dogecoin using
+these dependencies.
+
+### Compiling using system-provided libraries
+
+ The following are developer notes on how to build Dogecoin on your native
+ platform, using the dependencies as provided by your system's package manager.
+ They are not complete guides, but include notes on the necessary libraries,
+ compile flags, etc.
+
+ - [Unix Build Notes](doc/build-unix.md)
+ - [Windows Build Notes](doc/build-windows.md)
+ - [macOS Build Notes](doc/Building-Dogecoin-1.14-for-Mac.md)
+
+### Testing
+
+Unit tests can be compiled and ran with `make check`. Further details on running
+and extending unit tests can be found in [/src/test/README.md](/src/test/README.md).
+
+There are also [regression and integration tests](/qa) written in Python, that
+are run automatically on the build server. These tests can be run (if the
+[test dependencies](/qa) are installed) with: `qa/pull-tester/rpc-tests.py`
+
+### Tips and tricks
+
+**compiling for debugging**
+
+Run `configure` with the `--enable-debug` option, then `make`. Or run `configure` with
+`CXXFLAGS="-g -ggdb -O0"` or whatever debug flags you need.
+
+**debug.log**
+
+If the code is behaving strangely, take a look in the debug.log file in the data directory;
+error and debugging messages are written there.
+
+The `-debug=...` command-line option controls debugging; running with just `-debug` will turn
+on all categories (and give you a very large debug.log file).
+
+The Qt code routes `qDebug()` output to debug.log under category "qt": run with `-debug=qt`
+to see it.
+
+**testnet and regtest modes**
+
+Run with the `-testnet` option to run with "play dogecoins" on the test network, if you
+are testing multi-machine code that needs to operate across the internet.
+
+If you are testing something that can run on one machine, run with the `-regtest` option.
+In regression test mode, blocks can be created on-demand; see qa/rpc-tests/ for tests
+that run in `-regtest` mode.
+
+**DEBUG_LOCKORDER**
+
+Dogecoin Core is a multithreaded application, and deadlocks or other multithreading bugs
+can be very difficult to track down. Compiling with `-DDEBUG_LOCKORDER` (`configure
+CXXFLAGS="-DDEBUG_LOCKORDER -g"`) inserts run-time checks to keep track of which locks
+are held, and adds warnings to the debug.log file if inconsistencies are detected.