aboutsummaryrefslogtreecommitdiff
path: root/lang/lua-eco/Makefile
blob: 3aa9aa9dd82c3ff790275f6758602285e9920f63 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
include $(TOPDIR)/rules.mk

PKG_NAME:=lua-eco
PKG_VERSION:=1.0.0
PKG_RELEASE:=4

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL=https://github.com/zhaojh329/lua-eco/releases/download/v$(PKG_VERSION)
PKG_HASH:=d9fd04acb4bd64f47a3a3e6a8d30ee1d0860221c5798ca528cf52260470b4155

PKG_MAINTAINER:=Jianhui Zhao <zhaojh329@gmail.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE

PKG_CONFIG_DEPENDS:= \
	LUA_ECO_OPENSSL \
	LUA_ECO_WOLFSSL \
	LUA_ECO_MBEDTLS

include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk

define Package/lua-eco
  TITLE:=A Lua coroutine library
  SECTION:=lang
  CATEGORY:=Languages
  SUBMENU:=Lua
  URL:=https://github.com/zhaojh329/lua-eco
  DEPENDS:=+libev
endef

define Package/lua-eco/description
  Lua-eco is a Lua coroutine library which was implemented based on IO event.
endef

define Package/lua-eco/Module
  TITLE:=$1 support for lua-eco
  SECTION:=lang
  CATEGORY:=Languages
  SUBMENU:=Lua
  URL:=https://github.com/zhaojh329/lua-eco
  DEPENDS:=+lua-eco $2
endef

Package/lua-eco-log=$(call Package/lua-eco/Module,Log utils)
Package/lua-eco-sys=$(call Package/lua-eco/Module,System utils)
Package/lua-eco-dns=$(call Package/lua-eco/Module,DNS)
Package/lua-eco-socket=$(call Package/lua-eco/Module,Socket)
Package/lua-eco-ssl=$(call Package/lua-eco/Module,SSL,\
  @(PACKAGE_libopenssl||PACKAGE_libwolfssl||PACKAGE_libmbedtls) \
  LUA_ECO_OPENSSL:libopenssl LUA_ECO_WOLFSSL:libwolfssl \
  LUA_ECO_MBEDTLS:libmbedtls +LUA_ECO_MBEDTLS:zlib)
Package/lua-eco-iw=$(call Package/lua-eco/Module,IW utils,+libmnl)
Package/lua-eco-ip=$(call Package/lua-eco/Module,IP utils,+libmnl)
Package/lua-eco-file=$(call Package/lua-eco/Module,File utils)
Package/lua-eco-ubus=$(call Package/lua-eco/Module,Ubus,+libubus)

define Package/lua-eco-ssl/config
    config LUA_ECO_DEFAULT_WOLFSSL
	bool
	default y if PACKAGE_libopenssl != y && \
		     (PACKAGE_libwolfssl >= PACKAGE_libopenssl || \
		      PACKAGE_libwolfsslcpu-crypto >= PACKAGE_libopenssl) && \
		     (PACKAGE_libwolfssl >= PACKAGE_libmbedtls || \
		      PACKAGE_libwolfsslcpu-crypto >= PACKAGE_libmbedtls)

    config LUA_ECO_DEFAULT_OPENSSL
	bool
	default y if !LUA_ECO_DEFAULT_WOLFSSL && \
		     PACKAGE_libopenssl >= PACKAGE_libmbedtls

    config LUA_ECO_DEFAULT_MBEDTLS
	bool
	default y if !LUA_ECO_DEFAULT_WOLFSSL && \
		     !LUA_ECO_DEFAULT_OPENSSL

    choice
	prompt "SSL Library"
	default LUA_ECO_OPENSSL if LUA_ECO_DEFAULT_OPENSSL
	default LUA_ECO_WOLFSSL if LUA_ECO_DEFAULT_WOLFSSL
	default LUA_ECO_MBEDTLS if LUA_ECO_DEFAULT_MBEDTLS
	config LUA_ECO_OPENSSL
		bool "OpenSSL"
		depends on PACKAGE_libopenssl
	config LUA_ECO_WOLFSSL
		bool "wolfSSL"
		depends on PACKAGE_libwolfssl || PACKAGE_libwolfsslcpu-crypto
	config LUA_ECO_MBEDTLS
		bool "mbedTLS"
		depends on PACKAGE_libmbedtls
    endchoice
endef

CMAKE_OPTIONS += \
  -DECO_LOG_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-log),N,FF) \
  -DECO_SYS_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-sys),N,FF) \
  -DECO_DNS_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-dns),N,FF) \
  -DECO_SOCKET_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-socket),N,FF) \
  -DECO_IW_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-iw),N,FF) \
  -DECO_IP_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-ip),N,FF) \
  -DECO_FILE_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-file),N,FF) \
  -DECO_UBUS_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-ubus),N,FF) \
  -DECO_SSL_SUPPORT=O$(if $(CONFIG_PACKAGE_lua-eco-ssl),N,FF)

ifneq ($(CONFIG_PACKAGE_lua-eco-ssl),)
  ifneq ($(CONFIG_LUA_ECO_OPENSSL),)
    CMAKE_OPTIONS += -DUSE_OPENSSL=ON
  else ifneq ($(CONFIG_LUA_ECO_WOLFSSL),)
    CMAKE_OPTIONS += -DUSE_WOLFSSL=ON
  else ifneq ($(CONFIG_LUA_ECO_MBEDTLS),)
    CMAKE_OPTIONS += -DUSE_MBEDTLS=ON
  endif
endif

define Package/lua-eco/install
	$(INSTALL_DIR) $(1)/usr/lib/lua
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/eco.so $(1)/usr/lib/lua
endef

define Package/lua-eco/Module/install  
	$(INSTALL_DIR) $(1)/usr/lib/lua/eco
	$(INSTALL_BIN) $(PKG_BUILD_DIR)/$2.so $(1)/usr/lib/lua/eco
endef

Package/lua-eco-log/install=$(call Package/lua-eco/Module/install,$1,log)
Package/lua-eco-sys/install=$(call Package/lua-eco/Module/install,$1,sys)
Package/lua-eco-dns/install=$(call Package/lua-eco/Module/install,$1,dns)
Package/lua-eco-socket/install=$(call Package/lua-eco/Module/install,$1,socket)
Package/lua-eco-ssl/install=$(call Package/lua-eco/Module/install,$1,ssl)
Package/lua-eco-iw/install=$(call Package/lua-eco/Module/install,$1,iw)
Package/lua-eco-ip/install=$(call Package/lua-eco/Module/install,$1,ip)
Package/lua-eco-file/install=$(call Package/lua-eco/Module/install,$1,file)
Package/lua-eco-ubus/install=$(call Package/lua-eco/Module/install,$1,ubus)

$(eval $(call BuildPackage,lua-eco))
$(eval $(call BuildPackage,lua-eco-log))
$(eval $(call BuildPackage,lua-eco-sys))
$(eval $(call BuildPackage,lua-eco-dns))
$(eval $(call BuildPackage,lua-eco-socket))
$(eval $(call BuildPackage,lua-eco-ssl))
$(eval $(call BuildPackage,lua-eco-iw))
$(eval $(call BuildPackage,lua-eco-ip))
$(eval $(call BuildPackage,lua-eco-file))
$(eval $(call BuildPackage,lua-eco-ubus))