can't supply prefix for plugins install

Issue #43 resolved
Former user created an issue

I can't find a good way to supply a prefix for installing the plugins. It looks like the makefile uses the TEMPO2 variable, while probably it is better to set it to for example $(destdir)/libexec/tempo2

Comments (9)

  1. Michael Keith

    Yes - you can install the plugins to a separate location with e.g.

    ./configure --with-tempo2-plug-dir=/usr/local/libexec/tempo2

    if that is what you want. This is useful for parallel builds, or if you don't want the plugins to go in $TEMPO2 for some reason.

    Note that at runtime it checks the contents of $TEMPO2_PLUG_PATH, followed by the value you specified on the configure line, followed by $TEMPO2/plugins.

  2. Former user Account Deleted reporter

    There is an issue with this though, one can't supply an install prefix.

    Sometimes the installation prefix is different from the runtime/compile time prefix. This is controlled by the DESTDIR variable. This works for the normal installation, but not the plugins installation.

  3. Former user Account Deleted reporter

    so to elaborate, I try to do this:

    $  ./configure --with-tempo2-plug-dir=/usr/local/libexec/tempo2
    $  DESTDIR=/tmp/tempo2 make plugins-install
    make  all-recursive
    make[1]: Entering directory '/packaging/kern/packaging/build/tempo2'
    Making all in sofa
    make[2]: Entering directory '/packaging/kern/packaging/build/tempo2/sofa'
    make[2]: Nothing to be done for 'all'.
    make[2]: Leaving directory '/packaging/kern/packaging/build/tempo2/sofa'
    Making all in .
    make[2]: Entering directory '/packaging/kern/packaging/build/tempo2'
    make[2]: Leaving directory '/packaging/kern/packaging/build/tempo2'
    Making all in tests
    make[2]: Entering directory '/packaging/kern/packaging/build/tempo2/tests'
    make[2]: Nothing to be done for 'all'.
    make[2]: Leaving directory '/packaging/kern/packaging/build/tempo2/tests'
    make[1]: Leaving directory '/packaging/kern/packaging/build/tempo2'
    make -C plugin
    make[1]: Entering directory '/packaging/kern/packaging/build/tempo2/plugin'
    make[1]: Nothing to be done for 'all'.
    make[1]: Leaving directory '/packaging/kern/packaging/build/tempo2/plugin'
    mkdir -p /plugins
    mkdir: cannot create directory ‘/plugins’: Permission denied
    Makefile:1522: recipe for target 'plugins-install' failed
    make: *** [plugins-install] Error 1
    

    For a normal install this just works, but it doesn't work for the plugins-install. This is useful when you try to make a package of the software.

  4. Michael Keith
    • changed status to open

    Ok, reopening this as it is indeed a bug. It would install the plugins into the specified prefix, but it still tries to make $TEMPO2/plugins in the makefile.

    I will fix this.

  5. Michael Keith

    I have made a change that will prevent the error you show in the clip above, i.e. it won't try to create $TEMPO2/plugins, rather it only creates the actual directory it is trying to install the plugins. (commit 7b320889f83ffe445585a1cb478213544582986a)

    I'm not sure if you are wanting to specify the plugin install path only at install time not at configure time. This is possible by overriding the plugin directory varaible, though it's not really neat:

    make plugins-install plugindir=/usr/local/libexec/tempo2
    

    However, this will not change the internal search path of the tempo2 binary, so it won't find the plugins unless you set the TEMPO2_PLUG_PATH variable at runtime. Unless it is unavoidable, I recommend just setting the path at the time of configure.

    Let me know if this change has fixed your problem.

  6. Michael Keith

    Ah - I see now, I have never used DESTDIR so I didn't quite understand what you expected to happen.

    I have changed the makefile to append $DESTDIR to the front of the plugin install path so that the behaviour should be as described in the GNU standard you linked to.

  7. Log in to comment