mirror of
https://github.com/GOSTSec/sgminer
synced 2025-09-01 08:42:02 +00:00
Merge branch 'windows-cross-compile'
This commit is contained in:
commit
cd5fa8d3cb
19
compat.h
19
compat.h
@ -47,15 +47,16 @@ static inline int nanosleep(const struct timespec *req, struct timespec *rem)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline int sleep(unsigned int secs)
|
/* Reported unneded in https://github.com/veox/sgminer/issues/37 */
|
||||||
{
|
/* static inline int sleep(unsigned int secs) */
|
||||||
struct timespec req, rem;
|
/* { */
|
||||||
req.tv_sec = secs;
|
/* struct timespec req, rem; */
|
||||||
req.tv_nsec = 0;
|
/* req.tv_sec = secs; */
|
||||||
if (!nanosleep(&req, &rem))
|
/* req.tv_nsec = 0; */
|
||||||
return 0;
|
/* if (!nanosleep(&req, &rem)) */
|
||||||
return rem.tv_sec + (rem.tv_nsec ? 1 : 0);
|
/* return 0; */
|
||||||
}
|
/* return rem.tv_sec + (rem.tv_nsec ? 1 : 0); */
|
||||||
|
/* } */
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
PRIO_PROCESS = 0,
|
PRIO_PROCESS = 0,
|
||||||
|
31
configure.ac
31
configure.ac
@ -186,18 +186,35 @@ if test "x$has_winpthread" != xtrue; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
AC_ARG_ENABLE([adl],
|
AC_ARG_ENABLE([adl],
|
||||||
[AC_HELP_STRING([--disable-adl],[Override detection and disable building with adl])],
|
[AC_HELP_STRING([--disable-adl],[Override detection and disable building with ADL])],
|
||||||
[adl=$enableval]
|
[adl=$enableval]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([adl_checks],
|
||||||
|
[AC_HELP_STRING([--disable-adl-checks],[Override detection and assume ADL is available])],
|
||||||
|
[adl_checks=$enableval]
|
||||||
|
)
|
||||||
|
|
||||||
if test "$found_opencl" = 1; then
|
if test "$found_opencl" = 1; then
|
||||||
if test "x$adl" != xno; then
|
if test "x$adl" != xno; then
|
||||||
ADL_CPPFLAGS=
|
dnl FIXME: force ADL usage if disable-checks specified
|
||||||
AC_CHECK_FILE([$srcdir/ADL_SDK/adl_sdk.h], [have_adl=true; ADL_CPPFLAGS=-I$srcdir], have_adl=false,)
|
if test "x$adl_checks" = xno; then
|
||||||
|
have_adl=true
|
||||||
|
ADL_CPPFLAGS=-I$srcdir
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl Check if include files are in $srcdir/ADL_SDK
|
||||||
|
if test "x$have_adl" != xtrue; then
|
||||||
|
ADL_CPPFLAGS=
|
||||||
|
AC_CHECK_FILE([$srcdir/ADL_SDK/adl_sdk.h], [have_adl=true; ADL_CPPFLAGS=-I$srcdir], have_adl=false,)
|
||||||
|
fi
|
||||||
|
|
||||||
|
dnl FIXME: Check if SGMINER_SDK present
|
||||||
if test x$have_adl+$have_sgminer_sdk = xfalse+true; then
|
if test x$have_adl+$have_sgminer_sdk = xfalse+true; then
|
||||||
AC_CHECK_FILE([$SGMINER_SDK/include/ADL_SDK/adl_sdk.h], [have_adl=true; ADL_CPPFLAGS=-I$SGMINER_SDK/include], have_adl=false,)
|
AC_CHECK_FILE([$SGMINER_SDK/include/ADL_SDK/adl_sdk.h], [have_adl=true; ADL_CPPFLAGS=-I$SGMINER_SDK/include], have_adl=false,)
|
||||||
fi
|
fi
|
||||||
if test x$have_adl = xtrue
|
|
||||||
|
if test "x$have_adl" = xtrue
|
||||||
then
|
then
|
||||||
AC_DEFINE([HAVE_ADL], [1], [Defined if ADL headers were found])
|
AC_DEFINE([HAVE_ADL], [1], [Defined if ADL headers were found])
|
||||||
else
|
else
|
||||||
@ -379,7 +396,11 @@ fi
|
|||||||
|
|
||||||
if test "x$adl" != xno; then
|
if test "x$adl" != xno; then
|
||||||
if test x$have_adl = xtrue; then
|
if test x$have_adl = xtrue; then
|
||||||
echo " ADL..................: SDK found, GPU monitoring support enabled"
|
if test "x$adl_checks" = xno; then
|
||||||
|
echo " ADL..................: SDK use FORCED"
|
||||||
|
else
|
||||||
|
echo " ADL..................: SDK found, GPU monitoring support enabled"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo " ADL..................: SDK NOT found, GPU monitoring support DISABLED"
|
echo " ADL..................: SDK NOT found, GPU monitoring support DISABLED"
|
||||||
fi
|
fi
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
######################################################################################
|
######################################################################################
|
||||||
# #
|
# #
|
||||||
# SGMINER WIN32 setup and build instructions (on mingw32/Windows): #
|
# Native WIN32 setup and build instructions (on mingw32/Windows): #
|
||||||
# #
|
# #
|
||||||
######################################################################################
|
######################################################################################
|
||||||
|
|
||||||
|
(See bottom of file for steps to cross-build for Win32 from Linux.)
|
||||||
|
|
||||||
**************************************************************************************
|
**************************************************************************************
|
||||||
* Introduction *
|
* Introduction *
|
||||||
**************************************************************************************
|
**************************************************************************************
|
||||||
@ -36,8 +38,8 @@ what you copied.
|
|||||||
**************************************************************************************
|
**************************************************************************************
|
||||||
Download and install the following Mingw32 version by doing a google search for:
|
Download and install the following Mingw32 version by doing a google search for:
|
||||||
"mingw-get-inst-20120426"
|
"mingw-get-inst-20120426"
|
||||||
*This is currently a known working version as of SGMINER 4.0.0, but this could be a
|
This is currently a known working version, but this could be a different version
|
||||||
different version later.
|
later.
|
||||||
|
|
||||||
During installation, select all the check boxes (excluding "Fortran Compiler") so that
|
During installation, select all the check boxes (excluding "Fortran Compiler") so that
|
||||||
everything is installed.
|
everything is installed.
|
||||||
@ -202,12 +204,99 @@ For you. Make sure you never remove the ADL_SDK folder from your home folder.
|
|||||||
* Some ./configure options *
|
* Some ./configure options *
|
||||||
**************************************************************************************
|
**************************************************************************************
|
||||||
--enable-opencl Enable support for GPU mining with opencl
|
--enable-opencl Enable support for GPU mining with opencl
|
||||||
--disable-adl Override detection and disable building with adl
|
--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
|
--disable-libcurl Disable building with libcurl for getwork and GBT support
|
||||||
--without-curses Compile support for curses TUI (default enabled)
|
--without-curses Compile support for curses TUI (default enabled)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
######################################################################################
|
||||||
# #
|
# #
|
||||||
# Native WIN32 setup and build instructions (on mingw32/Windows) complete #
|
# 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.)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user