123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- ######################################################################################
- # #
- # 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 *
- **************************************************************************************
- Go to this url ==> http://www.mingw.org/wiki/Getting_Started
- Click the link that says "Download and run the latest mingw-get-inst version."
- Download and run the latest file. Install MinGW in the default directory.
- (I downloaded the one labeled "mingw-get-inst-20120426" - note that this could
- be a different version later.)
- Make sure to check the option for "Download latest repository catalogs".
- I just selected all the check boxes (excluding "Fortran Compiler") so that everything
- was 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 CGMiner source to your MSYS working directory *
- **************************************************************************************
- Copy CGMiner source code directory into:
- \MinGW\msys\1.0\home\(folder with your user name)
- **************************************************************************************
- * 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 whichever version you like best.
- 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)\cgminer-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.
- 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 change "-lcurl" to
- "-lcurl -lcurldll".
- Ref. http://old.nabble.com/gcc-working-with-libcurl-td20506927.html
- **************************************************************************************
- * Build cgminer.exe *
- **************************************************************************************
- Run the MinGW MSYS shell
- (Start Icon/keyboard key ==> All Programs ==> MinGW ==> MinGW Shell).
- Change the working directory to your CGMiner project folder.
- Example: cd cgminer-2.1.2 [Enter Key] if you are unsure then type "ls -la"
- Another way is to type "cd cg" 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)
- autoreconf -fvi
- CFLAGS="-O2 -msse2" ./configure (additional config options, see below)
- make
- strip cgminer.exe <== only do this if you are not compiling for debugging
- **************************************************************************************
- * Copy files to a build directory/folder *
- **************************************************************************************
- Make a directory and copy the following files into it. This will be your CGMiner
- 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.
- cgminer.exe from \MinGW\msys\1.0\home\(username)\cgminer-x.x.x
- *.cl from \MinGW\msys\1.0\home\(username)\cgminer-x.x.x
- README from \MinGW\msys\1.0\home\(username)\cgminer-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/ckolivas/cgminer.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 cgminer 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.
- **************************************************************************************
- * Optional - Install libusb if you need auto USB device detection; required for Ztex *
- **************************************************************************************
- Go to this url ==> http://git.libusb.org/?p=libusb.git;a=snapshot;h=master;sf=zip
- save the file to your local storage. Open the file and copy the libusb* folder to
- \MinGW\msys\1.0\home\(your user directory/folder).
- Or if you do not want to download the file directly and would like to use git then
- Type the following from the MSYS shell in your home folder.
- git clone git://git.libusb.org/libusb.git
- Run the MinGW MSYS shell
- (Start Icon/keyboard key ==> All Programs ==> MinGW ==> MinGW Shell).
- Change the working directory to your libusb project folder.
- Example: cd libusb-something [Enter Key] if you are unsure then type "ls -la"
- Another way is to type "cd libusb" 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.
- ./autogen.sh --disable-debug-log --prefix=/MinGW
- make
- make install
- You may now exit the MSYS shell.
- Ctrl-D or typing "logout" and pressing the enter key should get you out of the
- window.
- You will have to copy "libusb-1.0.dll" to your working cgminer binary directory.
- You will find "libusb-1.0.dll" in the \MinGW\bin directory/folder.
- Use this method if libusb does not work for you on Ztex. Once someone lets us know
- Libusb works instead of libusbx then we will remove the section below this line.
- Run the MSYS shell and change into the libusb folder as above.
- Type ==> make uninstall
- Go to this url ==> http://libusbx.org/
- Click on the "Downloads" tab.
- Click on "releases".
- Click on the latest version. I downloaded 1.0.14; yours may be newer.
- Do not download from the link that says "Looking for the latest version?".
- Click on "Windows"
- Click on the file and download it. I downloaded libusbx-1.0.12-win.7z.
- Extract the the following from the file and place in where directed.
- Copy libusb.h from include\libusbx-1.0 to \MinGW\include\libusb-1.0\libusb.h
- Copy contents of MinGW32\static \MinGW\lib
- Copy contents of MinGW32\dll to \MinGW\lib
- You will have to copy "libusb-1.0.dll" to your working cgminer binary directory.
- **************************************************************************************
- * Some ./configure options *
- **************************************************************************************
- --enable-cpumining Build with cpu mining support(default disabled)
- --disable-opencl Override detection and disable building with opencl
- --disable-adl Override detection and disable building with adl
- --enable-bitforce Compile support for BitForce FPGAs(default disabled)
- --enable-icarus Compile support for Icarus Board(default disabled)
- --enable-modminer Compile support for ModMiner FPGAs(default disabled)
- --enable-ztex Compile support for Ztex Board(default disabled)
- --enable-scrypt Compile support for scrypt litecoin mining (default disabled)
- --without-curses Compile support for curses TUI (default enabled)
- --without-libudev Autodetect FPGAs using libudev (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 cgminer directory,
- remember 'make distclean' may delete it!
- mkdir -p ../cgminer-win32-deps/lib
- cd ../cgminer-win32-deps
- mkdir include
- mkdir bin
- NB: All following steps assume you are in the "cgminer-win32-deps" 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 cgminer
- Below assumes you're building in a "build-win32" or similar directory
- inside the cgminer directory. Fix up the -I and -L paths appropriately
- if you're building in-tree or someplace else.
- Configure command:
- CPPFLAGS="-I`pwd`/../../cgminer-win32-deps/include" LDFLAGS="-L`pwd`/../../cgminer-win32-deps/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 cgminer-win32-deps that you may need to change.
- And make:
- make
- After cgminer builds, 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 cgminer-win32-deps/bin directory.)
|