# Copyright 1999-2016 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 WANT_AUTOMAKE="1.9" inherit eutils autotools multilib DESCRIPTION="Client/Server suite to drive all kinds of LCD (-like) devices" HOMEPAGE="http://lcdproc.org/" SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz mirror://gentoo/${P}-patches.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="amd64 ppc ppc64 x86" IUSE="doc debug nfs samba seamless-hbars usb lirc irman joystick" # The following array holds the USE_EXPANDed keywords IUSE_LCD_DEVICES=(ncurses bayrad cfontz cfontz633 cfontzpacket cwlinux eyeboxone g15 graphlcd glk hd44780 icpa106 imon iowarrior lb216 lcdm001 lcterm md8800 ms6931 mtcs16209x mtxorb noritakevfd pyramid sed1330 sed1520 serialvfd sli stv5730 svga t6963 text tyan ula200 xosd ea65 picolcd serialpos ) # Iterate through the array and add the lcd_devices_* that we support NUM_DEVICES=${#IUSE_LCD_DEVICES[@]} index=0 while [ "${index}" -lt "${NUM_DEVICES}" ] ; do IUSE="${IUSE} lcd_devices_${IUSE_LCD_DEVICES[${index}]}" let "index = ${index} + 1" done RDEPEND=" usb? ( =virtual/libusb-0* ) lirc? ( app-misc/lirc ) irman? ( media-libs/libirman ) lcd_devices_graphlcd? ( app-misc/graphlcd-base app-misc/glcdprocdriver ) lcd_devices_g15? ( dev-libs/libg15 >=dev-libs/libg15render-1.1.1 ) lcd_devices_ncurses? ( sys-libs/ncurses ) lcd_devices_svga? ( media-libs/svgalib ) lcd_devices_ula200? ( >=dev-embedded/libftdi-0.7 =dev-embedded/libftdi-0* =virtual/libusb-0* ) lcd_devices_xosd? ( x11-libs/xosd x11-libs/libX11 x11-libs/libXext ) lcd_devices_cfontzpacket? ( =virtual/libusb-0* ) lcd_devices_cwlinux? ( =virtual/libusb-0* ) lcd_devices_pyramid? ( =virtual/libusb-0* ) lcd_devices_picolcd? ( =virtual/libusb-0* )" DEPEND="${RDEPEND} doc? ( app-text/xmlto )" RDEPEND="${RDEPEND} lcd_devices_g15? ( app-misc/g15daemon )" pkg_setup() { if [ -n "${LCDPROC_DRIVERS}" ] ; then ewarn "Setting the drivers to compile via LCDPROC_DRIVERS is not supported anymore." ewarn "Please use LCD_DEVICES now and see emerge -pv output for the options." fi } src_unpack() { unpack ${A} cd "${S}" epatch "${WORKDIR}/${P}-patches/${PV}-picolcd.patch" sed -i "79s:server/drivers:/usr/$(get_libdir)/lcdproc:" LCDd.conf einfo "Patching LCDd.conf to use DriverPath=/usr/$(get_libdir)/lcdproc/" eautoreconf } src_compile() { # This array contains the driver names required by configure --with-drivers= # The positions must be the same as the corresponding use_expand flags local DEVICE_DRIVERS=(curses bayrad CFontz CFontz633 CFontzPacket CwLnx EyeboxOne g15 glcdlib glk hd44780 icp_a106 imon IOWarrior lb216 lcdm001 lcterm MD8800 ms6931 mtc_s16209x MtxOrb NoritakeVFD pyramid sed1330 sed1520 serialVFD sli stv5730 svga t6963 text tyan ula200 xosd ea65 picolcd serialPOS) # Generate comma separated list of drivers COMMA_DRIVERS="" FIRST_DRIVER="" local index=0 while [ "${index}" -lt "${NUM_DEVICES}" ] ; do if use "lcd_devices_${IUSE_LCD_DEVICES[${index}]}" ; then append-driver "${DEVICE_DRIVERS[${index}]}" fi let "index = ${index} + 1" done # Append the not-lcd-drivers (input) use lirc && append-driver "lirc" use irman && append-driver "irman" use joystick && append-driver "joy" if [ -z "${COMMA_DRIVERS}" ] ; then ewarn "You are compiling LCDd without support for any LCD drivers at all." else # Patch the config to contain a driver that is actually installed instead of the default elog "Compiling the following drivers for LCDd: ${COMMA_DRIVERS}" elog "Setting Driver=${FIRST_DRIVER} in LCDd.conf" sed -i "44s:curses:${FIRST_DRIVER}:" LCDd.conf fi local ENABLEUSB if use lcd_devices_cfontzpacket || use lcd_devices_cwlinux || use lcd_devices_pyramid; then ENABLEUSB="--enable-libusb" else ENABLEUSB="$(use_enable usb libusb)" fi econf \ $(use_enable debug) \ $(use_enable nfs stat-nfs) \ $(use_enable samba stat-smbfs ) \ $(use_enable seamless-hbars) \ ${ENABLEUSB} \ "--enable-drivers=${COMMA_DRIVERS}" \ || die "configure failed" emake || die "make failed" if use doc; then ebegin "Creating user documentation" cd "${S}"/docs/lcdproc-user xmlto html --skip-validation lcdproc-user.docbook eend $? ebegin "Creating dev documentation" cd "${S}"/docs/lcdproc-dev xmlto html --skip-validation lcdproc-dev.docbook eend $? fi } append-driver() { [[ -z $* ]] && return 0 if [ -z "${COMMA_DRIVERS}" ] ; then # First in the list COMMA_DRIVERS="$*" FIRST_DRIVER="$*" else # Second, third, ... include a comma at the front COMMA_DRIVERS="${COMMA_DRIVERS},$*" fi return 0 } src_install() { emake DESTDIR="${D}" install || die "make install failed" # move example clients installed to /usr/bin rm -f "${D}"/usr/bin/{tail,lcdmetar,iosock,fortune,x11amp}.pl insinto /usr/share/lcdproc/clients doins clients/examples/*.pl doins clients/metar/ newinitd "${FILESDIR}/0.5.1-LCDd.initd" LCDd newinitd "${FILESDIR}/0.5.1-lcdproc.initd" lcdproc dodoc README CREDITS ChangeLog INSTALL TODO dodoc docs/README.* docs/*.txt if use doc; then insinto /usr/share/doc/${PF}/lcdproc-user doins docs/lcdproc-user/*.html insinto /usr/share/doc/${PF}/lcdproc-dev doins docs/lcdproc-dev/*.html fi } pkg_postinst() { ewarn "IMPORTANT: Please update your /etc/LCDd.conf" ewarn "As of lcdproc-0.5.1-r2, the DriverPath changed from /usr/share/lcdproc to /usr/$(get_libdir)/lcdproc ." }