mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH v2] Add gSOAP 2.8.12, C/C++ SOAP library
Date: Fri, 31 May 2013 12:29:41 +0200	[thread overview]
Message-ID: <20130531102941.GH5243@pengutronix.de> (raw)
In-Reply-To: <1369223088.16896.18.camel@fqgym4j>

On Wed, May 22, 2013 at 01:44:48PM +0200, Joris Dobbelsteen wrote:
> Add gSOAP 2.8.12, C/C++ SOAP library.
> - Includes patch to support cross-compile, using host code generators instead of just compiled ones.
> - soapccp2/wsdl2h code generators as host tools
> 
> Updated dependencies as well. This creates a few header files and static libraries, plus a code generator, so there is no package for the target system.
> 
> Signed-off-by: Joris Dobbelsteen <joris.dobbelsteen@sioux.eu>
> ---
>  ...Add-cross-compile-support-for-gsoap-tools.patch |   72 ++++++++++++++++++++
>  patches/gsoap-2.8/autogen.sh                       |   18 +++++
>  patches/gsoap-2.8/series                           |    4 ++
>  rules/gsoap.in                                     |   20 ++++++
>  rules/gsoap.make                                   |   51 ++++++++++++++
>  rules/host-gsoap.in                                |    7 ++
>  rules/host-gsoap.make                              |   31 +++++++++
>  7 files changed, 203 insertions(+)
>  create mode 100644 patches/gsoap-2.8/0001-Add-cross-compile-support-for-gsoap-tools.patch
>  create mode 100755 patches/gsoap-2.8/autogen.sh
>  create mode 100644 patches/gsoap-2.8/series
>  create mode 100644 rules/gsoap.in
>  create mode 100644 rules/gsoap.make
>  create mode 100644 rules/host-gsoap.in
>  create mode 100644 rules/host-gsoap.make
> 
> diff --git a/patches/gsoap-2.8/0001-Add-cross-compile-support-for-gsoap-tools.patch b/patches/gsoap-2.8/0001-Add-cross-compile-support-for-gsoap-tools.patch
> new file mode 100644
> index 0000000..3642321
> --- /dev/null
> +++ b/patches/gsoap-2.8/0001-Add-cross-compile-support-for-gsoap-tools.patch
> @@ -0,0 +1,72 @@
> +From: unknown author <unknown.author@example.com>
> +Date: Wed, 22 May 2013 11:20:35 +0200
> +Subject: [PATCH] Add cross-compile support for gsoap tools
> +
> +---
> + configure.in                          |   12 ++++++++++++
> + gsoap/samples/autotest/Makefile.am    |    2 --
> + gsoap/samples/databinding/Makefile.am |    2 --
> + gsoap/wsdl/Makefile.am                |    1 -
> + 4 files changed, 12 insertions(+), 5 deletions(-)
> +
> +diff --git a/configure.in b/configure.in
> +index 60a6eb2..602c3fd 100644
> +--- a/configure.in
> ++++ b/configure.in
> +@@ -86,6 +86,18 @@ case "${host}" in
> +         *)              platform=UNKNOWN ;;
> + esac
> + 
> ++if test "$cross_compiling" = yes; then
> ++	# cross-compiling
> ++	AC_PATH_PROG([SOAP],[soapcpp2])
> ++	AC_PATH_PROG([WSDL],[wsdl2h])
> ++else
> ++	# regular compile
> ++	SOAP="\$(top_srcdir)/gsoap/src/soapcpp2"
> ++	WSDL="\$(top_srcdir)/gsoap/wsdl/wsdl2h"
> ++fi
> ++AC_SUBST(SOAP)
> ++AC_SUBST(WSDL)
> ++
> + AC_SUBST(SAMPLE_EXTRA_LIBS)
> + AC_SUBST(platform)
> + 
> +diff --git a/gsoap/samples/autotest/Makefile.am b/gsoap/samples/autotest/Makefile.am
> +index 35641a2..0d3e85e 100644
> +--- a/gsoap/samples/autotest/Makefile.am
> ++++ b/gsoap/samples/autotest/Makefile.am
> +@@ -7,8 +7,6 @@ AUTOMAKE_OPTIONS = foreign 1.4
> + 
> + INCLUDES=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
> + AM_LDFLAGS=$(INCLUDES) -I$(srcdir) -L$(srcdir)
> +-SOAP=$(top_srcdir)/gsoap/src/soapcpp2
> +-WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h
> + WSDL_FLAGS=-P -t $(srcdir)/typemap.dat
> + SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/import
> + WSDLINPUT=$(srcdir)/examples.wsdl
> +diff --git a/gsoap/samples/databinding/Makefile.am b/gsoap/samples/databinding/Makefile.am
> +index beac10a..68ed194 100644
> +--- a/gsoap/samples/databinding/Makefile.am
> ++++ b/gsoap/samples/databinding/Makefile.am
> +@@ -7,8 +7,6 @@ AUTOMAKE_OPTIONS = foreign 1.4
> + 
> + INCLUDES=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
> + AM_LDFLAGS=$(INCLUDES) -I$(srcdir) -L$(srcdir)
> +-SOAP=$(top_srcdir)/gsoap/src/soapcpp2
> +-WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h
> + WSDL_FLAGS=-g -t $(srcdir)/addresstypemap.dat
> + SOAP_FLAGS=-0 -CS -p address -I$(top_srcdir)/gsoap/import
> + WSDLINPUT=$(srcdir)/address.xsd
> +diff --git a/gsoap/wsdl/Makefile.am b/gsoap/wsdl/Makefile.am
> +index d431760..2ec66f9 100644
> +--- a/gsoap/wsdl/Makefile.am
> ++++ b/gsoap/wsdl/Makefile.am
> +@@ -9,7 +9,6 @@ AUTOMAKE_OPTIONS = foreign 1.4
> + # AM_LDFLAGS=$(INCLUDES) -I$(srcdir) -L$(srcdir)
> + AM_LDFLAGS=-L$(srcdir)
> + AM_CPPFLAGS=-I$(top_srcdir)/gsoap
> +-SOAP=$(top_builddir)/gsoap/src/soapcpp2
> + SOAP_CPP_LIB=$(top_builddir)/gsoap/$(WSDL2H_SOAP_CPP_LIB)
> + SOAP_CPP_SRC=wsdlC.cpp
> + SOAPHEADER=$(srcdir)/wsdl.h
> diff --git a/patches/gsoap-2.8/autogen.sh b/patches/gsoap-2.8/autogen.sh
> new file mode 100755
> index 0000000..df78c38
> --- /dev/null
> +++ b/patches/gsoap-2.8/autogen.sh

This must be a symlink to ../autogen.sh

> @@ -0,0 +1,18 @@
> +#!/bin/bash
> +
> +set -e
> +
> +aclocal $ACLOCAL_FLAGS
> +
> +libtoolize \
> +	--force \
> +	--copy
> +
> +autoreconf \
> +	--force \
> +	--install \
> +	--warnings=cross \
> +	--warnings=syntax \
> +	--warnings=obsolete \
> +	--warnings=unsupported
> +
> diff --git a/patches/gsoap-2.8/series b/patches/gsoap-2.8/series
> new file mode 100644
> index 0000000..0301695
> --- /dev/null
> +++ b/patches/gsoap-2.8/series
> @@ -0,0 +1,4 @@
> +# generated by git-ptx-patches
> +#tag:base --start-number 1
> +0001-Add-cross-compile-support-for-gsoap-tools.patch
> +# f175a30fe1b80a8548826b0c0f6d5684  - git-ptx-patches magic
> diff --git a/rules/gsoap.in b/rules/gsoap.in
> new file mode 100644
> index 0000000..ccec2fb
> --- /dev/null
> +++ b/rules/gsoap.in
> @@ -0,0 +1,20 @@
> +## SECTION=system_libraries
> +
> +menuconfig GSOAP
> +     tristate
> +     select HOST_GSOAP
> +     select OPENSSL if GSOAP_SSL
> +     select ZLIB
> +     prompt "gsoap"

expand the prompt with spaces to align the "--->"

> +     help
> +       High-performance C/C++ SOAP library.

add empty line.

> +if GSOAP
> +
> +config GSOAP_SSL
> +     bool
> +     default n
> +     prompt "Enable SSL support"
> +     help
> +       High-performance C/C++ SOAP library.
> +
> +endif
> diff --git a/rules/gsoap.make b/rules/gsoap.make
> new file mode 100644
> index 0000000..61b7e11
> --- /dev/null
> +++ b/rules/gsoap.make
> @@ -0,0 +1,51 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2013 by Joris Dobbelsteen <joris.dobbelsteen@sioux.eu>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +PACKAGES-$(PTXCONF_GSOAP) += gsoap
> +
> +#
> +# Paths and names
> +#
> +GSOAP_VERSION	:= 2.8.12
> +GSOAP_MD5	:= 5700d26fc6fe3073d038349e19c3640d
> +GSOAP		:= gsoap-2.8
> +GSOAP_SUFFIX	:= zip
> +GSOAP_URL	:= $(PTXCONF_SETUP_SFMIRROR)/gsoap2/gsoap_${GSOAP_VERSION}.$(GSOAP_SUFFIX)
> +GSOAP_SOURCE	:= $(SRCDIR)/gsoap_${GSOAP_VERSION}.$(GSOAP_SUFFIX)
> +GSOAP_DIR	:= $(BUILDDIR)/${GSOAP}
> +GSOAP_LICENSE	:= GPLv2/propriatary
> +GSOAP_MAKE_PAR	:= NO
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +#
> +# autoconf
> +#
> +GSOAP_CONF_TOOL	:= autoconf
> +GSOAP_CONF_OPT	:= i\

break.

	$(CROSS_AUTOCONF_USR) \
> +	--$(call ptx/endis, PTXCONF_GSOAP_SSL)-ssl \
> +	$(GLOBAL_IPV6_OPTION) \
> +	--disable-samples
> +
> +# ----------------------------------------------------------------------------
> +# Target-Install
> +# ----------------------------------------------------------------------------
> +
> +$(STATEDIR)/gsoap.targetinstall:
> +	@$(call targetinfo)
> +#	It only contains code generator, static libraries and headers. Nothing for the target.
> +	@$(call touch)
> +
> +# vim: syntax=make
> diff --git a/rules/host-gsoap.in b/rules/host-gsoap.in
> new file mode 100644
> index 0000000..277937d
> --- /dev/null
> +++ b/rules/host-gsoap.in
> @@ -0,0 +1,7 @@
> +## SECTION=hosttools_noprompt
> +
> +config HOST_GSOAP
> +     tristate
> +     select HOST_ZLIB
> +     select HOST_OPENSSL if GSOAP_SSL

this breaks dependencies. If GSOAP_SSL is selected then host-gsoap may not
be rebuilt.

	select HOST_OPENSSL if HOST_GSOAP_OPENSSL

if HOST_GSOAP

config HOST_GSOAP_OPENSSL
	bool

endif

and select HOST_GSOAP_OPENSSL in GSOAP

Also: is this actually needed? do the tool use openssl?

> +
> diff --git a/rules/host-gsoap.make b/rules/host-gsoap.make
> new file mode 100644
> index 0000000..18cbabd
> --- /dev/null
> +++ b/rules/host-gsoap.make
> @@ -0,0 +1,31 @@
> +# -*-makefile-*-
> +#
> +# Copyright (C) 2011 by Joris Dobbelsteen <joris.dobbelsteen@sioux.eu>
> +#
> +# See CREDITS for details about who has contributed to this project.
> +#
> +# For further information about the PTXdist project and license conditions
> +# see the README file.
> +#
> +
> +#
> +# We provide this package
> +#
> +HOST_PACKAGES-$(PTXCONF_HOST_GSOAP) += host-gsoap
> +
> +HOST_GSOAP_MAKE_PAR := NO
> +
> +# ----------------------------------------------------------------------------
> +# Prepare
> +# ----------------------------------------------------------------------------
> +
> +#
> +# autoconf
> +#
> +HOST_GSOAP_CONF_TOOL	:= autoconf
> +HOST_GSOAP_CONF_OPT	:= \

break.

	$(HOST_AUTOCONF) \
> +	--$(call ptx/endis, PTXCONF_GSOAP_SSL)-ssl \
> +	$(GLOBAL_IPV6_OPTION) \

GLOBAL_IPV6_OPTION is for the target only. Just disable it unless the tools
need this.

Michael

> +	--disable-samples
> +
> +# vim: syntax=make
> -- 
> 1.7.10.4
> 
> 
> 
> -- 
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

-- 
ptxdist mailing list
ptxdist@pengutronix.de

      reply	other threads:[~2013-05-31 10:29 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-22 11:44 Joris Dobbelsteen
2013-05-31 10:29 ` Michael Olbrich [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130531102941.GH5243@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox