--- /dev/null
+#
+# Copyright (C) 2006-2011 Openwrt.org
+# Copyright (C) 2011 SMBPhone Inc.
+# Copyright (C) 2019 Jeffery To
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=slang
+PKG_VERSION:=2.3.2
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://www.jedsoft.org/releases/slang \
+ https://www.jedsoft.org/releases/slang/old
+PKG_HASH:=fc9e3b0fc4f67c3c1f6d43c90c16a5c42d117b8e28457c5b46831b8b5d3ae31a
+
+PKG_LICENSE:=GPL-2.0+
+PKG_LICENSE_FILES:=COPYING
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+PKG_BUILD_PARALLEL:=1
+
+SLANG_MODULES:= base64 chksum csv fcntl fork histogram iconv json pcre png \
+ rand select slsmg socket stats sysconf termios varray zlib
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libslang2/Default
+ SECTION:=libs
+ CATEGORY:=Libraries
+ TITLE:=S-Lang Programmer's Library
+ URL:=https://www.jedsoft.org/slang/
+endef
+
+define Package/libslang2/Default/description
+ Multi-platform programmer's library providing facilities for interactive
+ applications. Includes such things as display/screen management,
+ keyboard input, keymaps, etc. Includes the embeddable S-Lang interpreter.
+endef
+
+define Package/libslang2
+$(call Package/libslang2/Default)
+ DEPENDS:=+terminfo
+endef
+
+define Package/libslang2/description
+$(call Package/libslang2/Default/description)
+endef
+
+define Package/libslang2-modules
+$(call Package/libslang2/Default)
+ TITLE+= (all modules)
+ DEPENDS:=$(foreach mod,$(SLANG_MODULES),+libslang2-mod-$(mod))
+endef
+
+define Package/libslang2-modules/description
+$(call Package/libslang2/Default/description)
+
+ This installs all of S-Lang's bundled modules.
+endef
+
+define Package/libslang2-mod-pcre
+$(call Package/libslang2/Default)
+ TITLE+= (pcre module)
+ DEPENDS:=+libpcre
+endef
+
+define Package/libslang2-mod-png
+$(call Package/libslang2/Default)
+ TITLE+= (png module)
+ DEPENDS:=+libpng
+endef
+
+define Package/libslang2-mod-zlib
+$(call Package/libslang2/Default)
+ TITLE+= (zlib module)
+ DEPENDS:=+zlib
+endef
+
+define Package/slsh
+ SECTION:=lang
+ CATEGORY:=Languages
+ TITLE:=S-Lang shell
+ URL:=https://www.jedsoft.org/slang/slsh.html
+ DEPENDS:=+libslang2 +libslang2-modules
+endef
+
+define Package/slsh/description
+ This is a shell which is mostly just a wrapper around the S-Lang Interpreter,
+ which is part of the S-Lang Library.
+endef
+
+TARGET_CFLAGS+= $(FPIC)
+
+CONFIGURE_ARGS+= \
+ --enable-largefile \
+ --enable-warnings \
+ --with-terminfo=default \
+ --with-readline=slang \
+ --with-pcre="$(STAGING_DIR)/usr" \
+ --with-png="$(STAGING_DIR)/usr" \
+ --with-z="$(STAGING_DIR)/usr" \
+ --without-onig \
+ --without-x
+
+define Build/Compile
+ $(call Build/Compile/Default,)
+ $(call Build/Compile/Default,static)
+endef
+
+# Default install last, so that the dynamic slsh is installed
+define Build/Install
+ $(call Build/Install/Default,install-static)
+ $(call Build/Install/Default,)
+endef
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
+
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libslang.{a,so*} $(1)/usr/lib/
+
+ $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/slang.pc $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libslang2/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/libslang.so* $(1)/usr/lib/
+endef
+
+Package/libslang2-modules/install:=:
+
+define Package/slsh/install
+ $(INSTALL_DIR) $(1)/etc
+ $(CP) $(PKG_INSTALL_DIR)/etc/slsh.rc $(1)/etc/
+
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/slsh $(1)/usr/bin/
+
+ $(INSTALL_DIR) $(1)/usr/share
+ $(CP) $(PKG_INSTALL_DIR)/usr/share/slsh/ $(1)/usr/share/
+endef
+
+define BuildModule
+ ifndef Package/libslang2-mod-$(1)
+ define Package/libslang2-mod-$(1)
+ $$(call Package/libslang2/Default)
+ TITLE+= ($(1) module)
+ endef
+ endif
+
+ define Package/libslang2-mod-$(1)/description
+ $$(call Package/libslang2/Default/description)
+
+ This contains the $(1) module.
+ endef
+
+ define Package/libslang2-mod-$(1)/install
+ $$(INSTALL_DIR) $$(1)/usr/lib/slang/v2/modules
+ $$(CP) $$(PKG_INSTALL_DIR)/usr/lib/slang/v2/modules/$(1)-module.so $$(1)/usr/lib/slang/v2/modules/
+ endef
+
+ $$(eval $$(call BuildPackage,libslang2-mod-$(1)))
+endef
+
+$(foreach mod,$(SLANG_MODULES),$(eval $(call BuildModule,$(mod))))
+
+$(eval $(call BuildPackage,libslang2))
+$(eval $(call BuildPackage,libslang2-modules))
+$(eval $(call BuildPackage,slsh))