can't supply prefix for plugins install
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)
-
-
- changed status to resolved
-
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.
-
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.
-
- 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.
-
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.
-
Account Deleted reporter Perfect! Thanks! It works.
That said, the perfect solution would be to have
make plugins-install
also look at the DESTDIR variable and prepend the installation path with that.https://www.gnu.org/prep/standards/html_node/DESTDIR.html
But I can work around this by setting the plugindir. Thanks again!
-
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.
-
- changed status to resolved
- Log in to comment
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.