gst1-plugins-base: update to 1.22.8
[feed/packages.git] / libs / slang2 / Makefile
1 #
2 # Copyright (C) 2006-2011 Openwrt.org
3 # Copyright (C) 2011 SMBPhone Inc.
4 # Copyright (C) 2019, 2023 Jeffery To
5 #
6 # This is free software, licensed under the GNU General Public License v2.
7 # See /LICENSE for more information.
8 #
9
10 include $(TOPDIR)/rules.mk
11
12 PKG_NAME:=slang
13 PKG_VERSION:=2.3.3
14 PKG_RELEASE:=2
15
16 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
17 PKG_SOURCE_URL:=https://www.jedsoft.org/releases/slang \
18 https://www.jedsoft.org/releases/slang/old
19 PKG_HASH:=f9145054ae131973c61208ea82486d5dd10e3c5cdad23b7c4a0617743c8f5a18
20
21 PKG_LICENSE:=GPL-2.0-or-later
22 PKG_LICENSE_FILES:=COPYING
23 PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
24
25 PKG_BUILD_PARALLEL:=0
26 PKG_CONFIG_DEPENDS:= \
27 CONFIG_BUILD_NLS \
28 CONFIG_PACKAGE_libslang2-mod-onig \
29 CONFIG_PACKAGE_libslang2-mod-png \
30 CONFIG_PACKAGE_libslang2-mod-zlib
31
32 SLANG_MODULES:= base64 chksum csv fcntl fork histogram iconv json onig \
33 png rand select slsmg socket stats sysconf termios varray zlib
34
35 include $(INCLUDE_DIR)/package.mk
36 include $(INCLUDE_DIR)/nls.mk
37
38 define Package/libslang2/Default
39 SECTION:=libs
40 CATEGORY:=Libraries
41 TITLE:=S-Lang Programmer's Library
42 URL:=https://www.jedsoft.org/slang/
43 endef
44
45 define Package/libslang2/Default/description
46 Multi-platform programmer's library providing facilities for interactive
47 applications. Includes such things as display/screen management,
48 keyboard input, keymaps, etc. Includes the embeddable S-Lang
49 interpreter.
50 endef
51
52 define Package/libslang2
53 $(call Package/libslang2/Default)
54 DEPENDS:=+terminfo
55 endef
56
57 define Package/libslang2/description
58 $(call Package/libslang2/Default/description)
59 endef
60
61 define Package/libslang2-modules
62 $(call Package/libslang2/Default)
63 TITLE+= (all modules)
64 DEPENDS:=@PACKAGE_libslang2 $(foreach mod,$(SLANG_MODULES),+libslang2-mod-$(mod))
65 endef
66
67 define Package/libslang2-modules/description
68 $(call Package/libslang2/Default/description)
69
70 This package installs all of S-Lang's bundled modules.
71 endef
72
73 define Package/libslang2-mod/Default
74 $(call Package/libslang2/Default)
75 DEPENDS:=@PACKAGE_libslang2
76 endef
77
78 define Package/libslang2-mod-iconv
79 $(call Package/libslang2-mod/Default)
80 TITLE+= (iconv module)
81 DEPENDS+=$(ICONV_DEPENDS)
82 endef
83
84 define Package/libslang2-mod-onig
85 $(call Package/libslang2-mod/Default)
86 TITLE+= (onig module)
87 DEPENDS+=+PACKAGE_libslang2-mod-onig:oniguruma
88 endef
89
90 define Package/libslang2-mod-png
91 $(call Package/libslang2-mod/Default)
92 TITLE+= (png module)
93 DEPENDS+=+PACKAGE_libslang2-mod-png:libpng
94 endef
95
96 define Package/libslang2-mod-zlib
97 $(call Package/libslang2-mod/Default)
98 TITLE+= (zlib module)
99 DEPENDS+=+PACKAGE_libslang2-mod-zlib:zlib
100 endef
101
102 define Package/slsh
103 SECTION:=lang
104 CATEGORY:=Languages
105 TITLE:=S-Lang shell
106 URL:=https://www.jedsoft.org/slang/slsh.html
107 DEPENDS:=+libslang2 +libslang2-modules
108 endef
109
110 define Package/slsh/description
111 This is a shell which is mostly just a wrapper around the S-Lang
112 Interpreter, which is part of the S-Lang Library.
113 endef
114
115 TARGET_CFLAGS+= $(FPIC)
116
117 CONFIGURE_ARGS+= \
118 --enable-largefile \
119 --enable-warnings \
120 --with-readline=slang \
121 --with-terminfo=default \
122 --without-pcre \
123 --without-x \
124 $(if $(CONFIG_BUILD_NLS),--with-iconv="$(ICONV_PREFIX)",--without-iconv) \
125 $(if $(CONFIG_PACKAGE_libslang2-mod-onig),--with-onig="$(STAGING_DIR)/usr",--without-onig) \
126 $(if $(CONFIG_PACKAGE_libslang2-mod-png),--with-png="$(STAGING_DIR)/usr",--without-png) \
127 $(if $(CONFIG_PACKAGE_libslang2-mod-zlib),--with-z="$(STAGING_DIR)/usr",--without-z)
128
129 define Build/Compile
130 $(call Build/Compile/Default,)
131 $(call Build/Compile/Default,static)
132 endef
133
134 # Default install last, so that the dynamic slsh is installed
135 define Build/Install
136 $(call Build/Install/Default,install-static)
137 $(call Build/Install/Default,)
138 endef
139
140 define Build/InstallDev
141 $(INSTALL_DIR) $(1)/usr/include
142 $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
143
144 $(INSTALL_DIR) $(1)/usr/lib
145 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libslang.{a,so*} $(1)/usr/lib/
146
147 $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
148 $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/slang.pc $(1)/usr/lib/pkgconfig/
149 endef
150
151 define Package/libslang2/install
152 $(INSTALL_DIR) $(1)/usr/lib
153 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libslang.so* $(1)/usr/lib/
154 endef
155
156 Package/libslang2-modules/install:=:
157
158 define Package/slsh/install
159 $(INSTALL_DIR) $(1)/etc
160 $(CP) $(PKG_INSTALL_DIR)/etc/slsh.rc $(1)/etc/
161
162 $(INSTALL_DIR) $(1)/usr/bin
163 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/slsh $(1)/usr/bin/
164
165 $(INSTALL_DIR) $(1)/usr/share
166 $(CP) $(PKG_INSTALL_DIR)/usr/share/slsh/ $(1)/usr/share/
167 endef
168
169 define BuildModule
170 ifndef Package/libslang2-mod-$(1)
171 define Package/libslang2-mod-$(1)
172 $$(call Package/libslang2-mod/Default)
173 TITLE+= ($(1) module)
174 endef
175 endif
176
177 define Package/libslang2-mod-$(1)/description
178 $$(call Package/libslang2/Default/description)
179
180 This package contains the $(1) module.
181 endef
182
183 define Package/libslang2-mod-$(1)/install
184 $$(INSTALL_DIR) $$(1)/usr/lib/slang/v2/modules
185 $$(CP) $$(PKG_INSTALL_DIR)/usr/lib/slang/v2/modules/$(1)-module.so $$(1)/usr/lib/slang/v2/modules/
186 endef
187
188 $$(eval $$(call BuildPackage,libslang2-mod-$(1)))
189 endef
190
191 $(foreach mod,$(SLANG_MODULES),$(eval $(call BuildModule,$(mod))))
192
193 $(eval $(call BuildPackage,libslang2))
194 $(eval $(call BuildPackage,libslang2-modules))
195 $(eval $(call BuildPackage,slsh))