mirror of https://github.com/GOSTSec/sgminer
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
302 lines
16 KiB
302 lines
16 KiB
###################################################################################### |
|
# # |
|
# 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 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. |
|
|
|
************************************************************************************** |
|
* Copy sgminer source to your MSYS working directory * |
|
************************************************************************************** |
|
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) * |
|
************************************************************************************** |
|
Note: You do not need to install the AMD APP SDK if you are only using Nvidia GPU's |
|
Go to this url for the latest AMD APP SDK: |
|
http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/ |
|
Go to this url for legacy AMD APP SDK's: |
|
http://developer.amd.com/tools/heterogeneous-computing/amd-accelerated-parallel-processing-app-sdk/downloads/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) * |
|
************************************************************************************** |
|
Note: You do not need to install the AMD ADL SDK if you are only using Nvidia GPU's |
|
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-x.x.x\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.27.0 libcurl SSL and download it. |
|
The one I downloaded may not be current for you. Choose the latest. |
|
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 |
|
|
|
************************************************************************************** |
|
* 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 (additional config options, see below) |
|
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-x.x.x |
|
*.cl from \MinGW\msys\1.0\home\(username)\sgminer-x.x.x |
|
README from \MinGW\msys\1.0\home\(username)\sgminer-x.x.x |
|
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 |
|
|
|
************************************************************************************** |
|
* 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/veox/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.)
|
|
|