= cgminer on Windows =
======================
(!)... If you have access to linux, use the mxe based cross compile example in the post above.
(!)... If you just want the windows executable, read a little past the cross compile section in the post above for a pre-built cgminer.exe.
Building the cgminer.exe binary for windows on windows can be a bit tricky (not for beginners).
Follow the steps below in exact order. If a step fails, most steps after it will fail also.
Once you have a successful binary, zip up the whole C:\MinGW folder for safe keeping.
Chances are these instructions won't work, as is, a few months from now due to normal updates, but you might still be able to git pull and build updates.
Environment Used:
Windows 7, (should work for all WinOS supported by MinGW & Git)
MinGW Installation Manager (0.6.2-beta-20131004-1 - Tested)
Git for Windows (2.11.0 - Tested)
MinGW Installation Manager
http://www.mingw.org/ : Download installer : mingw-get-setup.exe
Install Options:
default all - "C:\MinGW\"
Mark for installation - "mingw-developer-toolkit", "mingw-base"
Installation -> "Apply Changes"
From Windows Explorer: (or you'll get errors later)
C:\MinGW << Security (Edit)<< Users << Full Control
Paste the following into Windows+R to get a MINGW32 shell and init the home directory: "C:\MinGW\msys\1.0\msys.bat"
From MINGW32 shell:
mkdir /opt
exit
Install Git for Windows
https://git-for-windows.github.io/
Install Options:
"C:\MinGW\msys\1.0\opt\git"
"Use Git from Git Bash only"
default everything else -->>>
Return to MINGW32 shell and complete the build.
mingw-get install mingw32-libpdcurses mingw32-pdcurses
curl -O http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip
curl -O http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip
curl -O http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib_2.28.1-1_win32.zip
curl -k -O https://curl.haxx.se/gknw.net/rm/7.33.0/dist-w32/curl-7.33.0-devel-mingw32.zip
unzip pkg-config_0.23-3_win32.zip -d pkg-config
unzip pkg-config-dev_0.23-3_win32.zip -d pkg-config
unzip glib_2.28.1-1_win32.zip -d glib
unzip curl-7.33.0-devel-mingw32.zip -d curl
cp pkg-config/bin/pkg-config.exe /mingw/bin/
cp pkg-config/share/aclocal/pkg.m4 /mingw/share/aclocal/
cp glib/bin/libglib-2.0-0.dll /mingw/bin/
cp "C:/MinGW/bin/libintl-8.dll" "C:/MinGW/bin/intl.dll"
cp curl/curl-7.33.0-devel-mingw32/bin/* /mingw/bin/
cp -r curl/curl-7.33.0-devel-mingw32/include/* /mingw/include/
cp -r curl/curl-7.33.0-devel-mingw32/lib/* /mingw/lib/
rm -rf glib*
rm -rf pkg-config*
rm -rf curl*
#--- Going to intrusively tweak Mingw here. Good time to have a backup of C:\MinGW.
sed -r "s/lcurl$/lcurl \-lcurldll \-lssh2 \-lidn \-lrtmp \-lssl \-lcrypto \-lgdi32 \-lz \-lwldap32/" /mingw/lib/pkgconfig/libcurl.pc -i
sed -r "s/winsock.h/winsock2.h/" /mingw/include/ptw32_errno.h -i
sed -r "s/0x0501\)/0x0001\)\n#include
sed -r "s/__struct_timespec_defined/_TIMESPEC_DEFINED/" /mingw/include/time.h -i
sed -r "s/\_UWIN \*\//\*\/\n\nstatic char* strtok_r(char *s, const char *d, char **n) { char *r; if (s == NULL) s = *n; s += strspn(s, d); if (*s == '\\\0') return NULL; r = s; s += strcspn(s, d); if (*s) *s++ = '\\\0'; *n = s; return r; }\n/" /mingw/include/string.h -i
#--- Install libusb
mkdir /opt/src
cd /opt/src
git clone git://git.libusb.org/libusb.git
cd libusb
./autogen.sh --prefix=/mingw --disable-log
make & make install
#--- Build cgminer
cd ~
mkdir -p git/vthoang; cd git/vthoang
git clone https://github.com/vthoang/cgminer.git
cd cgminer
autoreconf -fvi
CFLAGS="-O2 -msse2" ./configure --enable-gekko
make -j 2
cgminer.exe --help
Install the zadig generic WinUSB drivers
http://zadig.akeo.ie
If all is well, you can list and see the stick from cgminer.
cgminer.exe -n
The cgminer.exe executable build can be located in windows explorer at:
C:\MinGW\msys\1.0\home\
To transfer the executable for another system, you'll need the following dll(s) in the same folder as cgminer.exe
C:\MinGW\bin\libcurl.dll
C:\MinGW\bin\libeay32.dll
C:\MinGW\bin\libgcc_s_dw2-1.dll
C:\MinGW\bin\libidn-11.dll
C:\MinGW\bin\libpdcurses.dll
C:\MinGW\bin\pthreadGC-3.dll
C:\MinGW\bin\ssleay32.dll
C:\MinGW\bin\zlib1.dll
C:\MinGW\bin\libusb-1.0.dll