summaryrefslogtreecommitdiff
blob: 02a0a81442695acd4d9a1ed16063758eea19b01b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-kernel/linuxwacom-module/linuxwacom-module-0.8.8_p10.ebuild,v 1.2 2010/11/03 18:26:01 pva Exp $

EAPI="2"
inherit eutils toolchain-funcs linux-mod autotools

# http://who-t.blogspot.com/2010/09/wacom-support-in-linux.html
MY_PN="linuxwacom"
DESCRIPTION="Kernel driver for Wacom tablets and drawing devices"
HOMEPAGE="http://linuxwacom.sourceforge.net/"
SRC_URI="mirror://sourceforge/${MY_PN}/${MY_PN}-${PV/_p/-}.tar.bz2"

IUSE="usb"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86"

RDEPEND="sys-fs/udev
	sys-libs/ncurses"

DEPEND="${RDEPEND}
	dev-util/pkgconfig
	usb? ( >=sys-kernel/linux-headers-2.6 )"
S=${WORKDIR}/${MY_PN}-${PV/_p/-}

MODULE_NAMES="wacom(input:${S}/src:${S}/src)"
BUILD_TARGETS="all"

wacom_check() {
	einfo "Checking wacom module not built in kernel"

	if $(linux_chkconfig_present TABLET_USB_WACOM); then
		eerror "Please, disable wacom module in the kernel:"
		eerror
		eerror " Device Drivers"
		eerror "    Input device support"
		eerror "        Tablets"
		eerror "            <> Wacom Intuos/Graphire tablet support (USB)"
		eerror
		eerror '(in the "USB support" page it is suggested to include also:'
		eerror "EHCI , OHCI , USB Human Interface Device+HID input layer)"
		eerror
		eerror "Then recompile kernel."
		die "Wacom module already built in kernel!"
	fi
}

pkg_setup() {
	linux-mod_pkg_setup
	wacom_check
}

src_prepare() {
	if [[ $(gcc-major-version) < 4 || $(gcc-minor-version) < 2 ]]; then
		die "Versions of linuxwacom >= 0.7.9 require gcc >= 4.2 to compile."
	fi
	sed '/WCM_SRC_SUBDIRS=/s: wacomxi util xdrv::' -i configure.in || die

	kernel_is ge 2 6 36 && epatch "${FILESDIR}/linuxwacom-module-2.6.36.patch"
	eautoreconf
}

# TODO: Avoid build of hal (but actually upstream is working on separation of
# modules from linuxwacom so this is really low priority).
src_configure() {
	unset ARCH
	econf \
		--enable-wacom \
		--with-kernel=${KV_OUT_DIR} \
		--disable-dependency-tracking \
		--without-x \
		--disable-xserver64 \
		--without-xlib \
		--without-xorg-sdk \
		--without-tcl \
		--without-tk \
		$(printf -- "--disable-%s " libwacom{cfg,xi} {wac,xi}dump xsetwacom wacomxrrd)
}

src_install() {
	# Inelegant attempt to work around a nasty build system
	cp src/*/wacom.{o,ko} src/ || die
	linux-mod_src_install

	insinto /etc/udev/rules.d/
	doins src/util/60-wacom.rules || die

	exeinto /lib/udev/
	doexe "${FILESDIR}"/check_driver || die
	doman "${FILESDIR}"/check_driver.1

	dodoc AUTHORS ChangeLog
}

pkg_postinst() {
	linux-mod_pkg_postinst
	ewarn "Please remove any HAL .FDI files you may"
	ewarn "previously have installed for linuxwacom."
}