[packages/xmlrpc-c] use build variants to build xmlrpc-c with libxml2 as well as...
[openwrt/svn-archive/archive.git] / libs / xmlrpc-c / Makefile
1 #
2 # Copyright (C) 2007-2010 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=xmlrpc-c
11 PKG_REV:=2042
12 PKG_VERSION:=1.24.4_r$(PKG_REV)
13 PKG_RELEASE:=1
14
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
16 PKG_SOURCE_URL:=http://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/advanced
17 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
18 PKG_SOURCE_VERSION:=$(PKG_REV)
19 PKG_SOURCE_PROTO:=svn
20
21 PKG_FIXUP:=libtool
22 PKG_INSTALL:=1
23
24 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
25
26 include $(INCLUDE_DIR)/package.mk
27
28 define Package/xmlrpc-c_common
29 SECTION:=libs
30 CATEGORY:=Libraries
31 TITLE:=XML-RPC library - common
32 URL:=http://xmlrpc-c.sourceforge.net/
33 endef
34
35 define Package/xmlrpc-c_internal
36 SECTION:=libs
37 CATEGORY:=Libraries
38 TITLE:=XML-RPC library - (ueses internal expat variant)
39 URL:=http://xmlrpc-c.sourceforge.net/
40 DEPENDS:=+xmlrpc-c_common
41 PROVIDES:=xmlrpc-c
42 VARIANT:=internal
43 endef
44
45 define Package/xmlrpc-c_libxml2
46 SECTION:=libs
47 CATEGORY:=Libraries
48 TITLE:=XML-RPC library - (uses libxml2)
49 URL:=http://xmlrpc-c.sourceforge.net/
50 DEPENDS:=+xmlrpc-c_common +libxml2
51 PROVIDES:=xmlrpc-c
52 VARIANT:=libxml2
53 endef
54
55 define Package/xmlrpc-c_client
56 SECTION:=libs
57 CATEGORY:=Libraries
58 TITLE:=XML-RPC library - client
59 URL:=http://xmlrpc-c.sourceforge.net/
60 DEPENDS:=xmlrpc-c +libcurl
61 endef
62
63 define Package/xmlrpc-c_server
64 SECTION:=libs
65 CATEGORY:=Libraries
66 TITLE:=XML-RPC library - server
67 URL:=http://xmlrpc-c.sourceforge.net/
68 DEPENDS:=xmlrpc-c
69 endef
70
71 define Package/xmlrpc-c_abyss
72 SECTION:=libs
73 CATEGORY:=Libraries
74 TITLE:=XML-RPC library - abyss
75 URL:=http://xmlrpc-c.sourceforge.net/
76 DEPENDS:=+xmlrpc-c_common
77 endef
78
79 define Package/xmlrpc-c_server-abyss
80 SECTION:=libs
81 CATEGORY:=Libraries
82 TITLE:=XML-RPC library - abyss server
83 URL:=http://xmlrpc-c.sourceforge.net/
84 DEPENDS:=+xmlrpc-c_server +xmlrpc-c_abyss
85 endef
86
87 define Package/xmlrpc-c/description/Default
88 Programming library for writing an XML-RPC server or client in C or C++.
89 XML-RPC is a standard network protocol to allow a client program to make
90 a simple remote procedure call (RPC) type request of a server.
91 endef
92
93 Package/xmlrpc-c_common/description = $(Package/xmlrpc-c/description/Default)
94 Package/xmlrpc-c_libxml2/description = $(Package/xmlrpc-c/description/Default)
95 Package/xmlrpc-c_internal/description = $(Package/xmlrpc-c/description/Default)
96
97 Package/xmlrpc-c_libxml2/description += Uses external libxml2 library (quite big)
98 Package/xmlrpc-c_internal/description += Uses internal expat variant (stripped down)
99
100 CONFIGURE_ARGS+= \
101 --disable-wininet-client \
102 --disable-libwww-client \
103 --enable-abyss-server \
104 --disable-cplusplus \
105 --disable-static \
106 --disable-abyss-threads \
107 --disable-cgi-server
108
109 ifeq ($(BUILD_VARIANT),libxml2)
110 CONFIGURE_ARGS += \
111 --enable-libxml2-backend
112 endif
113
114 ifeq ($(BUILD_VARIANT),internal)
115 CONFIGURE_ARGS += \
116 --disable-libxml2-backend
117 endif
118
119 define Build/Compile
120 ( cd $(PKG_BUILD_DIR)/lib/expat/gennmtab && cc -I$(PKG_BUILD_DIR) -c gennmtab.c -o gennmtab.o && cc -o gennmtab gennmtab.o )
121 $(call Build/Compile/Default)
122 endef
123
124 define Build/InstallDev
125 $(INSTALL_DIR) \
126 $(1)/usr/include \
127 $(1)/usr/lib \
128 $(1)/usr/bin \
129 $(2)/bin
130
131 $(CP) \
132 $(PKG_INSTALL_DIR)/usr/include/* \
133 $(1)/usr/include/
134
135 $(CP) \
136 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc*.{a,so*} \
137 $(1)/usr/lib/
138
139 $(INSTALL_BIN) \
140 $(PKG_INSTALL_DIR)/usr/bin/xmlrpc-c-config \
141 $(2)/bin/
142
143 $(SED) \
144 's,HEADERINST_DIR="/usr/include",HEADERINST_DIR="$(STAGING_DIR)/usr/include",g' \
145 $(2)/bin/xmlrpc-c-config
146
147 $(SED) \
148 's,LIBINST_DIR="/usr/lib",LIBINST_DIR="$(STAGING_DIR)/usr/lib",g' \
149 $(2)/bin/xmlrpc-c-config
150 endef
151
152 define Package/xmlrpc-c_libxml2/install
153 $(INSTALL_DIR) \
154 $(1)/usr/lib
155
156 $(CP) \
157 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc.so* \
158 $(1)/usr/lib/
159 endef
160
161 define Package/xmlrpc-c_internal/install
162 $(INSTALL_DIR) \
163 $(1)/usr/lib
164
165 $(CP) \
166 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc.so* \
167 $(1)/usr/lib/
168
169 $(CP) \
170 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_xmltok.so* \
171 $(1)/usr/lib/
172
173 $(CP) \
174 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_xmlparse.so* \
175 $(1)/usr/lib/
176 endef
177
178 define Package/xmlrpc-c_server/install
179 $(INSTALL_DIR) \
180 $(1)/usr/lib
181
182 $(CP) \
183 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_server.so* \
184 $(1)/usr/lib/
185 endef
186
187 define Package/xmlrpc-c_abyss/install
188 $(INSTALL_DIR) \
189 $(1)/usr/lib
190
191 $(CP) \
192 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_abyss.so* \
193 $(1)/usr/lib/
194 endef
195
196 define Package/xmlrpc-c_server-abyss/install
197 $(INSTALL_DIR) \
198 $(1)/usr/lib
199
200 $(CP) \
201 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_server_abyss.so* \
202 $(1)/usr/lib/
203 endef
204
205 define Package/xmlrpc-c_client/install
206 $(INSTALL_DIR) \
207 $(1)/usr/lib
208
209 $(CP) \
210 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_client* \
211 $(1)/usr/lib/
212 endef
213
214 define Package/xmlrpc-c_common/install
215 $(INSTALL_DIR) \
216 $(1)/usr/lib
217
218 $(CP) \
219 $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_util.so* \
220 $(1)/usr/lib/
221 endef
222
223
224 $(eval $(call BuildPackage,xmlrpc-c_common))
225 $(eval $(call BuildPackage,xmlrpc-c_libxml2))
226 $(eval $(call BuildPackage,xmlrpc-c_internal))
227 $(eval $(call BuildPackage,xmlrpc-c_server))
228 $(eval $(call BuildPackage,xmlrpc-c_abyss))
229 $(eval $(call BuildPackage,xmlrpc-c_server-abyss))
230 $(eval $(call BuildPackage,xmlrpc-c_client))