Hi,

2018-02-02 16:46 GMT+01:00 Michael Olbrich <m.olbrich@pengutronix.de>:
Hi,

On Fri, Feb 02, 2018 at 11:59:03AM +0100, Guillermo Rodriguez Garcia wrote:
> I am trying to create a ptxdist package for mediastreamer2. By default,
> releases come without a configure script, and with an autogen.sh that
> requires intltoolize.
>
> So I first tried the following:
>
> In mediastreamer2.in:
>
> select HOST_INTLTOOL
>
> In mediasteamer2.make:
>
> $(STATEDIR)/mediastreamer2.extract:
> @$(call targetinfo)
> @$(call clean, $(MEDIASTREAMER2_DIR))
> @$(call extract, MEDIASTREAMER2)
> cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh autogen.sh
> @$(call patchin, MEDIASTREAMER2)
> @$(call touch)
>
> However, this does not work because apparently ptxdist resolves
> dependencies after the extract stage, so when autogen.sh is run, the
> host-intltool package has not been installed yet.
>
> So I tried to run autogen.sh from the extract.post stage instead:
>
> $(STATEDIR)/mediastreamer2.extract.post:
> @$(call targetinfo)
> cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh autogen.sh

I'm guessing you got that from the latest src-autoconf template. This is
still broken. It's missing the actual extract.post command:

No, I actually made that up myself, based on the documentation. The manual mentions [1] that extract.post is a good place to "generate a configure script out of an autotoolized configure.ac file for example", so that's what I tried. Also the manual does not document any default rule when extract.post is omitted (whereas it does so for other stages). So I didn't know that I had to call world/patchin/post from my custom extract.post rule.

 [1]: https://ptxdist.org/doc/ref_manual.html#extract-post-stage-default-rule
 

         @$(call world/patchin/post, @PACKAGE@)

> @$(call touch)
>
> This way, host-intltool is installed before autogen.sh is run, so that part
> work. But this creates other problems: The install stage fails when trying
> to relink some libraries.
>
> What is the proper way to do this?

The template whre you got this from is for packages where the source is
part of your BSP. I don't think this is the case for mediasteamer2. You
should use the 'target' new-package template.

For most packages the tarball contains the configure script. In that case
nothing special need to happen. If the configure script is missing, then
you need to create a autogen.sh link.
e.g. like the libyaml package in PTXdist does this with
patches/libyaml-0.1.7/autogen.sh.

Actually the mediastreamer2 package comes with its own autogen.sh script. That's why I am running

cd $(MEDIASTREAMER2_DIR) && [ -f configure ] || sh autogen.sh

Is that correct? I guess that if there's an autogen.sh script in the package, that should normally be used in preference to the generic ptxdist version. Right?

Thanks,

Guillermo