From a93b22c63087db093199a3b809386efc82b5ed01 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Tue, 5 Jul 2011 17:34:54 +1000 Subject: [PATCH] Make it possible to build without GPU mining by picking up HAVE_OPENCL from config.h. --- main.c | 22 ++++++++++++++++++---- ocl.c | 2 ++ ocl.h | 4 +++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/main.c b/main.c index 1d44b9d6..39173e2c 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/ocl.c b/ocl.c index cb951827..35dcbba1 100644 --- a/ocl.c +++ b/ocl.c @@ -2,6 +2,7 @@ * Copyright 2011 Con Kolivas */ #include "config.h" +#ifdef HAVE_OPENCL #include #include @@ -631,4 +632,5 @@ built: return clState; } +#endif /* HAVE_OPENCL */ diff --git a/ocl.h b/ocl.h index c3812073..3c2a5cee 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 #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__ */