docs/BUILD.md
This project uses CMake and Hunter package manager.
wget https://github.com/Kitware/CMake/releases/download/v3.21.5/cmake-3.21.5.tar.gz
tar -zxvf cmake-3.21.5.tar.gz
cd cmake-3.21.5
./bootstrap
make
sudo make install
-DETHDBUS. E.g. on Ubuntu run:sudo apt install libdbus-1-dev
If you're planning to use OpenCL on Linux you have to install the OpenGL libraries. E.g. on Ubuntu run:
sudo apt-get install mesa-common-dev
If you want to use locally installed ROCm-OpenCL package, use build flag -DUSE_SYS_OPENCL=ON with cmake config.
Make sure git submodules are up to date:
git submodule update --init --recursive
Create a build directory:
mkdir build
cd build
Configure the project with CMake. Check out the additional configuration options.
cmake ..
Note: On Windows, it's possible to have issues with VS 2017 default compilers, due to CUDA expecting a specific toolset version; in that case, use the VS 2017 installer to get the VS 2015 compilers and pass the -T v140 option:
cmake .. -G "Visual Studio 15 2017 Win64"
# or this if you have build errors in the CUDA step
cmake .. -G "Visual Studio 15 2017 Win64" -T v140
Build the project using CMake Build Tool Mode. This is a portable variant of make.
cmake --build .
Note: On Windows, it is possible to have compiler issues if you don't specify the build config. In that case use:
cmake --build . --config Release
Generate the executable
make all
will find the executable in ethminer/ethminer in the build directory
(Optional, Linux only) Install the built executable:
sudo make install
Complete sample Windows batch file - adapt it to your system. Assumes that:
@echo off
setlocal
rem add MSVC in PATH
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat"
rem add Perl in PATH; it's needed for OpenSSL build
set "PERL_PATH=C:\Perl\perl\bin"
set "PATH=%PERL_PATH%;%PATH%"
rem switch to ethminer's source folder
cd "%~dp0\ethminer\"
if not exist "build\" mkdir "build\"
rem For CUDA 9.x pass also `-T v140`
cmake -G "Visual Studio 15 2017 Win64" -H. -Bbuild -DETHASHCL=ON -DETHASHCUDA=ON -DAPICORE=ON ..
cmake --build . --config Release --target package
endlocal
pause
Pass these options to CMake configuration command, e.g.
cmake .. -DETHASHCUDA=ON -DETHASHCL=OFF
-DETHASHCL=ON - enable OpenCL mining, ON by default.-DETHASHCUDA=ON - enable CUDA mining, ON by default.-DAPICORE=ON - enable API Server, ON by default.-DBINKERN=ON - install AMD binary kernels, ON by default.-DETHDBUS=ON - enable D-Bus support, OFF by default.-DUSE_SYS_OPENCL=ON - Use system OpenCL, OFF by default, unless on macOS. Specify to use local ROCm-OpenCL package.If you want to install dependencies yourself or use system package manager you can disable Hunter by adding
-DHUNTER_ENABLED=OFF
to the configuration options.