| # Copyright 1999-2016 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=5 |
| inherit multilib versionator |
| |
| MY_PV=$(replace_version_separator 3 '-') |
| MY_P=${PN}-${MY_PV} |
| S=${WORKDIR}/${MY_P} |
| |
| DESCRIPTION="Client/Server suite to drive all kinds of LCD (-like) devices" |
| HOMEPAGE="http://lcdproc.org/" |
| SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" |
| |
| IUSE="debug doc ftdi hid irman joystick lirc nfs png samba seamless-hbars truetype usb" |
| |
| # The following array holds the USE_EXPANDed keywords |
| IUSE_LCD_DEVICES=(ncurses bayrad cfontz cfontzpacket |
| cwlinux eyeboxone g15 graphlcd glk |
| hd44780 icpa106 imon imonlcd iowarrior |
| lb216 lcdm001 lcterm |
| md8800 mdm166a ms6931 mtcs16209x mtxorb noritakevfd |
| pyramid sdeclcd sed1330 sed1520 serialvfd sli |
| stv5730 SureElec svga t6963 text tyan |
| ula200 vlsys_m428 xosd ea65 picolcd serialpos |
| i2500vfd irtrans lis shuttlevfd ) |
| |
| # 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 |
| |
| REQUIRED_USE="lcd_devices_mdm166a? ( hid )" |
| |
| RDEPEND=" |
| ftdi? ( dev-embedded/libftdi:0 ) |
| hid? ( >=dev-libs/libhid-0.2.16 ) |
| irman? ( media-libs/libirman ) |
| lirc? ( app-misc/lirc ) |
| png? ( media-libs/libpng:0 ) |
| truetype? ( media-libs/freetype:2 ) |
| usb? ( virtual/libusb:0 ) |
| |
| lcd_devices_graphlcd? ( app-misc/graphlcd-base app-misc/glcdprocdriver dev-libs/serdisplib ) |
| lcd_devices_g15? ( dev-libs/libg15 dev-libs/libg15render ) |
| lcd_devices_ncurses? ( sys-libs/ncurses:= ) |
| lcd_devices_svga? ( media-libs/svgalib ) |
| lcd_devices_ula200? ( dev-embedded/libftdi: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 ) |
| lcd_devices_i2500vfd? ( dev-embedded/libftdi:0 ) |
| lcd_devices_lis? ( dev-embedded/libftdi:0 virtual/libusb:0 ) |
| lcd_devices_shuttlevfd? ( virtual/libusb:0 )" |
| DEPEND="${RDEPEND} |
| doc? ( app-text/xmlto |
| app-text/docbook-xml-dtd:4.5 )" |
| 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_prepare() { |
| sed -i "37s:server/drivers:/usr/$(get_libdir)/lcdproc:" LCDd.conf || die |
| einfo "Patching LCDd.conf to use DriverPath=/usr/$(get_libdir)/lcdproc/" |
| } |
| |
| src_configure() { |
| # 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 CFontzPacket |
| CwLnx EyeboxOne g15 glcd,glcdlib glk |
| hd44780 icp_a106 imon imonlcd IOWarrior |
| lb216 lcdm001 lcterm |
| MD8800 mdm166a ms6931 mtc_s16209x MtxOrb NoritakeVFD |
| pyramid sdeclcd sed1330 sed1520 serialVFD sli |
| stv5730 SureElec svga t6963 text tyan |
| ula200 vlsys_m428 xosd ea65 picolcd serialPOS |
| i2500vfd irtrans lis shuttleVFD ) |
| |
| # 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 "53s:curses:${FIRST_DRIVER}:" LCDd.conf || die |
| fi |
| |
| local EXTRA_CONF |
| if use lcd_devices_cfontzpacket || use lcd_devices_cwlinux || use lcd_devices_pyramid || \ |
| use lcd_devices_picolcd || use lcd_devices_lis || use lcd_devices_shuttlevfd ; then |
| EXTRA_CONF="--enable-libusb" |
| else |
| EXTRA_CONF="$(use_enable usb libusb)" |
| fi |
| |
| if use lcd_devices_ula200 || use lcd_devices_i2500vfd || use lcd_devices_lis ; then |
| EXTRA_CONF="${EXTRA_CONF} --enable-libftdi" |
| else |
| EXTRA_CONF="${EXTRA_CONF} $(use_enable ftdi libftdi)" |
| fi |
| |
| econf --enable-extra-charmaps \ |
| $(use_enable debug) \ |
| $(use_enable nfs stat-nfs) \ |
| $(use_enable png libpng) \ |
| $(use_enable samba stat-smbfs ) \ |
| $(use_enable seamless-hbars) \ |
| $(use_enable truetype freetype) \ |
| ${EXTRA_CONF} \ |
| "--enable-drivers=${COMMA_DRIVERS}" |
| } |
| |
| src_compile() { |
| default |
| |
| 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 |
| |
| # 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/*.pl |
| |
| newinitd "${FILESDIR}/0.5.1-LCDd.initd" LCDd |
| newinitd "${FILESDIR}/0.5.2-r2-lcdproc.initd" lcdproc |
| |
| dodoc README CREDITS ChangeLog INSTALL TODO |
| |
| 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 |
| } |