#
-# Copyright (C) 2007-2010 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.
include $(TOPDIR)/rules.mk
PKG_NAME:=lcd4linux
-PKG_REV:=1159
+PKG_REV:=1187
PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=2
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:=https://ssl.bulix.org/svn/lcd4linux/trunk/
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_PROTO:=svn
-PKG_FIXUP:=libtool
-PKG_INSTALL:=1
-
-PKG_BUILD_DEPENDS:= \
- libdbus \
- libgd \
- libmysqlclient \
- libncurses \
- libnmeap \
- libsqlite3 \
- libvncserver \
- ppp \
- serdisplib \
- st2205tool \
-# libftdi \
-# libmpdclient \
-# libX11 \
-# python \
-
-include $(INCLUDE_DIR)/package.mk
-include $(INCLUDE_DIR)/nls.mk
-
-define Package/lcd4linux
- SECTION:=utils
- CATEGORY:=Utilities
- DEPENDS:= \
- +LCD4LINUX_NEEDS_libdbus:libdbus \
- +LCD4LINUX_NEEDS_libgd:libgd \
- $(if $(ICONV_FULL),+LCD4LINUX_NEEDS_libiconv:libiconv-full) \
- +LCD4LINUX_NEEDS_libmysqlclient:libmysqlclient \
- +LCD4LINUX_NEEDS_libncurses:libncurses \
- +LCD4LINUX_NEEDS_libnmeap:libnmeap \
- +LCD4LINUX_NEEDS_libsqlite3:libsqlite3 \
- +LCD4LINUX_NEEDS_libusb:libusb \
- +LCD4LINUX_NEEDS_libvncserver:libvncserver \
- +LCD4LINUX_NEEDS_serdisplib:serdisplib \
- +LCD4LINUX_NEEDS_st2205tool:st2205tool \
-# +LCD4LINUX_NEEDS_libftdi:libftdi \
-# +LCD4LINUX_NEEDS_libmpdclient:libmpdclient \
-# +LCD4LINUX_NEEDS_libX11:libX11 \
-# +LCD4LINUX_NEEDS_python:python
- TITLE:=LCD display utility
- URL:=http://lcd4linux.bulix.org/
- MENU:=1
- MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
-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 \
- HD44780-I2C \
+ $(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 \
picoLCDGraphic \
PNG \
PPM \
- RouterBoard \
+ $(if $(CONFIG_TARGET_rb532),RouterBoard) \
+ $(if $(CONFIG_BROKEN),SamsungSPF) \
serdisplib \
ShuttleVFD \
SimpleLCD \
st2205 \
T6963 \
+ TeakLCM \
+ $(if $(CONFIG_TARGET_ar71xx),TEW673GRU) \
Trefon \
- ULA200 \
USBHUB \
USBLCD \
VNC \
WincorNixdorf \
- X11 \
+# ULA200 \
+# X11 \
LCD4LINUX_PLUGINS:= \
apm \
pop3 \
ppp \
proc_stat \
- python \
qnaplog \
seti \
statfs \
uname \
uptime \
w1retap \
- wireless \
+ $(if $(CONFIG_BROKEN),wireless) \
xmms \
+# python \
-LCD4LINUX_CONFIGURE_DRIVERS:= \
- $(foreach c, $(LCD4LINUX_DRIVERS), \
- $(if $(CONFIG_LCD4LINUX_DRV_$(c)),$(c),) \
- )
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
-LCD4LINUX_CONFIGURE_PLUGINS:= \
- $(foreach c, $(LCD4LINUX_PLUGINS), \
- $(if $(CONFIG_LCD4LINUX_PLUGIN_$(c)),$(c),) \
- )
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
-ifeq ($(CONFIG_LCD4LINUX_HAS_AT_LEAST_ONE_DRIVER),)
- LCD4LINUX_CONFIGURE_DRIVERS:=Sample
-endif
+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/Default
+ SECTION:=utils
+ CATEGORY:=Utilities
+ MAINTAINER:=Jonathan McCrohan <jmccrohan@gmail.com>
+ TITLE:=LCD display utility
+ URL:=http://lcd4linux.bulix.org/
+endef
+
+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
+
+
+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
-ifeq ($(CONFIG_LCD4LINUX_HAS_AT_LEAST_ONE_PLUGIN),)
- LCD4LINUX_CONFIGURE_PLUGINS:=sample
-endif
CONFIGURE_ARGS+= \
--disable-rpath \
- --with-drivers="$(strip $(LCD4LINUX_CONFIGURE_DRIVERS))" \
- --with-plugins="$(strip $(LCD4LINUX_CONFIGURE_PLUGINS))" \
EXTRA_LDFLAGS+= -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
-ifneq ($(CONFIG_LCD4LINUX_NEEDS_libiconv),)
- CONFIGURE_ARGS+= \
- --with-libiconv-prefix="$(ICONV_PREFIX)"
-else
+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+= \
- --without-libiconv-prefix
+ --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
-ifneq ($(CONFIG_LCD4LINUX_NEEDS_libmysqlclient),)
+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 \
+
EXTRA_LDFLAGS+= -L$(STAGING_DIR)/usr/lib/mysql
-endif
-ifneq ($(CONFIG_LCD4LINUX_NEEDS_python),)
- CONFIGURE_ARGS+= --with-python
-else
- CONFIGURE_ARGS+= --without-python
endif
-ifneq ($(CONFIG_LCD4LINUX_NEEDS_libX11),)
- CONFIGURE_ARGS+= --with-x
-else
- CONFIGURE_ARGS+= --without-x
-endif
+define Package/lcd4linux/conffiles
+/etc/lcd4linux.conf
+endef
define Package/lcd4linux/install
$(INSTALL_DIR) $(1)/usr/bin
$(CP) $(PKG_INSTALL_DIR)/usr/bin/lcd4linux $(1)/usr/bin/
$(INSTALL_DIR) $(1)/etc
- $(INSTALL_CONF) ./files/lcd4linux.conf $(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))