blob: 9db2c418681211e83ec2e1d99d4205518907ae66 [file] [log] [blame]
Nick Sandersf8ff9e12011-02-08 16:39:31 -08001# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Nick Sandersf8ff9e12011-02-08 16:39:31 -08005inherit eutils cros-binary
6
7# Synaptics touchpad generic eclass.
8IUSE="is_touchpad ps_touchpad"
9
Puneet Kumar936af5d2011-02-25 18:59:10 -080010RDEPEND="x11-base/xorg-server"
Nick Sandersf8ff9e12011-02-08 16:39:31 -080011DEPEND="${RDEPEND}"
12
Dave Parker68929712011-04-04 18:28:16 -070013# @ECLASS-VARIABLE: SYNAPTICS_TOUCHPAD_PN
14# @DESCRIPTION: The packagename used as part of the binary tarball filename.
15: ${SYNAPTICS_TOUCHPAD_PN:=${PN}}
16
Nick Sandersf8ff9e12011-02-08 16:39:31 -080017export_uri() {
18 local XORG_VERSION_STRING
19 local XORG_VERSION
20 local X_VERSION
21
22 XORG_VERSION_STRING=$(grep "XORG_VERSION_CURRENT" "$ROOT/usr/include/xorg/xorg-server.h")
23 XORG_VERSION_STRING=${XORG_VERSION_STRING/#\#define*XORG_VERSION_CURRENT}
24 XORG_VERSION=$(($XORG_VERSION_STRING))
Puneet Kumarc10ccd02011-08-04 10:56:03 -070025
26 if [ $XORG_VERSION -ge 11100000 ]; then
27 X_VERSION=1.11
Stéphane Marchesin75bc1f32011-10-21 19:21:24 -070028 elif [ $XORG_VERSION -ge 11000000 ]; then
Puneet Kumarc10ccd02011-08-04 10:56:03 -070029 X_VERSION=1.10
30 elif [ $XORG_VERSION -ge 10903000 ]; then
Nick Sandersf8ff9e12011-02-08 16:39:31 -080031 X_VERSION=1.9
32 else
33 X_VERSION=1.7
34 fi
Puneet Kumarf6342d62011-10-24 19:33:40 -070035 CROS_BINARY_URI="http://commondatastorage.googleapis.com/synaptics/${SYNAPTICS_TOUCHPAD_PN}-xorg-${X_VERSION}-${PV}-${PR}.tar.gz"
Nick Sandersf8ff9e12011-02-08 16:39:31 -080036}
37
Mike Frysingerfd47e822013-04-15 15:55:31 -040038synaptics-touchpad_src_unpack() {
Nick Sandersf8ff9e12011-02-08 16:39:31 -080039 export_uri
40 cros-binary_src_unpack
41}
42
Mike Frysingerfd47e822013-04-15 15:55:31 -040043synaptics-touchpad_src_install() {
Nick Sandersf8ff9e12011-02-08 16:39:31 -080044 # Currently you must have files/* in each ebuild that inherits
45 # from here. These files will go away soon after they are pushed
46 # into the synaptics tarball.
47 export_uri
48 cros-binary_src_install
Andrew de los Reyes96055d02012-02-28 14:11:00 -080049 if [ $(ls "${D}" | wc -l) -eq 1 ]; then
50 local extra_dir="$(ls "${D}")"
51 mv "${D}/${extra_dir}/"* "${D}/"
52 rmdir "${D}/${extra_dir}/"
53 fi
Nick Sandersf8ff9e12011-02-08 16:39:31 -080054
Daniel Kurtz057d46e2012-01-06 02:18:19 +080055 exeinto /opt/Synaptics/bin
56 doexe "${FILESDIR}/tpcontrol_syncontrol" || die
Nick Sandersf8ff9e12011-02-08 16:39:31 -080057
Daniel Kurtz06b81232012-01-06 02:25:44 +080058 # If it exists, install synlogger to log calls to the Synaptics binaries.
59 # The original binaries themselves are appended with _bin, and symlinks are
60 # created with their original names that point at synlogger.
61 if [ -f "${FILESDIR}/synlogger" ]; then
62 doexe "${FILESDIR}/synlogger" || die
63 local f
64 for f in syn{control,detect,reflash} ; do
65 mv "${D}"/opt/Synaptics/bin/${f}{,_bin} || die
66 dosym synlogger /opt/Synaptics/bin/${f} || die
67 done
68 fi
69
Nick Sandersf8ff9e12011-02-08 16:39:31 -080070 # link the appropriate config files for the type of trackpad
71 if use is_touchpad && use ps_touchpad; then
72 die "Specify only one type of touchpad"
73 elif use is_touchpad; then
74 dosym HKLM_Kernel_IS /opt/Synaptics/HKLM_Kernel || die
75 dosym HKLM_User_IS /opt/Synaptics/HKLM_User || die
76 elif use ps_touchpad; then
77 dosym HKLM_Kernel_PS /opt/Synaptics/HKLM_Kernel || die
78 dosym HKLM_User_PS /opt/Synaptics/HKLM_User || die
79 else
80 die "Type of touchpad not specified"
81 fi
Nick Sandersf8ff9e12011-02-08 16:39:31 -080082}