Merge pull request #4853 from StevenHessing/noddos
[feed/packages.git] / utils / lcdproc / Makefile
1 #
2 # Copyright (C) 2016 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=lcdproc
11 PKG_VERSION:=0.5.9
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://github.com/lcdproc/lcdproc/releases/download/v$(PKG_VERSION)/
16 PKG_HASH:=d48a915496c96ff775b377d2222de3150ae5172bfb84a6ec9f9ceab962f97b83
17 PKG_MAINTAINER:=Harald Geyer <harald@ccbib.org>, \
18 Philip Prindeville <philipp@redfish-solutions.com>
19 PKG_LICENSE:=GPL-2.0
20 PKG_LICENSE_FILES:=COPYING
21
22 PKG_FIXUP:=autoreconf
23
24 include $(INCLUDE_DIR)/package.mk
25
26 define Package/lcdproc/Default
27 SECTION:=utils
28 CATEGORY:=Utilities
29 URL:=http://lcdproc.org/
30 endef
31
32 define Package/lcdproc/Default-description
33 LCDProc is a daemon and clients for displaying system information
34 on various LCD displays
35 endef
36
37
38 define Package/lcdproc-clients
39 $(call Package/lcdproc/Default)
40 TITLE:=LCD Display clients
41 endef
42
43 define Package/lcdproc-clients/description
44 $(call Package/lcdproc/Default-description)
45
46 This package contains the clients distributed by the official lcdproc
47 project:
48 * lcdproc -- displays system information
49 * lcdexec -- displays a menu structure to execute commands
50 * lcdvc -- shows the content of the system console
51 endef
52
53 define Package/lcdproc-clients/conffiles
54 /etc/lcdproc.conf
55 /etc/lcdexec.conf
56 /etc/lcdvc.conf
57 endef
58
59
60 define Package/lcdproc-server
61 $(call Package/lcdproc/Default)
62 TITLE:=LCD Display server
63 DEPENDS:=+libpthread
64 endef
65
66 define LCDPROC_CORE_DRIVERS_TEXT
67 bayrad CFontzPacket CFontz CwLnx ea65 EyeboxOne glk icp_a106 imonlcd
68 imon irtrans joy lb216 lcdm001 lcterm linux_input MD8800 ms6931
69 mtc_s16209x MtxOrb NoritakeVFD Olimex_MOD_LCD1x9 pyramid rawserial
70 serialPOS serialVFD sli SureElec text tyan vlsys_m428 yard2LCD
71 endef
72
73 LCDPROC_CORE_DRIVERS:=$(strip $(LCDPROC_CORE_DRIVERS_TEXT))
74
75 define Package/lcdproc-server/description
76 $(call Package/lcdproc/Default-description)
77
78 This package contains the server and a core set of display drivers
79 without external dependencies:
80 $(LCDPROC_CORE_DRIVERS_TEXT)
81 endef
82
83 define Package/lcdproc-server/conffiles
84 /etc/LCDd.conf
85 endef
86
87
88 define Package/lcdproc-drivers
89 $(call Package/lcdproc/Default)
90 TITLE:=LCD Display extra drivers
91 DEPENDS:=+lcdproc-server +libncurses +libusb-1.0 +libusb-compat +libftdi1 \
92 +GPIO_SUPPORT:libugpio
93 endef
94
95 define LCDPROC_OTHER_DRIVERS_TEXT
96 curses futaba glcd hd44780 IOWarrior i2500vfd lis picolcd shuttleVFD ula200
97 endef
98
99 ifeq ($(CONFIG_PACKAGE_kmod-lp),y)
100 LCDPROC_OTHER_DRIVERS_TEXT+=sdeclcd sed1330 sed1520 stv5730 t6963
101 endif
102
103 LCDPROC_OTHER_DRIVERS:=$(strip $(LCDPROC_OTHER_DRIVERS_TEXT))
104
105 define Package/lcdproc-drivers/description
106 $(call Package/lcdproc/Default-description)
107
108 This package contains display drivers with external dependencies:
109 $(LCDPROC_OTHER_DRIVERS_TEXT)
110 endef
111
112
113 # not everything groks --disable-nls
114 DISABLE_NLS:=
115
116 CONFIGURE_ARGS += \
117 --disable-libX11 \
118 --disable-libhid \
119 --disable-libpng \
120 --disable-freetype \
121 --enable-drivers='all,!g15,!g15driver,!glcdlib,!irman,!lirc,!mdm166a,!mx5000,!svga,!xosd'
122
123 # can't use -Wformat=2 because MUSL is somewhat broken
124 TARGET_CFLAGS+=-Wall
125
126 MAKE_FLAGS += \
127 CFLAGS="$(TARGET_CFLAGS)" \
128 LDFLAGS="$(TARGET_LDFLAGS)"
129
130
131 define Package/lcdproc-clients/install
132 $(INSTALL_DIR) $(1)/usr/bin
133 $(INSTALL_DIR) $(1)/etc/init.d
134 $(INSTALL_BIN) $(PKG_BUILD_DIR)/clients/lcdproc/lcdproc $(1)/usr/bin/
135 $(INSTALL_BIN) $(PKG_BUILD_DIR)/clients/lcdexec/lcdexec $(1)/usr/bin/
136 $(INSTALL_BIN) $(PKG_BUILD_DIR)/clients/lcdvc/lcdvc $(1)/usr/bin/
137 $(INSTALL_CONF) $(PKG_BUILD_DIR)/clients/lcdproc/lcdproc.conf $(1)/etc/
138 $(INSTALL_CONF) $(PKG_BUILD_DIR)/clients/lcdexec/lcdexec.conf $(1)/etc/
139 $(INSTALL_CONF) $(PKG_BUILD_DIR)/clients/lcdvc/lcdvc.conf $(1)/etc/
140 $(INSTALL_BIN) ./files/lcd* $(1)/etc/init.d/
141 endef
142
143 define Package/lcdproc-server/install
144 $(INSTALL_DIR) $(1)/usr/sbin
145 $(INSTALL_DIR) $(1)/usr/lib/lcdproc
146 $(INSTALL_DIR) $(1)/etc/init.d
147 $(INSTALL_BIN) $(PKG_BUILD_DIR)/server/LCDd $(1)/usr/sbin/
148 $(CP) $(foreach driver,$(LCDPROC_CORE_DRIVERS),$(PKG_BUILD_DIR)/server/drivers/$(driver).so) $(1)/usr/lib/lcdproc/
149 $(CP) -p $(PKG_BUILD_DIR)/LCDd.conf $(PKG_BUILD_DIR)/LCDd.conf.orig
150 sed -i -r \
151 -e 's!^(DriverPath=).*$$$$!\1/usr/lib/lcdproc/!' \
152 -e 's!^(Driver=)curses$$$$!\1sdeclcd!' \
153 $(PKG_BUILD_DIR)/LCDd.conf
154 $(INSTALL_CONF) $(PKG_BUILD_DIR)/LCDd.conf $(1)/etc/
155 $(INSTALL_BIN) ./files/LCDd $(1)/etc/init.d/
156 endef
157
158 define Package/lcdproc-drivers/install
159 $(INSTALL_DIR) $(1)/usr/lib/lcdproc
160 $(CP) $(foreach driver,$(LCDPROC_OTHER_DRIVERS),$(PKG_BUILD_DIR)/server/drivers/$(driver).so) $(1)/usr/lib/lcdproc/
161 endef
162
163
164 $(eval $(call BuildPackage,lcdproc-clients))
165 $(eval $(call BuildPackage,lcdproc-server))
166 $(eval $(call BuildPackage,lcdproc-drivers))
167