--- /dev/null
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+
+inherit eutils
+
+DESCRIPTION="Modular Bitcoin ASIC/FPGA/GPU/CPU miner in C"
+HOMEPAGE="https://bitcointalk.org/?topic=168174"
+SRC_URI="http://luke.dashjr.org/programs/bitcoin/files/${PN}/${PV}/${P}.txz -> ${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~x86"
+
+# TODO: knc (needs i2c-tools header)
+# TODO: kncasic & titan (need systemwide knc-asic install)
+# TODO: minergate (needs actual miner_gate)
+IUSE="adl antminer avalon avalonmm bfsb bfx bifury bigpic bitforce bitfury cointerra cpumining drillbit dualminer examples gridseed hardened hashbuster hashbuster2 hashfast icarus jingtian keccak klondike +libusb littlefury lm_sensors metabank minion modminer nanofury ncurses opencl proxy proxy_getwork proxy_stratum rockminer screen scrypt +sha256d twinfury +udev udev-broad-rules unicode x6500 zeusminer ztex"
+REQUIRED_USE='
+ || ( keccak scrypt sha256d )
+ || ( antminer avalon avalonmm bfsb bfx bifury bigpic bitforce bitfury cointerra cpumining drillbit dualminer gridseed hashbuster hashbuster2 hashfast icarus klondike littlefury metabank modminer nanofury opencl proxy twinfury x6500 zeusminer ztex )
+ adl? ( opencl )
+ antminer? ( sha256d )
+ avalon? ( sha256d )
+ avalonmm? ( sha256d )
+ bfsb? ( sha256d bitfury )
+ bfx? ( sha256d bitfury libusb )
+ bifury? ( sha256d )
+ bigpic? ( sha256d bitfury )
+ bitforce? ( sha256d )
+ bitfury? ( sha256d )
+ cointerra? ( sha256d )
+ drillbit? ( sha256d bitfury )
+ dualminer? ( || ( sha256d scrypt ) icarus )
+ gridseed? ( scrypt )
+ hashbuster? ( sha256d bitfury )
+ hashbuster2? ( sha256d bitfury libusb )
+ hashfast? ( sha256d )
+ icarus? ( || ( scrypt sha256d ) )
+ jingtian? ( sha256d )
+ keccak? ( || ( cpumining opencl proxy ) )
+ klondike? ( sha256d libusb )
+ littlefury? ( sha256d bitfury )
+ lm_sensors? ( opencl )
+ metabank? ( sha256d bitfury )
+ minion? ( sha256d )
+ modminer? ( sha256d )
+ nanofury? ( sha256d bitfury )
+ scrypt? ( || ( cpumining dualminer gridseed opencl proxy zeusminer ) )
+ sha256d? ( || ( antminer avalon avalonmm bfx bifury bitforce bfsb bigpic bitfury cointerra cpumining drillbit dualminer hashbuster hashbuster2 hashfast icarus jingtian klondike littlefury metabank modminer nanofury opencl proxy rockminer twinfury x6500 ztex ) )
+ twinfury? ( bitfury )
+ unicode? ( ncurses )
+ proxy? ( || ( proxy_getwork proxy_stratum ) )
+ proxy_getwork? ( proxy )
+ proxy_stratum? ( proxy )
+ rockminer? ( sha256d )
+ twinfury? ( sha256d )
+ x6500? ( sha256d libusb )
+ zeusminer? ( scrypt )
+ ztex? ( sha256d libusb )
+'
+
+DEPEND='
+ net-misc/curl
+ ncurses? (
+ sys-libs/ncurses[unicode?]
+ )
+ >=dev-libs/jansson-2
+ dev-libs/libbase58
+ net-libs/libblkmaker
+ udev? (
+ virtual/udev
+ )
+ hashbuster? (
+ dev-libs/hidapi
+ )
+ libusb? (
+ virtual/libusb:1
+ )
+ lm_sensors? (
+ sys-apps/lm_sensors
+ )
+ nanofury? (
+ dev-libs/hidapi
+ )
+ proxy_getwork? (
+ net-libs/libmicrohttpd
+ )
+ proxy_stratum? (
+ dev-libs/libevent
+ )
+ screen? (
+ app-misc/screen
+ || (
+ >=sys-apps/coreutils-8.15
+ sys-freebsd/freebsd-bin
+ app-misc/realpath
+ )
+ )
+'
+RDEPEND="${DEPEND}
+ opencl? (
+ || (
+ virtual/opencl
+ virtual/opencl-sdk
+ dev-util/ati-stream-sdk
+ dev-util/ati-stream-sdk-bin
+ dev-util/amdstream
+ dev-util/amd-app-sdk
+ dev-util/amd-app-sdk-bin
+ dev-util/nvidia-cuda-sdk[opencl]
+ dev-util/intel-opencl-sdk
+ )
+ )
+"
+DEPEND="${DEPEND}
+ virtual/pkgconfig
+ >=dev-libs/uthash-1.9.7
+ sys-apps/sed
+ cpumining? (
+ amd64? (
+ >=dev-lang/yasm-1.0.1
+ )
+ x86? (
+ >=dev-lang/yasm-1.0.1
+ )
+ )
+"
+
+src_configure() {
+ local CFLAGS="${CFLAGS}"
+ local with_curses
+ use hardened && CFLAGS="${CFLAGS} -nopie"
+
+ if use ncurses; then
+ if use unicode; then
+ with_curses='--with-curses=ncursesw'
+ else
+ with_curses='--with-curses=ncurses'
+ fi
+ else
+ with_curses='--without-curses'
+ fi
+
+ CFLAGS="${CFLAGS}" \
+ econf \
+ --docdir="/usr/share/doc/${PF}" \
+ $(use_enable adl) \
+ $(use_enable antminer) \
+ $(use_enable avalon) \
+ $(use_enable avalonmm) \
+ $(use_enable bifury) \
+ $(use_enable bitforce) \
+ $(use_enable bfsb) \
+ $(use_enable bfx) \
+ $(use_enable bigpic) \
+ $(use_enable bitfury) \
+ $(use_enable cointerra) \
+ $(use_enable cpumining) \
+ $(use_enable drillbit) \
+ $(use_enable dualminer) \
+ $(use_enable gridseed) \
+ $(use_enable hashbuster) \
+ $(use_enable hashbuster2 hashbusterusb) \
+ $(use_enable hashfast) \
+ $(use_enable icarus) \
+ $(use_enable jingtian) \
+ $(use_enable keccak) \
+ $(use_enable klondike) \
+ $(use_enable littlefury) \
+ $(use_enable metabank) \
+ $(use_enable minion) \
+ $(use_enable modminer) \
+ $(use_enable nanofury) \
+ $(use_enable opencl) \
+ $(use_enable rockminer) \
+ $(use_enable scrypt) \
+ $(use_enable sha256d) \
+ $(use_enable twinfury) \
+ --with-system-libblkmaker \
+ $with_curses \
+ $(use_with udev libudev) \
+ $(use_enable udev-broad-rules broad-udevrules) \
+ $(use_with lm_sensors sensors) \
+ $(use_with proxy_getwork libmicrohttpd) \
+ $(use_with proxy_stratum libevent) \
+ $(use_enable x6500) \
+ $(use_enable zeusminer) \
+ $(use_enable ztex)
+}
+
+src_install() {
+ emake install DESTDIR="$D"
+ if ! use examples; then
+ rm -r "${D}/usr/share/doc/${PF}/rpc-examples"
+ fi
+ if ! use screen; then
+ rm "${D}/usr/bin/start-bfgminer.sh"
+ fi
+}