Browse Source

serdisplib: add package

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
lilik-openwrt-22.03
Daniel Golle 5 years ago
parent
commit
bf033c622a
3 changed files with 121 additions and 0 deletions
  1. +76
    -0
      libs/serdisplib/Makefile
  2. +22
    -0
      libs/serdisplib/patches/001-fix-static-libary-build.patch
  3. +23
    -0
      libs/serdisplib/patches/002-allow-1bpp-framebuffer.patch

+ 76
- 0
libs/serdisplib/Makefile View File

@ -0,0 +1,76 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=serdisplib
PKG_VERSION:=2.01
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@SF/serdisplib
PKG_HASH:=a0a4eb6339de33f694e8eec1731bbe31789493434f747998a8788c2d0e6c324b
PKG_LICENSE:=GPL-2.0
PLG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_FIXUP:=libtool
include $(INCLUDE_DIR)/package.mk
CONFIGURE_ARGS += --enable-dynloading --disable-statictools
define Package/serdisplib
SECTION:=libs
CATEGORY:=Libraries
TITLE:=serdisplib
URL:=http://serdisplib.sourceforge.net/
endef
define Package/serdisplib/description
serdisplib started as a library to drive serial displays with
built-in controllers. It can optionally dynamically link with
libusb-compat, libgd and libpthread, some features require having
those packages installed as well.
endef
define Package/serdisplib-tools
SECTION:=utils
CATEGORY:=Utilities
TITLE:=serdisplib tools
URL:=http://serdisplib.sourceforge.net/
DEPENDS:=+serdisplib +libgd
endef
define Package/serdisplib-tools/description
serdisplib started as a library to drive serial displays with
built-in controllers. This package contains tools for serdisplib:
* l4m132c_tool
* l4m320t_tool
* multidisplay
* sdcmegtron_tool
* touchscreen_tool
endef
TARGET_CFLAGS += $(FPIC)
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/serdisplib
$(CP) $(PKG_BUILD_DIR)/include/serdisplib/*.h $(1)/usr/include/serdisplib
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/*.{a,so*} $(1)/usr/lib/
endef
define Package/serdisplib/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/lib/*.so* $(1)/usr/lib/
endef
define Package/serdisplib-tools/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/l4m132c_tool $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/l4m320t_tool $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/multidisplay $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/sdcmegtron_tool $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/tools/touchscreen_tool $(1)/usr/bin
endef
$(eval $(call BuildPackage,serdisplib))
$(eval $(call BuildPackage,serdisplib-tools))

+ 22
- 0
libs/serdisplib/patches/001-fix-static-libary-build.patch View File

@ -0,0 +1,22 @@
Index: serdisplib-2.01/src/Makefile.in
===================================================================
--- serdisplib-2.01.orig/src/Makefile.in
+++ serdisplib-2.01/src/Makefile.in
@@ -28,7 +28,7 @@ includedir = @includedir@
datarootdir = @datarootdir@
CC=@CC@
-AR=@AR@ -r
+AR=@AR@
LN_S=@LN_S@
INSTALL=@INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
@@ -180,7 +180,7 @@ programs: $(PROGRAMS)
$(LIB_DIR)/$(LIB_STATIC): $(LIB_OBJECTS)
$(top_srcdir)/mkinstalldirs $(top_srcdir)/lib
- $(AR) $(LIB_DIR)/$(LIB_STATIC) $(LIB_OBJECTS)
+ $(AR) -r -- $(LIB_DIR)/$(LIB_STATIC) $(LIB_OBJECTS)
$(LIB_DIR)/$(LIB_SHARED): $(LIB_OBJECTS)
$(top_srcdir)/mkinstalldirs $(top_srcdir)/lib

+ 23
- 0
libs/serdisplib/patches/002-allow-1bpp-framebuffer.patch View File

@ -0,0 +1,23 @@
Index: serdisplib-2.01/src/serdisp_specific_framebuffer.c
===================================================================
--- serdisplib-2.01.orig/src/serdisp_specific_framebuffer.c
+++ serdisplib-2.01/src/serdisp_specific_framebuffer.c
@@ -306,13 +306,15 @@ serdisp_t* serdisp_framebuffer_setup(con
if (fb_success) {
/* check if colour mode is supported */
- if (! (vinfo.bits_per_pixel == 16 || vinfo.bits_per_pixel == 24 || vinfo.bits_per_pixel == 32) ) {
+ if (! (vinfo.bits_per_pixel == 1 ||vinfo.bits_per_pixel == 16 || vinfo.bits_per_pixel == 24 || vinfo.bits_per_pixel == 32) ) {
sd_error(SERDISP_ERUNTIME, "unsupported colour depth (%d)", vinfo.bits_per_pixel);
fb_success = 0;
}
}
-
- dd->scrbuf_size = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel/8;
+ if (vinfo.bits_per_pixel == 1)
+ dd->scrbuf_size = (vinfo.xres * vinfo.yres) / 8;
+ else
+ dd->scrbuf_size = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel/8;
if (fb_success) {
/* map framebuffer device to memory */

Loading…
Cancel
Save