blob: 61fe717e467ea0dd9d9f09d4db285c7e37c6084a [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#
2# Copyright (C) 2007-2014 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8include $(TOPDIR)/rules.mk
9
10PKG_NAME:=xmlrpc-c
11PKG_VERSION:=1.59.03
12PKG_RELEASE:=1
13
14PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
15PKG_SOURCE_URL:=@SF/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$(PKG_VERSION)
16PKG_HASH:=bdb71db42ab0be51591555885d11682b044c1034d4a3296401bf921ec0b233fe
17
18PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
19PKG_LICENSE:=VARIOUS
20PKG_LICENSE_FILES:=doc/COPYING
21
22PKG_INSTALL:=1
23PKG_BUILD_PARALLEL:=1
24
25include $(INCLUDE_DIR)/package.mk
26include $(INCLUDE_DIR)/nls.mk
27
28define Package/xmlrpc-c/Default
29 SECTION:=libs
30 CATEGORY:=Libraries
31 TITLE:=XML-RPC library
32 URL:=http://xmlrpc-c.sourceforge.net/
33endef
34
35define Package/xmlrpc-c-common
36 $(call Package/xmlrpc-c/Default)
37 TITLE+= - common
38 DEPENDS+= +libpthread
39 HIDDEN:=1
40endef
41
42define Package/xmlrpc-c-internal
43 $(call Package/xmlrpc-c/Default)
44 TITLE+= (uses internal expat variant)
45 DEPENDS:=+xmlrpc-c-common
46 PROVIDES:=xmlrpc-c
47 VARIANT:=internal
48endef
49
50define Package/xmlrpc-c-libxml2
51 $(call Package/xmlrpc-c/Default)
52 TITLE+= (uses libxml2)
53 DEPENDS:=+xmlrpc-c-common +libxml2
54 PROVIDES:=xmlrpc-c
55 VARIANT:=libxml2
56endef
57
58define Package/xmlrpc-c-client
59 $(call Package/xmlrpc-c/Default)
60 TITLE+= - client
61 DEPENDS:=+xmlrpc-c +libcurl
62endef
63
64define Package/xmlrpc-c-server
65 $(call Package/xmlrpc-c/Default)
66 TITLE+= - server
67 DEPENDS:=+xmlrpc-c
68endef
69
70define Package/xmlrpc-c-abyss
71 $(call Package/xmlrpc-c/Default)
72 TITLE+= - abyss
73 DEPENDS:=+xmlrpc-c-common
74endef
75
76define Package/xmlrpc-c-server-abyss
77 $(call Package/xmlrpc-c/Default)
78 TITLE+= - abyss server
79 DEPENDS:=+xmlrpc-c-server +xmlrpc-c-abyss
80endef
81
82define Package/xmlrpc-c/description/Default
83 Programming library for writing an XML-RPC server or client in C or C++.
84 XML-RPC is a standard network protocol to allow a client program to make
85 a simple remote procedure call (RPC) type request of a server.
86endef
87
88Package/xmlrpc-c-common/description = $(Package/xmlrpc-c/description/Default)
89Package/xmlrpc-c-libxml2/description = $(Package/xmlrpc-c/description/Default)
90Package/xmlrpc-c-internal/description = $(Package/xmlrpc-c/description/Default)
91
92Package/xmlrpc-c-libxml2/description += Uses external libxml2 library (quite big)
93Package/xmlrpc-c-internal/description += Uses internal expat variant (stripped down)
94
95CONFIGURE_ARGS+= \
96 --disable-wininet-client \
97 --disable-libwww-client \
98 --disable-cgi-server \
99 --disable-cplusplus \
100 --without-libwww-ssl \
101 --disable-abyss-openssl
102
103ifeq ($(BUILD_VARIANT),libxml2)
104 CONFIGURE_ARGS += \
105 --enable-libxml2-backend
106endif
107
108ifeq ($(BUILD_VARIANT),internal)
109 CONFIGURE_ARGS += \
110 --disable-libxml2-backend
111endif
112
113define Build/Compile
114 ( cd $(PKG_BUILD_DIR)/lib/expat/gennmtab && cc -I$(PKG_BUILD_DIR) -c gennmtab.c -o gennmtab.o && cc -o gennmtab gennmtab.o )
115 $(call Build/Compile/Default)
116endef
117
118TARGET_VARIANT=$(if $(ALL_VARIANTS),$(if $(VARIANT),$(VARIANT),$(firstword $(ALL_VARIANTS))))
119ifeq ($(if $(TARGET_VARIANT),$(BUILD_VARIANT)),$(TARGET_VARIANT))
120 define Build/InstallDev
121 $(INSTALL_DIR) \
122 $(1)/usr/include \
123 $(1)/usr/lib \
124 $(1)/usr/bin \
125 $(1)/usr/lib/pkgconfig \
126 $(2)/bin
127 $(CP) \
128 $(PKG_INSTALL_DIR)/usr/include/* \
129 $(1)/usr/include/
130 $(CP) \
131 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc*.{a,so*} \
132 $(1)/usr/lib/
133 $(INSTALL_BIN) \
134 $(PKG_INSTALL_DIR)/usr/bin/xmlrpc-c-config \
135 $(2)/bin/
136 $(SED) 's,PREFIX="/usr",PREFIX="$(STAGING_DIR)/usr",g' $(2)/bin/xmlrpc-c-config
137 $(SED) \
138 's,HEADERINST_DIR="/usr/include",HEADERINST_DIR="$(STAGING_DIR)/usr/include",g' \
139 $(2)/bin/xmlrpc-c-config
140 $(SED) \
141 's,LIBINST_DIR="/usr/lib",LIBINST_DIR="$(STAGING_DIR)/usr/lib",g' \
142 $(2)/bin/xmlrpc-c-config
143 $(INSTALL_DATA) \
144 $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc \
145 $(1)/usr/lib/pkgconfig/
146 endef
147endif
148
149define Package/xmlrpc-c-libxml2/install
150 $(INSTALL_DIR) \
151 $(1)/usr/lib
152 $(CP) \
153 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc.so* \
154 $(1)/usr/lib/
155endef
156
157define Package/xmlrpc-c-internal/install
158 $(INSTALL_DIR) \
159 $(1)/usr/lib
160 $(CP) \
161 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc.so* \
162 $(1)/usr/lib/
163 $(CP) \
164 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_xmltok.so* \
165 $(1)/usr/lib/
166 $(CP) \
167 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_xmlparse.so* \
168 $(1)/usr/lib/
169endef
170
171define Package/xmlrpc-c-server/install
172 $(INSTALL_DIR) \
173 $(1)/usr/lib
174 $(CP) \
175 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_server.so* \
176 $(1)/usr/lib/
177endef
178
179define Package/xmlrpc-c-abyss/install
180 $(INSTALL_DIR) \
181 $(1)/usr/lib
182 $(CP) \
183 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_abyss.so* \
184 $(1)/usr/lib/
185endef
186
187define Package/xmlrpc-c-server-abyss/install
188 $(INSTALL_DIR) \
189 $(1)/usr/lib
190 $(CP) \
191 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_server_abyss.so* \
192 $(1)/usr/lib/
193endef
194
195define Package/xmlrpc-c-client/install
196 $(INSTALL_DIR) \
197 $(1)/usr/lib
198 $(CP) \
199 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_client* \
200 $(1)/usr/lib/
201endef
202
203define Package/xmlrpc-c-common/install
204 $(INSTALL_DIR) \
205 $(1)/usr/lib
206 $(CP) \
207 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_util.so* \
208 $(1)/usr/lib/
209endef
210
211$(eval $(call BuildPackage,xmlrpc-c-common))
212$(eval $(call BuildPackage,xmlrpc-c-libxml2))
213$(eval $(call BuildPackage,xmlrpc-c-internal))
214$(eval $(call BuildPackage,xmlrpc-c-server))
215$(eval $(call BuildPackage,xmlrpc-c-abyss))
216$(eval $(call BuildPackage,xmlrpc-c-server-abyss))
217$(eval $(call BuildPackage,xmlrpc-c-client))