On Mon, Sep 29, 2014 at 5:42 AM, Michael Olbrich <m.olbrich@pengutronix.de> wrote:
On Fri, Sep 26, 2014 at 05:46:51PM -0400, jon@ringle.org wrote:
> From: Jon Ringle <jringle@gridpoint.com>
>
> This is useful if you install a package to /opt and libs are in /opt/lib:
>     $(call install_lib, foo, 0, 0, 0644, libfoo, opt/)

Is '/opt' your actual use-case or just an example? I wouldn't mind adding
/opt to the default list.

It is just an example. My actual use-case looks like this:

@$(foreach lib, $(GPEC_LIBS), \
$(call install_lib, gpec, 0, 0, 0644, $(lib), opt/gpec/live/);)

where the list of libs in $(GPEC_LIBS) is installed to /opt/gpec/live/lib/


If not:

> Signed-off-by: Jon Ringle <jringle@gridpoint.com>
> ---
>  rules/post/install.make           | 4 +++-
>  scripts/lib/ptxd_make_xpkg_pkg.sh | 4 +++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/rules/post/install.make b/rules/post/install.make
> index d57e5dd..2ff9f40 100644
[...]
> diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh b/scripts/lib/ptxd_make_xpkg_pkg.sh
> index 86196a2..501d1fd 100644
> --- a/scripts/lib/ptxd_make_xpkg_pkg.sh
> +++ b/scripts/lib/ptxd_make_xpkg_pkg.sh
> @@ -744,9 +744,11 @@ export -f ptxd_install_shared
>  ptxd_install_lib() {
>      local lib_dir=$(ptxd_get_lib_dir)
>      local lib="$1"
> +    local root_dir="$2"
> +    shift
>      shift

    local root_dir="${2%/}/"
    shift 2

>
> -    local file="$(for dir in "${pkg_pkg_dir}/"{,usr/}${lib_dir}; do
> +    local file="$(for dir in "${pkg_pkg_dir}/"${root_dir}{,usr/}${lib_dir}; do

    local file="$(for dir in "${pkg_pkg_dir}/"${root_dir#/}{,usr/}${lib_dir}; do

With this, is seems that the trailing / after ${pkg_pkg_dir} could be removed...
 

So the argument for install_lib can be absolute, and the trailing / is
optional. Maybe even enforce an absolute path for root_dir.
And use root_dir instead of '{,usr/}' and not before it.

If the '{,/usr}' is removed, then won't that break searching for libs that might be in /usr/lib/ ?