-#
-# Copyright (C) 2006 OpenWrt.org
+#
+# Copyright (C) 2007-2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
-# $Id$
include $(TOPDIR)/rules.mk
PKG_NAME:=lcd4linux
-PKG_VERSION:=0.10.0+cvs20051015
-PKG_RELEASE:=2
+PKG_REV:=1187
+PKG_VERSION:=r$(PKG_REV)
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://ssl.bulix.org/svn/lcd4linux/trunk/
+PKG_SOURCE_SUBDIR:=lcd4linux-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE_PROTO:=svn
+
+LCD4LINUX_DRIVERS:= \
+ ASTUSB \
+ BeckmannEgle \
+ BWCT \
+ CrystalFontz \
+ Curses \
+ Cwlinux \
+ D4D \
+ DPF \
+ EA232graphic \
+ EFN \
+ FutabaVFD \
+ FW8888 \
+ G15 \
+ GLCD2USB \
+ IRLCD \
+ $(if $(CONFIG_BROKEN),HD44780) \
+ $(if $(CONFIG_BROKEN),HD44780-I2C) \
+ LCD2USB \
+ $(if $(CONFIG_BROKEN),LCDLinux) \
+ LCDTerm \
+ LEDMatrix \
+ LPH7508 \
+ $(if $(CONFIG_BROKEN),LUIse) \
+ LW_ABP \
+ M50530 \
+ MatrixOrbital \
+ MatrixOrbitalGX \
+ MilfordInstruments \
+ Newhaven \
+ Noritake \
+ NULL \
+ Pertelian \
+ PHAnderson \
+ PICGraphic \
+ picoLCD \
+ picoLCDGraphic \
+ PNG \
+ PPM \
+ $(if $(CONFIG_TARGET_rb532),RouterBoard) \
+ $(if $(CONFIG_BROKEN),SamsungSPF) \
+ serdisplib \
+ ShuttleVFD \
+ SimpleLCD \
+ st2205 \
+ T6963 \
+ TeakLCM \
+ $(if $(CONFIG_TARGET_ar71xx),TEW673GRU) \
+ Trefon \
+ USBHUB \
+ USBLCD \
+ VNC \
+ WincorNixdorf \
+# ULA200 \
+# X11 \
+
+LCD4LINUX_PLUGINS:= \
+ apm \
+ asterisk \
+ button_exec \
+ cpuinfo \
+ dbus \
+ diskstats \
+ dvb \
+ event \
+ exec \
+ fifo \
+ file \
+ gps \
+ hddtemp \
+ huawei \
+ i2c_sensors \
+ iconv \
+ imon \
+ isdn \
+ kvv \
+ loadavg \
+ netdev \
+ netinfo \
+ meminfo \
+ mpd \
+ mpris_dbus \
+ mysql \
+ netdev \
+ pop3 \
+ ppp \
+ proc_stat \
+ qnaplog \
+ seti \
+ statfs \
+ uname \
+ uptime \
+ w1retap \
+ $(if $(CONFIG_BROKEN),wireless) \
+ xmms \
+# python \
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
-PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
-PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/l/lcd4linux/ \
- http://ftp.de.debian.org/debian/pool/main/l/lcd4linux/
-PKG_MD5SUM:=5b5ac629be4bb5c29104fb8f6b7fa444
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION).orig
+PKG_BUILD_DEPENDS:= \
+ libdbus \
+ libgd \
+ libmpdclient \
+ libmysqlclient \
+ libncurses \
+ libnmeap \
+ libsqlite3 \
+ libvncserver \
+ ppp \
+ serdisplib \
+ st2205tool \
+# libftdi \
+# libX11 \
+# python \
+
+PKG_CONFIG_DEPENDS:= \
+ $(patsubst %,CONFIG_LCD4LINUX_CUSTOM_DRIVER_%,$(LCD4LINUX_DRIVERS)) \
+ $(patsubst %,CONFIG_LCD4LINUX_CUSTOM_PLUGIN_%,$(LCD4LINUX_PLUGINS)) \
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
-define Package/lcd4linux
+define Package/lcd4linux/Default
SECTION:=utils
CATEGORY:=Utilities
- DEPENDS:=+libncurses
+ MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
TITLE:=LCD display utility
URL:=http://lcd4linux.bulix.org/
endef
-define Package/lcd4linux/description
- LCD4Linux is a small program that grabs information from the kernel and
- some subsystems and displays it on an external liquid crystal display.
+define Package/lcd4linux/Default/description
+ LCD4Linux is a small program that grabs information from the kernel and
+ some subsystems and displays it on an external liquid crystal display.
endef
-# commas are interpreted by the $(call ...) macro, so define an intermediate variable holding our drivers spec
-PKG_CONFIGURE_DRIVERS:=all,!PNG,!RouterBoard,!X11
-CONFIGURE_ARGS += \
+define Package/lcd4linux-custom
+$(call Package/lcd4linux/Default)
+ DEPENDS:= \
+ +LCD4LINUX_CUSTOM_NEEDS_libdbus:libdbus \
+ +LCD4LINUX_CUSTOM_NEEDS_libdpf:libdpf \
+ +LCD4LINUX_CUSTOM_NEEDS_libgd:libgd \
+ $(if $(ICONV_FULL),+LCD4LINUX_CUSTOM_NEEDS_libiconv:libiconv-full) \
+ +LCD4LINUX_CUSTOM_NEEDS_libjpeg:libjpeg \
+ +LCD4LINUX_CUSTOM_NEEDS_libmpdclient:libmpdclient \
+ +LCD4LINUX_CUSTOM_NEEDS_libmysqlclient:libmysqlclient \
+ +LCD4LINUX_CUSTOM_NEEDS_libncurses:libncurses \
+ +LCD4LINUX_CUSTOM_NEEDS_libsqlite3:libsqlite3 \
+ +LCD4LINUX_CUSTOM_NEEDS_libusb:libusb-compat \
+ +LCD4LINUX_CUSTOM_NEEDS_libvncserver:libvncserver \
+ +LCD4LINUX_CUSTOM_NEEDS_serdisplib:serdisplib \
+ +LCD4LINUX_CUSTOM_NEEDS_st2205tool:st2205tool \
+# +LCD4LINUX_CUSTOM_NEEDS_libftdi:libftdi \
+# +LCD4LINUX_CUSTOM_NEEDS_libX11:libX11 \
+# +LCD4LINUX_CUSTOM_NEEDS_python:python
+ MENU:=1
+ PROVIDES:=lcd4linux
+ VARIANT=custom
+endef
+
+define Package/lcd4linux-custom/config
+ source "$(SOURCE)/Config.in"
+endef
+
+define Package/lcd4linux-custom/description
+$(call Package/lcd4linux/Default/description)
+ .
+ This package contains a customized version of LCD4Linux.
+endef
+
+
+define Package/lcd4linux-full
+$(call Package/lcd4linux/Default)
+ DEPENDS:= @DEVEL \
+ +libdbus \
+ +libdpf \
+ +libgd \
+ $(if $(ICONV_FULL),+libiconv-full) \
+ +libmpdclient \
+ +libmysqlclient \
+ +libncurses \
+ +libsqlite3 \
+ +libusb-compat \
+ +libvncserver \
+ +serdisplib \
+ +st2205tool \
+# +libftdi \
+# +libX11 \
+# +python
+ PROVIDES:=lcd4linux
+ VARIANT=full
+endef
+
+define Package/lcd4linux-full/description
+$(call Package/lcd4linux/Default/description)
+ .
+ This package contains a version of LCD4Linux built with all supported
+ drivers and plugins.
+endef
+
+
+CONFIGURE_ARGS+= \
+ --disable-rpath \
+
+EXTRA_LDFLAGS+= -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
+
+ifeq ($(BUILD_VARIANT),custom)
+
+ LCD4LINUX_CUSTOM_DRIVERS:= $(strip $(foreach c, $(LCD4LINUX_DRIVERS), \
+ $(if $(CONFIG_LCD4LINUX_CUSTOM_DRIVER_$(c)),$(c),) \
+ ))
+ ifeq ($(LCD4LINUX_CUSTOM_DRIVERS),)
+ LCD4LINUX_CUSTOM_DRIVERS:=Sample
+ endif
+
+ LCD4LINUX_CUSTOM_PLUGINS:= $(strip $(foreach c, $(LCD4LINUX_PLUGINS), \
+ $(if $(CONFIG_LCD4LINUX_CUSTOM_PLUGIN_$(c)),$(c)) \
+ ))
+ ifeq ($(LCD4LINUX_CUSTOM_PLUGINS),)
+ LCD4LINUX_CUSTOM_PLUGINS:=sample
+ endif
+
+ CONFIGURE_ARGS+= \
+ --with-drivers="$(LCD4LINUX_CUSTOM_DRIVERS)" \
+ --with-plugins="$(LCD4LINUX_CUSTOM_PLUGINS)" \
+
+ ifneq ($(CONFIG_LCD4LINUX_CUSTOM_NEEDS_libiconv),)
+ CONFIGURE_ARGS+= --with-libiconv-prefix="$(ICONV_PREFIX)"
+ else
+ CONFIGURE_ARGS+= --without-libiconv-prefix
+ endif
+
+ ifneq ($(CONFIG_LCD4LINUX_CUSTOM_NEEDS_libmysqlclient),)
+ EXTRA_LDFLAGS+= -L$(STAGING_DIR)/usr/lib/mysql
+ endif
+
+# ifneq ($(CONFIG_LCD4LINUX_CUSTOM_NEEDS_python),)
+# CONFIGURE_ARGS+= --with-python
+# else
+ CONFIGURE_ARGS+= --without-python
+# endif
+
+# ifneq ($(CONFIG_LCD4LINUX_CUSTOM_NEEDS_libX11),)
+# CONFIGURE_ARGS+= --with-x
+# else
+ CONFIGURE_ARGS+= --without-x
+# endif
+
+endif
+
+ifeq ($(BUILD_VARIANT),full)
+
+ LCD4LINUX_FULL_DRIVERS:= $(strip $(foreach c, $(LCD4LINUX_DRIVERS), \
+ $(c) \
+ ))
+
+ LCD4LINUX_FULL_PLUGINS:= $(strip $(foreach c, $(LCD4LINUX_PLUGINS), \
+ $(c) \
+ ))
+
+ CONFIGURE_ARGS+= \
+ --with-drivers="$(LCD4LINUX_FULL_DRIVERS)" \
+ --with-plugins="$(LCD4LINUX_FULL_PLUGINS)" \
+ --with-libiconv-prefix="$(ICONV_PREFIX)" \
+ --without-python \
--without-x \
- --with-drivers="$(PKG_CONFIGURE_DRIVERS)" \
- --with-plugins=wireless
-define Build/Configure
- (cd $(PKG_BUILD_DIR); touch \
- configure.in \
- aclocal.m4 \
- Makefile.in \
- configure \
- stamp-h.in \
- config.h.in \
- );
- $(call Build/Configure/Default)
+ EXTRA_LDFLAGS+= -L$(STAGING_DIR)/usr/lib/mysql
+
+endif
+
+
+define Package/lcd4linux/conffiles
+/etc/lcd4linux.conf
endef
define Package/lcd4linux/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/lcd4linux $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/lcd4linux $(1)/usr/bin/
+ $(INSTALL_DIR) $(1)/etc
+ $(INSTALL_CONF) $(PKG_BUILD_DIR)/lcd4linux.conf.sample $(1)/etc/lcd4linux.conf
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) ./files/lcd4linux.init $(1)/etc/init.d/lcd4linux
+ $(SED) "s|^\(Display 'GLCD2USB'\)|#\1|g" \
+ -e "s|^\(Layout 'TestLayer'\)|#\1|g" \
+ -e "s|^#\(Display 'Image'\)|\1|g" \
+ -e "s|^#\(Layout 'Default'\)|\1|g" \
+ $(1)/etc/lcd4linux.conf
endef
-$(eval $(call BuildPackage,lcd4linux))
+Package/lcd4linux-custom/conffiles = $(Package/lcd4linux/conffiles)
+Package/lcd4linux-custom/install = $(Package/lcd4linux/install)
+
+Package/lcd4linux-full/conffiles = $(Package/lcd4linux/conffiles)
+Package/lcd4linux-full/install = $(Package/lcd4linux/install)
+
+$(eval $(call BuildPackage,lcd4linux-custom))
+$(eval $(call BuildPackage,lcd4linux-full))