#
-# Copyright (C) 2007-2008 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_REV:=903
+PKG_REV:=1187
PKG_VERSION:=r$(PKG_REV)
PKG_RELEASE:=1
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_PROTO:=svn
-PKG_FIXUP = libtool
-
-include $(INCLUDE_DIR)/package.mk
-
-define Package/lcd4linux
- SECTION:=utils
- CATEGORY:=Utilities
- DEPENDS:=+libusb
- TITLE:=LCD display utility
- URL:=http://lcd4linux.bulix.org/
- MENU:=1
-endef
-
-define Package/lcd4linux/config
- menu "Configuration"
- depends on PACKAGE_lcd4linux
- source "$(SOURCE)/Config.in"
- endmenu
-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.
-endef
-
-define Package/lcd4linux/conffiles
-/etc/lcd4linux.conf
-endef
-
LCD4LINUX_DRIVERS:= \
+ ASTUSB \
BeckmannEgle \
BWCT \
CrystalFontz \
Curses \
Cwlinux \
D4D \
+ DPF \
+ EA232graphic \
+ EFN \
+ FutabaVFD \
+ FW8888 \
G15 \
+ GLCD2USB \
IRLCD \
- HD44780 \
+ $(if $(CONFIG_BROKEN),HD44780) \
+ $(if $(CONFIG_BROKEN),HD44780-I2C) \
LCD2USB \
- LCDLinux \
+ $(if $(CONFIG_BROKEN),LCDLinux) \
LCDTerm \
+ LEDMatrix \
LPH7508 \
- LUIse \
+ $(if $(CONFIG_BROKEN),LUIse) \
+ LW_ABP \
M50530 \
MatrixOrbital \
+ MatrixOrbitalGX \
MilfordInstruments \
+ Newhaven \
Noritake \
NULL \
- PNG \
- PPM \
Pertelian \
+ PHAnderson \
+ PICGraphic \
picoLCD \
picoLCDGraphic \
- RouterBoard \
+ PNG \
+ PPM \
+ $(if $(CONFIG_TARGET_rb532),RouterBoard) \
+ $(if $(CONFIG_BROKEN),SamsungSPF) \
serdisplib \
+ ShuttleVFD \
SimpleLCD \
st2205 \
T6963 \
+ TeakLCM \
+ $(if $(CONFIG_TARGET_ar71xx),TEW673GRU) \
Trefon \
- USBLCD \
USBHUB \
- ULA200 \
+ USBLCD \
+ VNC \
WincorNixdorf \
- X11 \
+# 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 \
- python \
+ qnaplog \
seti \
statfs \
uname \
uptime \
- wireless \
+ w1retap \
+ $(if $(CONFIG_BROKEN),wireless) \
xmms \
+# python \
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_BUILD_DEPENDS:= \
+ libdbus \
+ libgd \
+ libmpdclient \
+ libmysqlclient \
+ libncurses \
+ libnmeap \
+ libsqlite3 \
+ libvncserver \
+ ppp \
+ serdisplib \
+ st2205tool \
+# libftdi \
+# libX11 \
+# python \
-LCD4LINUX_CONFIGURE_DRIVERS:= \
- $(foreach c, $(LCD4LINUX_DRIVERS), \
- $(if $(CONFIG_LCD4LINUX_DRV_$(c)),$(c),) \
- )
+PKG_CONFIG_DEPENDS:= \
+ $(patsubst %,CONFIG_LCD4LINUX_CUSTOM_DRIVER_%,$(LCD4LINUX_DRIVERS)) \
+ $(patsubst %,CONFIG_LCD4LINUX_CUSTOM_PLUGIN_%,$(LCD4LINUX_PLUGINS)) \
-LCD4LINUX_CONFIGURE_PLUGINS:= \
- $(foreach c, $(LCD4LINUX_PLUGINS), \
- $(if $(CONFIG_LCD4LINUX_PLUGIN_$(c)),$(c),) \
- )
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
-ifneq ($(CONFIG_LCD4LINUX_DRV_PNG),)
-PKG_BUILD_DEPENDS += libgd
-endif
+define Package/lcd4linux/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
+ TITLE:=LCD display utility
+ URL:=http://lcd4linux.bulix.org/
+endef
-ifneq ($(CONFIG_LCD4LINUX_DRV_PPM),)
-PKG_BUILD_DEPENDS += libgd
-endif
+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
-ifneq ($(CONFIG_LCD4LINUX_DRV_G15),)
-PKG_BUILD_DEPENDS += libgd
-endif
-ifneq ($(CONFIG_LCD4LINUX_DRV_LPH7508),)
-PKG_BUILD_DEPENDS += libgd
-endif
+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
-ifneq ($(CONFIG_LCD4LINUX_DRV_LUIse),)
-PKG_BUILD_DEPENDS += libgd
-endif
+define Package/lcd4linux-custom/config
+ source "$(SOURCE)/Config.in"
+endef
-ifneq ($(CONFIG_LCD4LINUX_DRV_Noritake),)
-PKG_BUILD_DEPENDS += libgd
-endif
+define Package/lcd4linux-custom/description
+$(call Package/lcd4linux/Default/description)
+ .
+ This package contains a customized version of LCD4Linux.
+endef
-ifneq ($(CONFIG_LCD4LINUX_DRV_serdisplib),)
-PKG_BUILD_DEPENDS += libgd, serdisplib
-endif
-ifneq ($(CONFIG_LCD4LINUX_DRV_st2205),)
-PKG_BUILD_DEPENDS += libgd, st2205tool
-endif
+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
-ifneq ($(CONFIG_LCD4LINUX_DRV_T6963),)
-PKG_BUILD_DEPENDS += libgd
-endif
+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
-ifneq ($(CONFIG_LCD4LINUX_DRV_Curses),)
-PKG_BUILD_DEPENDS += libncurses
-endif
-ifneq ($(CONFIG_LCD4LINUX_DRV_X11),)
-PKG_BUILD_DEPENDS += libgd, libX11
-endif
+CONFIGURE_ARGS+= \
+ --disable-rpath \
-ifneq ($(CONFIG_LCD4LINUX_PLUGIN_gps),)
-PKG_BUILD_DEPENDS += libnmeap
-endif
+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
-ifneq ($(CONFIG_LCD4LINUX_PLUGIN_iconv),)
-PKG_BUILD_DEPENDS += libiconv
endif
-ifneq ($(CONFIG_LCD4LINUX_PLUGIN_mysql),)
-PKG_BUILD_DEPENDS += libmysqlclient
-endif
+ifeq ($(BUILD_VARIANT),full)
-# XXX: lcd4linux needs at least one driver and one plugin, if none are selected, build'em all
-ifeq ($(strip $(LCD4LINUX_CONFIGURE_DRIVERS)),)
- LCD4LINUX_CONFIGURE_DRIVERS:=all
-endif
-ifeq ($(strip $(LCD4LINUX_CONFIGURE_PLUGINS)),)
- LCD4LINUX_CONFIGURE_PLUGINS:=all
-endif
-
-## TODO PYTHON PLUGIN, DEPENDS on ver >= '2.1.0'
+ LCD4LINUX_FULL_DRIVERS:= $(strip $(foreach c, $(LCD4LINUX_DRIVERS), \
+ $(c) \
+ ))
+ LCD4LINUX_FULL_PLUGINS:= $(strip $(foreach c, $(LCD4LINUX_PLUGINS), \
+ $(c) \
+ ))
-EXTRA_CFLAGS+=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include -I$(STAGING_DIR)/usr/lib/libiconv/include
-EXTRA_LDFLAGS+=-L$(STAGING_DIR)/usr/lib -Wl,-rpath-link,$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/usr/lib/libiconv/lib
+ CONFIGURE_ARGS+= \
+ --with-drivers="$(LCD4LINUX_FULL_DRIVERS)" \
+ --with-plugins="$(LCD4LINUX_FULL_PLUGINS)" \
+ --with-libiconv-prefix="$(ICONV_PREFIX)" \
+ --without-python \
+ --without-x \
-TARGET_CONFIGURE_OPTS+=\
- CC="$(TARGET_CC) $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)"
+ EXTRA_LDFLAGS+= -L$(STAGING_DIR)/usr/lib/mysql
-CONFIGURE_ARGS += \
- --without-x \
- --without-python \
- --disable-rpath \
- --with-drivers="$(strip $(LCD4LINUX_CONFIGURE_DRIVERS))" \
- --with-plugins="$(strip $(LCD4LINUX_CONFIGURE_PLUGINS))" \
+endif
-define Build/Compile
- $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" all install
+define Package/lcd4linux/conffiles
+/etc/lcd4linux.conf
endef
define Package/lcd4linux/install
$(INSTALL_DIR) $(1)/usr/bin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/lcd4linux $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc
- $(INSTALL_CONF) ./files/$(PKG_NAME).conf $(1)/etc/$(PKG_NAME).conf
+ $(INSTALL_CONF) $(PKG_BUILD_DIR)/lcd4linux.conf.sample $(1)/etc/lcd4linux.conf
$(INSTALL_DIR) $(1)/etc/init.d
- $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME)
+ $(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))