Commit a636a6744ff6db1576392622825c3ceb06e60eea

Ycros 2011-07-05T21:31:41

Merge branch 'cgminer' of git://github.com/ckolivas/cgminer into cgminer

diff --git a/findnonce.c b/findnonce.c
index af1525a..de9890e 100644
--- a/findnonce.c
+++ b/findnonce.c
@@ -8,6 +8,9 @@
  * any later version.  See COPYING for more details.
  */
 
+#include "config.h"
+#ifdef HAVE_OPENCL
+
 #include <stdio.h>
 #include <inttypes.h>
 #include <pthread.h>
@@ -252,3 +255,4 @@ void postcalc_hash_async(struct thr_info *thr, struct work *work, uint32_t *res)
 		return;
 	}
 }
+#endif /* HAVE_OPENCL */
diff --git a/findnonce.h b/findnonce.h
index bc5070f..e526aab 100644
--- a/findnonce.h
+++ b/findnonce.h
@@ -1,12 +1,15 @@
 #ifndef __FINDNONCE_H__
 #define __FINDNONCE_H__
 #include "miner.h"
+#include "config.h"
 
 #define MAXTHREADS (0xFFFFFFFEULL)
 /* Maximum worksize 512 * maximum vectors 4 plus one flag entry */
 #define MAXBUFFERS (4 * 512)
 #define BUFFERSIZE (sizeof(uint32_t) * (MAXBUFFERS + 1))
 
+#ifdef HAVE_OPENCL
 extern void precalc_hash(dev_blk_ctx *blk, uint32_t *state, uint32_t *data);
 extern void postcalc_hash_async(struct thr_info *thr, struct work *work, uint32_t *res);
+#endif /* HAVE_OPENCL */
 #endif /*__FINDNONCE_H__*/
diff --git a/main.c b/main.c
index 1d44b9d..39173e2 100644
--- a/main.c
+++ b/main.c
@@ -190,18 +190,20 @@ static struct option_help options_help[] = {
 	{ "debug",
 	  "(-D) Enable debug output (default: off)" },
 
+#ifdef HAVE_OPENCL
 	{ "gpu-threads N",
 	  "(-g N) Number of threads per-GPU (0 - 10, default: 2)" },
 
 	{ "intensity N",
 	  "(-I N) Intensity of GPU scanning (0 - 14, default 4)" },
-
+#endif
 	{ "log N",
 	  "(-l N) Interval in seconds between log output (default: 5)" },
 
+#ifdef HAVE_OPENCL
 	{ "ndevs",
 	  "(-n) Display number of detected GPUs and exit" },
-
+#endif
 	{ "no-longpoll",
 	  "Disable X-Long-Polling support (default: enabled)" },
 
@@ -247,12 +249,13 @@ static struct option_help options_help[] = {
 	  "(-u USERNAME) Username for bitcoin JSON-RPC server "
 	  "(default: " DEF_RPC_USERNAME ")" },
 
+#ifdef HAVE_OPENCL
 	{ "vectors N",
 	  "(-v N) Override detected optimal vector width (default: detected, 1,2 or 4)" },
 
 	{ "worksize N",
 	  "(-w N) Override detected optimal worksize (default: detected)" },
-
+#endif
 };
 
 static struct option options[] = {
@@ -984,6 +987,7 @@ enum {
 	FAILURE_INTERVAL		= 30,
 };
 
+#ifdef HAVE_OPENCL
 static _clState *clStates[16];
 
 static inline cl_int queue_kernel_parameters(_clState *clState, dev_blk_ctx *blk)
@@ -1172,6 +1176,7 @@ out:
 
 	return NULL;
 }
+#endif /* HAVE_OPENCL */
 
 static void restart_threads(void)
 {
@@ -1270,7 +1275,12 @@ static void show_usage(void)
 {
 	int i;
 
-	printf("cgminer version %s\n\n", VERSION);
+	printf("cgminer version %s\n", VERSION);
+#ifdef HAVE_OPENCL
+	printf("Built with CPU and GPU mining support.\n\n");
+#else
+	printf("Built with CPU mining support only.\n\n");
+#endif
 	printf("Usage:\tcgminer [options]\n\nSupported options:\n");
 	for (i = 0; i < ARRAY_SIZE(options_help); i++) {
 		struct option_help *h;
@@ -1482,11 +1492,13 @@ int main (int argc, char *argv[])
 	opt_n_threads = num_processors;
 #endif /* !WIN32 */
 
+#ifdef HAVE_OPENCL
 	nDevs = clDevicesNum();
 	if (opt_ndevs) {
 		applog(LOG_INFO, "%i", nDevs);
 		return nDevs;
 	}
+#endif
 	/* Invert the value to determine if we manually set it in cmdline
 	 * or disable gpu threads */
 	if (nDevs)
@@ -1596,6 +1608,7 @@ int main (int argc, char *argv[])
 		}
 	}
 
+#ifdef HAVE_OPENCL
 	/* start GPU mining threads */
 	for (i = 0; i < gpu_threads; i++) {
 		int gpu = gpu_from_thr_id(i);
@@ -1628,6 +1641,7 @@ int main (int argc, char *argv[])
 	}
 
 	applog(LOG_INFO, "%d gpu miner threads started", i);
+#endif
 
 	/* start CPU mining threads */
 	for (i = gpu_threads; i < gpu_threads + opt_n_threads; i++) {
diff --git a/miner.h b/miner.h
index 7aad072..fd824b9 100644
--- a/miner.h
+++ b/miner.h
@@ -9,11 +9,14 @@
 #include <pthread.h>
 #include <jansson.h>
 #include <curl/curl.h>
+
+#ifdef HAVE_OPENCL
 #ifdef __APPLE_CC__
 #include <OpenCL/opencl.h>
 #else
 #include <CL/cl.h>
 #endif
+#endif /* HAVE_OPENCL */
 
 #ifdef STDC_HEADERS
 # include <stdlib.h>
@@ -211,6 +214,7 @@ extern struct thr_info *thr_info;
 extern int longpoll_thr_id;
 extern struct work_restart *work_restart;
 
+#ifdef HAVE_OPENCL
 typedef struct {
     cl_uint ctx_a; cl_uint ctx_b; cl_uint ctx_c; cl_uint ctx_d;
     cl_uint ctx_e; cl_uint ctx_f; cl_uint ctx_g; cl_uint ctx_h;
@@ -222,6 +226,11 @@ typedef struct {
 	cl_uint W16; cl_uint W17; cl_uint W2;
 	cl_uint PreVal4; cl_uint T1;
 } dev_blk_ctx;
+#else
+typedef struct {
+	uint32_t nonce;
+} dev_blk_ctx;
+#endif
 
 struct work {
 	unsigned char	data[128];
diff --git a/ocl.c b/ocl.c
index 4b64815..7e5294c 100644
--- a/ocl.c
+++ b/ocl.c
@@ -2,6 +2,7 @@
  * Copyright 2011 Con Kolivas
  */
 #include "config.h"
+#ifdef HAVE_OPENCL
 
 #include <signal.h>
 #include <stdlib.h>
@@ -631,4 +632,5 @@ built:
 
 	return clState;
 }
+#endif /* HAVE_OPENCL */
 
diff --git a/ocl.h b/ocl.h
index c381207..3c2a5ce 100644
--- a/ocl.h
+++ b/ocl.h
@@ -1,5 +1,7 @@
 #ifndef __OCL_H__
 #define __OCL_H__
+#include "config.h"
+#ifdef HAVE_OPENCL
 #ifdef __APPLE_CC__
 #include <OpenCL/opencl.h>
 #else
@@ -21,5 +23,5 @@ typedef struct {
 extern char *file_contents(const char *filename, int *length);
 extern int clDevicesNum();
 extern _clState *initCl(unsigned int gpu, char *name, size_t nameSize);
-
+#endif /* HAVE_OPENCL */
 #endif /* __OCL_H__ */