diff --git a/libs/xmlrpc-c/Makefile b/libs/xmlrpc-c/Makefile new file mode 100644 index 0000000000..0e6be0f9b8 --- /dev/null +++ b/libs/xmlrpc-c/Makefile @@ -0,0 +1,226 @@ +# +# Copyright (C) 2007-2014 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=xmlrpc-c +PKG_REV:=2640 +PKG_VERSION:=1.39.0 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://svn.code.sf.net/p/xmlrpc-c/code/advanced +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=$(PKG_REV) +PKG_SOURCE_PROTO:=svn + +PKG_MAINTAINER:=Ted Hess +PKG_LICENSE:=VARIOUS +PKG_LICENSE_FILE:=doc/COPYING + +PKG_FIXUP:=autoreconf +PKG_INSTALL:=1 +PKG_BUILD_PARALLEL:=0 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +define Package/xmlrpc-c/Default + SECTION:=libs + CATEGORY:=Libraries + TITLE:=XML-RPC library + URL:=http://xmlrpc-c.sourceforge.net/ +endef + +define Package/xmlrpc-c-common + $(call Package/xmlrpc-c/Default) + TITLE+= - common + DEPENDS+= +libpthread + HIDDEN:=1 +endef + +define Package/xmlrpc-c-internal + $(call Package/xmlrpc-c/Default) + TITLE+= (uses internal expat variant) + DEPENDS:=+xmlrpc-c-common +# PROVIDES:=xmlrpc-c + VARIANT:=internal + HIDDEN:=1 +endef + +define Package/xmlrpc-c + $(call Package/xmlrpc-c/Default) + TITLE+= (uses internal expat variant) + DEPENDS:=+xmlrpc-c-internal +endef + +define Package/xmlrpc-c-libxml2 + $(call Package/xmlrpc-c/Default) + TITLE+= (uses libxml2) + DEPENDS:=+xmlrpc-c-common +libxml2 @BROKEN +# PROVIDES:=xmlrpc-c + VARIANT:=libxml2 +endef + +define Package/xmlrpc-c-client + $(call Package/xmlrpc-c/Default) + TITLE+= - client + DEPENDS:=+xmlrpc-c +libcurl +endef + +define Package/xmlrpc-c-server + $(call Package/xmlrpc-c/Default) + TITLE+= - server + DEPENDS:=+xmlrpc-c +endef + +define Package/xmlrpc-c-abyss + $(call Package/xmlrpc-c/Default) + TITLE+= - abyss + DEPENDS:=+xmlrpc-c-common @BROKEN +endef + +define Package/xmlrpc-c-server-abyss + $(call Package/xmlrpc-c/Default) + TITLE+= - abyss server + DEPENDS:=+xmlrpc-c-server +xmlrpc-c-abyss +endef + +define Package/xmlrpc-c/description/Default + Programming library for writing an XML-RPC server or client in C or C++. + XML-RPC is a standard network protocol to allow a client program to make + a simple remote procedure call (RPC) type request of a server. +endef + +Package/xmlrpc-c-common/description = $(Package/xmlrpc-c/description/Default) +Package/xmlrpc-c-libxml2/description = $(Package/xmlrpc-c/description/Default) +Package/xmlrpc-c-internal/description = $(Package/xmlrpc-c/description/Default) + +Package/xmlrpc-c-libxml2/description += Uses external libxml2 library (quite big) +Package/xmlrpc-c-internal/description += Uses internal expat variant (stripped down) + +CONFIGURE_ARGS+= \ + --disable-wininet-client \ + --disable-libwww-client \ + --disable-abyss-server \ + --disable-cplusplus \ + --disable-abyss-threads \ + --disable-cgi-server + +ifeq ($(BUILD_VARIANT),libxml2) + CONFIGURE_ARGS += \ + --enable-libxml2-backend +endif + +ifeq ($(BUILD_VARIANT),internal) + CONFIGURE_ARGS += \ + --disable-libxml2-backend +endif + +define Build/Compile + ( cd $(PKG_BUILD_DIR)/lib/expat/gennmtab && cc -I$(PKG_BUILD_DIR) -c gennmtab.c -o gennmtab.o && cc -o gennmtab gennmtab.o ) + $(call Build/Compile/Default) +endef + +define Build/InstallDev + $(INSTALL_DIR) \ + $(1)/usr/include \ + $(1)/usr/lib \ + $(1)/usr/bin \ + $(2)/bin + $(CP) \ + $(PKG_INSTALL_DIR)/usr/include/* \ + $(1)/usr/include/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc*.{a,so*} \ + $(1)/usr/lib/ + $(INSTALL_BIN) \ + $(PKG_INSTALL_DIR)/usr/bin/xmlrpc-c-config \ + $(2)/bin/ + $(SED) \ + 's,HEADERINST_DIR="/usr/include",HEADERINST_DIR="$(STAGING_DIR)/usr/include",g' \ + $(2)/bin/xmlrpc-c-config + $(SED) \ + 's,LIBINST_DIR="/usr/lib",LIBINST_DIR="$(STAGING_DIR)/usr/lib",g' \ + $(2)/bin/xmlrpc-c-config +endef + +define Package/xmlrpc-c-libxml2/install + $(INSTALL_DIR) \ + $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc.so* \ + $(1)/usr/lib/ +endef + +define Package/xmlrpc-c-internal/install + $(INSTALL_DIR) \ + $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc.so* \ + $(1)/usr/lib/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_xmltok.so* \ + $(1)/usr/lib/ + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_xmlparse.so* \ + $(1)/usr/lib/ +endef + +define Package/xmlrpc-c-server/install + $(INSTALL_DIR) \ + $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_server.so* \ + $(1)/usr/lib/ +endef + +define Package/xmlrpc-c-abyss/install + $(INSTALL_DIR) \ + $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_abyss.so* \ + $(1)/usr/lib/ +endef + +define Package/xmlrpc-c-server-abyss/install + $(INSTALL_DIR) \ + $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_server_abyss.so* \ + $(1)/usr/lib/ +endef + +define Package/xmlrpc-c-client/install + $(INSTALL_DIR) \ + $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_client* \ + $(1)/usr/lib/ +endef + +define Package/xmlrpc-c-common/install + $(INSTALL_DIR) \ + $(1)/usr/lib + $(CP) \ + $(PKG_INSTALL_DIR)/usr/lib/libxmlrpc_util.so* \ + $(1)/usr/lib/ +endef + +define Package/xmlrpc-c/install + true +endef + +$(eval $(call BuildPackage,xmlrpc-c)) +$(eval $(call BuildPackage,xmlrpc-c-common)) +#$(eval $(call BuildPackage,xmlrpc-c-libxml2)) +$(eval $(call BuildPackage,xmlrpc-c-internal)) +$(eval $(call BuildPackage,xmlrpc-c-server)) +#$(eval $(call BuildPackage,xmlrpc-c-abyss)) +#$(eval $(call BuildPackage,xmlrpc-c-server-abyss)) +$(eval $(call BuildPackage,xmlrpc-c-client)) diff --git a/libs/xmlrpc-c/patches/001-config.mk.in.patch b/libs/xmlrpc-c/patches/001-config.mk.in.patch new file mode 100644 index 0000000000..e190ebb810 --- /dev/null +++ b/libs/xmlrpc-c/patches/001-config.mk.in.patch @@ -0,0 +1,11 @@ +--- a/config.mk.in ++++ b/config.mk.in +@@ -175,7 +175,7 @@ ifeq ($(patsubst linux-gnu%,linux-gnu,$( + shlibfn = $(1:%=%.$(SHLIB_SUFFIX).$(MAJ).$(MIN)) + shliblefn = $(1:%=%.$(SHLIB_SUFFIX)) + # SHLIB_CLIB = -lc +- LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB) ++ LDFLAGS_SHLIB = -shared -Wl,-soname,$(SONAME) $(SHLIB_CLIB) $(LDFLAGS) + CFLAGS_SHLIB=-fPIC + endif + diff --git a/libs/xmlrpc-c/patches/002-automake-compat.patch b/libs/xmlrpc-c/patches/002-automake-compat.patch new file mode 100644 index 0000000000..be69611d1b --- /dev/null +++ b/libs/xmlrpc-c/patches/002-automake-compat.patch @@ -0,0 +1,13 @@ +--- a/configure.in ++++ b/configure.in +@@ -224,9 +224,7 @@ dnl Checks for programs. + dnl ======================================================================= + + AC_PROG_CC +-if test x"$enable_cplusplus" != xno; then +- AC_PROG_CXX +-fi ++AC_PROG_CXX + + + dnl =======================================================================