mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-08 22:08:02 +00:00
343 lines
18 KiB
Plaintext
343 lines
18 KiB
Plaintext
######################################################################################
|
||
# #
|
||
# Native WIN32 setup and build instructions (on mingw32/Windows): #
|
||
# #
|
||
######################################################################################
|
||
|
||
(See bottom of file for steps to cross-build for Win32 from Linux.)
|
||
|
||
**************************************************************************************
|
||
* Introduction *
|
||
**************************************************************************************
|
||
The following instructions have been tested on both Windows 7 and Windows XP.
|
||
Most of what is described below (copying files, downloading files, etc.) can be done
|
||
directly in the MinGW MSYS shell; these instructions do not do so because package
|
||
versions and links change over time. The best way is to use your browser, go to the
|
||
links directly, and see for yourself which versions you want to install.
|
||
Winrar was used to do the extracting of archive files in the making of this guide.
|
||
|
||
If you think that this documentation was helpful and you wish to donate, you can
|
||
do so at the following address. 12KaKtrK52iQjPdtsJq7fJ7smC32tXWbWr
|
||
|
||
**************************************************************************************
|
||
* A tip that might help you along the way *
|
||
**************************************************************************************
|
||
Enable "QuickEdit Mode" in your Command Prompt Window or MinGW Command Prompt
|
||
Window (No need to go into the context menu to choose edit-mark/copy/paste):
|
||
Right-click on the title bar and click Properties. Under the Options tab, check
|
||
the box for "QuickEdit Mode". Alternately, if you want this change to be
|
||
permanent on all of your Command Prompt Windows; you can click Defaults instead
|
||
of Properties as described above. Now you can drag and select text you want to
|
||
copy, right-click to copy the text to the clipboard and right-click once again to
|
||
paste it at the desired location. You could for example, copy some text from this
|
||
document to the clipboard and right click in your Command Prompt Window to paste
|
||
what you copied.
|
||
|
||
**************************************************************************************
|
||
* Install mingw32 *
|
||
**************************************************************************************
|
||
Download and install the following Mingw32 version by doing a google search for:
|
||
"mingw-get-inst-20120426"
|
||
This is currently a known working version, but this could be a different version
|
||
later.
|
||
|
||
During installation, select all the check boxes (excluding "Fortran Compiler") so that
|
||
everything is installed.
|
||
|
||
**************************************************************************************
|
||
* Run the MSYS shell for the first time to create your user directory *
|
||
**************************************************************************************
|
||
(Start Icon/keyboard key ==> All Programs ==> MinGW ==> MinGW Shell).
|
||
This will create your user directory for you.
|
||
|
||
**************************************************************************************
|
||
* Install pthreads *
|
||
**************************************************************************************
|
||
Type the lines below to install pthreads:
|
||
mingw-get install pthreads
|
||
|
||
**************************************************************************************
|
||
* Install libpdcurses *
|
||
**************************************************************************************
|
||
Type the lines below to install libpdcurses.
|
||
mingw-get install mingw32-libpdcurses
|
||
mingw-get install mingw32-pdcurses
|
||
Ctrl-D or typing "logout" and pressing the enter key should get you out of the
|
||
window.
|
||
|
||
**************************************************************************************
|
||
* Download or copy sgminer source to your MSYS working directory *
|
||
**************************************************************************************
|
||
|
||
Download sgminer from source. In mingw32, type:
|
||
git clone git://github.com/sgminer-dev/sgminer.git
|
||
|
||
or
|
||
|
||
Copy sgminer source code directory into:
|
||
\MinGW\msys\1.0\home\(folder with your user name)
|
||
|
||
For SGMINER it will look like:
|
||
\MinGW\msys\1.0\home\(folder with your user name)\Sgminer-Master\
|
||
when unzipped.
|
||
|
||
**************************************************************************************
|
||
* Install AMD APP SDK, latest version (only if you want GPU mining) *
|
||
**************************************************************************************
|
||
Go to this url for the latest AMD APP SDK:
|
||
http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/
|
||
Go to this url for legacy AMD APP SDK's:
|
||
http://developer.amd.com/tools-and-sdks/opencl-zone/amd-accelerated-parallel-processing-app-sdk/download-archive/
|
||
Download and install the Windows 32 bit version.
|
||
Copy the folders in \Program Files (x86)\AMD APP\include to \MinGW\include
|
||
Copy \Program Files (x86)\AMD APP\lib\x86\libOpenCL.a to \MinGW\lib
|
||
Note: If you are on a 32 bit version of windows "Program Files (x86)" will be
|
||
"Program Files".
|
||
Note2: If you update your APP SDK later you might want to recopy the above files
|
||
|
||
**************************************************************************************
|
||
* Install AMD ADL SDK, latest version (only if you want GPU monitoring) *
|
||
**************************************************************************************
|
||
|
||
Warning: sgminer 5.0.0 does NOT yet support ADL SDK 7.0, so you will have to install the version 6.0 instead.
|
||
This may change in a future version of sgminer.
|
||
|
||
Go to this url ==> http://developer.amd.com/tools/graphics-development/display-library-adl-sdk/
|
||
Download and unzip the file you downloaded.
|
||
Pull adl_defines.h, adl_sdk.h, and adl_structures.h out of the include folder
|
||
Put those files into the ADL_SDK folder in your source tree as shown below.
|
||
\MinGW\msys\1.0\home\(folder with your user name)\sgminer\ADL_SDK
|
||
|
||
**************************************************************************************
|
||
* Install GTK-WIN, required for Pkg-config in the next step *
|
||
**************************************************************************************
|
||
Go to this url ==> http://sourceforge.net/projects/gtk-win/
|
||
Download the file.
|
||
After you have downloaded the file Double click/run it and this will install GTK+
|
||
I chose all the selection boxes when I installed.
|
||
Copy libglib-2.0-0.dll and intl.dll from \Program Files (x86)\gtk2-runtime\bin to
|
||
\MinGW\bin
|
||
Note: If you are on a 32 bit version of windows "Program Files (x86)" will be
|
||
"Program Files".
|
||
|
||
**************************************************************************************
|
||
* Install pkg-config *
|
||
**************************************************************************************
|
||
Go to this url ==> http://www.gtk.org/download/win32.php
|
||
Scroll down to where it shows pkg-cfg under GTK+ 2.x
|
||
Download the file from the "Tool" link. Extract "pkg-config.exe" from bin and place in
|
||
your \MinGW\bin directory.
|
||
Download the file from the "Dev" link. Extract "pkg.m4" from share\aclocal and place
|
||
in your \MingW\share\aclocal directory.
|
||
|
||
**************************************************************************************
|
||
* Install libcurl *
|
||
**************************************************************************************
|
||
Go to this url ==> http://curl.haxx.se/download.html#Win32
|
||
At the section where it says "Win32 - Generic", Click on the link that indicates
|
||
Win32 2000.XP 7.xx.x libcurl SSL and download it.
|
||
Extract the files that are in the zip (bin, include, and lib) to their respective
|
||
locations in MinGW (\MinGW\bin, \MinGW\include, and \MinGW\lib).
|
||
Edit the file \MinGW\lib\pkgconfig\libcurl.pc and search for the line that ends
|
||
with "-lcurl", and make it say "-lcurl -lcurldll".
|
||
Ref. http://old.nabble.com/gcc-working-with-libcurl-td20506927.html
|
||
|
||
**************************************************************************************
|
||
* Install jansson in the submodules of sgminer *
|
||
**************************************************************************************
|
||
|
||
Go to this url:
|
||
http://www.digip.org/jansson/
|
||
|
||
Download the latest version of jansson available.
|
||
Unzip, extract and copy all the content of the janson-x.x folder into your folder:
|
||
\MinGW\msys\1.0\home\(folder with your user name)\sgminer\submodules\jansson
|
||
|
||
In mingw32, go to your jansson folder. Usually by typing:
|
||
cd sgminer/submodules/jansson
|
||
|
||
Now install jansson by typing:
|
||
autoreconf -i --force --install
|
||
./configure
|
||
make
|
||
make install
|
||
|
||
**************************************************************************************
|
||
* Build sgminer.exe *
|
||
**************************************************************************************
|
||
Run the MinGW MSYS shell
|
||
(Start Icon/keyboard key ==> All Programs ==> MinGW ==> MinGW Shell).
|
||
Change the working directory to your sgminer project folder.
|
||
Example: cd sgminer-master [Enter Key] if you are unsure then type "ls -la"
|
||
Another way is to type "cd sg" and then press the tab key; It will auto fill.
|
||
Type the lines below one at a time. Look for problems after each one before going on
|
||
to the next.
|
||
|
||
adl.sh (optional - see below - skip this entirely)
|
||
autoreconf -fvi
|
||
CFLAGS="-O2 -msse2" ./configure (for GPU mining add --enable-opencl, see below: "Some ./configure options")
|
||
make
|
||
strip sgminer.exe <== only do this if you are not compiling for debugging
|
||
|
||
In the event ther are error messages, you MAY have to start from scratch by going
|
||
back to the "Install AMD APP SDK, latest version" step because these lines will modify
|
||
your files from the original form.
|
||
|
||
**************************************************************************************
|
||
* Copy files to a build directory/folder *
|
||
**************************************************************************************
|
||
Make a directory and copy the following files into it. This will be your sgminer
|
||
Folder that you use for mining. Remember the .cl filenames could change on later
|
||
releases. If you installed a different version of libcurl then some of those dll's
|
||
may be different as well.
|
||
sgminer.exe from \MinGW\msys\1.0\home\(username)\sgminer
|
||
kernel folder from \MinGW\msys\1.0\home\(username)\sgminer
|
||
libcurl.dll from \MinGW\bin
|
||
libidn-11.dll from \MinGW\bin
|
||
libeay32.dll from \MinGW\bin
|
||
ssleay32.dll from \MinGW\bin
|
||
libpdcurses.dll from \MinGW\bin
|
||
pthreadGC2.dll from \MinGW\bin
|
||
zlib1.dll from \MinGW\bin
|
||
doc folder from \MinGW\msys\1.0\home\(username)\sgminer (optional)
|
||
README.md from \MinGW\msys\1.0\home\(username)\sgminer (optional)
|
||
AUTHORS.md from \MinGW\msys\1.0\home\(username)\sgminer (optional)
|
||
ChangeLog from \MinGW\msys\1.0\home\(username)\sgminer (optional)
|
||
COPYING from \MinGW\msys\1.0\home\(username)\sgminer (optional)
|
||
example.conf from \MinGW\msys\1.0\home\(username)\sgminer (optional)
|
||
NEWS.md from \MinGW\msys\1.0\home\(username)\sgminer (optional)
|
||
|
||
**************************************************************************************
|
||
* Optional - Install Git into MinGW/MSYS *
|
||
**************************************************************************************
|
||
Go to this url ==> http://code.google.com/p/msysgit/
|
||
Click on the Downloads tab.
|
||
Download the latest "Portable" git archive.
|
||
Extract the git*.exe files from the bin folder and put them into \MinGW\bin.
|
||
Extract the share\git-core folder and place it into \MinGW\share.
|
||
After the previous step you should have a folder called \MinGW\share\git-core.
|
||
To test if it is working, open a MinGW shell and type the following:
|
||
git config -–global core.autocrlf false (note: one time run only)
|
||
git clone git://github.com/sgminer-dev/sgminer.git
|
||
|
||
If you simply just want to update the source after you have already cloned, type:
|
||
git pull
|
||
"git pull" did not work for me. Try the following which does the same thing:
|
||
git fetch && git merge FETCH_HEAD
|
||
|
||
Now you can get the latest source directly from github.
|
||
|
||
**************************************************************************************
|
||
* Optional - Make a .sh file to automate copying over ADL files *
|
||
**************************************************************************************
|
||
Make a folder/directory in your home folder and name it ADL_SDK.
|
||
(ref: \MinGW\msys\1.0\home\(folder with your user name)\ADL_SDK)
|
||
Copy the ADL .h files into that folder/directory.
|
||
Open your favorite text editor and type the following into it.
|
||
cp -av ../ADL_SDK/*.h ADL_SDK
|
||
Save the file as "adl.sh" and then place the file into "\MinGW\msys\1.0\bin".
|
||
From now on when your current working directory is the sgminer source directory
|
||
You can simply type "adl.sh" and it will place the ADL header files into place
|
||
For you. Make sure you never remove the ADL_SDK folder from your home folder.
|
||
|
||
**************************************************************************************
|
||
* Some ./configure options *
|
||
**************************************************************************************
|
||
--enable-opencl Enable support for GPU mining with opencl
|
||
--disable-adl Override detection and disable building with ADL
|
||
--disable-adl-checks Override detection and assume ADL is present
|
||
--disable-libcurl Disable building with libcurl for getwork and GBT support
|
||
--without-curses Compile support for curses TUI (default enabled)
|
||
|
||
|
||
|
||
######################################################################################
|
||
# #
|
||
# Cross-compiling for Windows from Linux #
|
||
# #
|
||
######################################################################################
|
||
|
||
It is possible to cross-compile Windows binaries from Linux. The
|
||
process is a bit different to the native steps shown above (it is also
|
||
possible to use wine and the native steps, but this is more messing
|
||
around, very slow, and not advisable.)
|
||
|
||
** Install mingw cross compiler
|
||
|
||
On Ubuntu/Debian:
|
||
|
||
sudo apt-get install mingw32
|
||
|
||
** create a directory to hold our cross-library dependencies
|
||
|
||
We'll create a directory outside the source tree to hold non-system
|
||
libraries we depend on. We could put these in
|
||
/usr/i586-mingw32msvc/lib or anywhere else, instead (though keeping it
|
||
outside /usr means we can set it up without root privileges.)
|
||
|
||
IMPORTANT: If you put this directory inside your sgminer directory,
|
||
remember 'make distclean' may delete it!
|
||
|
||
mkdir -p ../win32/lib
|
||
cd ../win32
|
||
mkdir include
|
||
mkdir bin
|
||
|
||
NB: All following steps assume you are in the "win32" directory. Adjust as necessary.
|
||
|
||
** pdcurses
|
||
|
||
wget http://internode.dl.sourceforge.net/project/pdcurses/pdcurses/3.4/pdc34dllw.zip
|
||
unzip /home/gus/Downloads/pdc34dllw.zip
|
||
mv *.h include/
|
||
mv pdcurses.lib lib/
|
||
mv pdcurses.dll bin/
|
||
|
||
** pthreads-w32
|
||
|
||
(NB: I found pthreads-w32 2.9.1 doesn't seem to work properly, transfers time out
|
||
early due to sem_timedwait exiting immediately(?))
|
||
|
||
wget -O lib/libpthread.a ftp://sourceware.org/pub/pthreads-win32/prebuilt-dll-2-8-0-release/lib/libpthreadGC2.a
|
||
wget -O include/pthread.h ftp://sourceware.org/pub/pthreads-win32/prebuilt-dll-2-8-0-release/include/pthread.h
|
||
wget -O include/sched.h ftp://sourceware.org/pub/pthreads-win32/prebuilt-dll-2-8-0-release/include/sched.h
|
||
wget -O include/semaphore.h ftp://sourceware.org/pub/pthreads-win32/prebuilt-dll-2-8-0-release/include/semaphore.h
|
||
wget -O lib/libpthread.a ftp://sourceware.org/pub/pthreads-win32/prebuilt-dll-2-8-0-release/lib/libpthreadGC2.a
|
||
wget -O bin/pthreadGC2.dll ftp://sourceware.org/pub/pthreads-win32/prebuilt-dll-2-8-0-release/lib/pthreadGC2.dll
|
||
|
||
** libcurl
|
||
|
||
wget http://curl.haxx.se/gknw.net/7.33.0/dist-w32/curl-7.33.0-devel-mingw32.zip
|
||
unzip curl-7.33.0-devel-mingw32.zip
|
||
mv curl-7.33.0-devel-mingw32/include/* include/
|
||
mv curl-7.33.0-devel-mingw32/lib/* lib/
|
||
mv curl-7.33.0-devel-mingw32/bin/* bin/
|
||
rm -rf curl-7.33.0-devel-mingw32
|
||
|
||
|
||
** clean up
|
||
|
||
rm *.zip
|
||
|
||
|
||
** Building
|
||
|
||
Below assumes you're building in a "build-win32" or similar directory
|
||
inside the sgminer directory. Fix up the -I and -L paths appropriately
|
||
if you're building in-tree or someplace else.
|
||
|
||
Configure command:
|
||
|
||
CPPFLAGS="-I`pwd`/../../win32/include" LDFLAGS="-L`pwd`/../../win32/lib -lcurldll" ../autogen.sh --prefix=/usr/local/i586-mingw32 --host=i586-mingw32msvc --build=i686-linux
|
||
|
||
^^^ Plus whatever configure arguments you want to add. Note the paths
|
||
to win32 that you may need to change.
|
||
|
||
And make:
|
||
|
||
make
|
||
|
||
After building, the next steps are the same as for native
|
||
building as given under "Copy files to a build directory/folder"
|
||
(DLLs can all be found in the win32/bin directory.)
|