[package] update lcd4linux to r1116, added huawei module (#7097)
[openwrt/svn-archive/archive.git] / utils / lcd4linux / Makefile
index c24ce85616e893e2ae7f2273b02e4784a74e7b6f..653f9b3c053fc309a7c5db87e8a52c8f2d948305 100644 (file)
@@ -1,32 +1,42 @@
-# 
-# Copyright (C) 2007 OpenWrt.org
+#
+# Copyright (C) 2007-2009 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:=847
+PKG_REV:=1116
 PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=3
+PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-r$(PKG_VERSION).tar.bz2
+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
 
+PKG_FIXUP:=libtool
+PKG_INSTALL:=1
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/lcd4linux
   SECTION:=utils
   CATEGORY:=Utilities
-  DEPENDS:=+libncurses
+  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
@@ -38,24 +48,181 @@ define Package/lcd4linux/conffiles
 /etc/lcd4linux.conf
 endef
 
-# commas are interpreted by the $(call ...) macro, so define an intermediate variable holding our drivers spec
-PKG_CONFIGURE_DRIVERS:=all,!PNG,!RouterBoard,!X11
+LCD4LINUX_DRIVERS:= \
+       BeckmannEgle \
+       BWCT \
+       CrystalFontz \
+       Curses \
+       Cwlinux \
+       D4D \
+       G15 \
+       GLCD2USB \
+       IRLCD \
+       HD44780 \
+       LCD2USB \
+       LCDLinux \
+       LCDTerm \
+       LPH7508 \
+       LUIse \
+       M50530 \
+       MatrixOrbital \
+       MatrixOrbitalGX \
+       MilfordInstruments \
+       Noritake \
+       NULL \
+       PNG \
+       PPM \
+       Pertelian \
+       PHAnderson \
+       picoLCD \
+       picoLCDGraphic \
+       RouterBoard \
+       serdisplib \
+       ShuttleVFD \
+       SimpleLCD \
+       st2205 \
+       T6963 \
+       Trefon \
+       USBLCD \
+       USBHUB \
+       ULA200 \
+       VNC \
+       WincorNixdorf \
+       X11 \
+
+LCD4LINUX_PLUGINS:= \
+       apm \
+       asterisk \
+       button_exec \
+       cpuinfo \
+       diskstats \
+       dvb \
+       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 \
+       w1retap \
+       wireless \
+       xmms \
+
+LCD4LINUX_CONFIGURE_DRIVERS:= \
+       $(foreach c, $(LCD4LINUX_DRIVERS), \
+           $(if $(CONFIG_LCD4LINUX_DRV_$(c)),$(c),) \
+       )
+
+LCD4LINUX_CONFIGURE_PLUGINS:= \
+       $(foreach c, $(LCD4LINUX_PLUGINS), \
+           $(if $(CONFIG_LCD4LINUX_PLUGIN_$(c)),$(c),) \
+       )
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_PNG),)
+PKG_BUILD_DEPENDS += libgd
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_PPM),)
+PKG_BUILD_DEPENDS += libgd
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_G15),)
+PKG_BUILD_DEPENDS += libgd
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_LPH7508),)
+PKG_BUILD_DEPENDS += libgd
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_LUIse),)
+PKG_BUILD_DEPENDS += libgd
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_Noritake),)
+PKG_BUILD_DEPENDS += libgd
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_serdisplib),)
+PKG_BUILD_DEPENDS += libgd, serdisplib
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_st2205),)
+PKG_BUILD_DEPENDS += libgd, st2205tool
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_T6963),)
+PKG_BUILD_DEPENDS += libgd
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_Curses),)
+PKG_BUILD_DEPENDS += libncurses
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_VNC),)
+PKG_BUILD_DEPENDS += libvncserver
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_DRV_X11),)
+PKG_BUILD_DEPENDS += libgd, libX11
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_PLUGIN_gps),)
+PKG_BUILD_DEPENDS += libnmeap
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_PLUGIN_iconv),)
+PKG_BUILD_DEPENDS += libiconv
+endif
+
+ifneq ($(CONFIG_LCD4LINUX_PLUGIN_mysql),)
+PKG_BUILD_DEPENDS += libmysqlclient
+endif
+
+# 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'
+
+
+EXTRA_CFLAGS+= $(TARGET_CPPFLAGS) -I$(STAGING_DIR)/usr/lib/libiconv/include
+EXTRA_LDFLAGS+= $(TARGET_LDFLAGS) -Wl,-rpath-link,$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/usr/lib/libiconv/lib
+
+TARGET_CONFIGURE_OPTS+=\
+       CC="$(TARGET_CC) $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)"
 
 CONFIGURE_ARGS += \
        --without-x \
-       --with-drivers="$(PKG_CONFIGURE_DRIVERS)" \
-       --with-plugins=wireless \
+       --without-python \
+       --disable-rpath \
+       --with-drivers="$(strip $(LCD4LINUX_CONFIGURE_DRIVERS))" \
+       --with-plugins="$(strip $(LCD4LINUX_CONFIGURE_PLUGINS))" \
 
-define Build/Configure
-       $(call Build/Configure/Default,)
-       $(call libtool_disable_rpath)
-endef
-
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) all
-       $(call libtool_fixup_libdir,$(PKG_INSTALL_DIR))
-       $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)"
-endef
 
 define Package/lcd4linux/install
        $(INSTALL_DIR) $(1)/usr/bin