Discussion:
Creating a link with automake
Bernhard Seckinger
2017-01-20 10:21:48 UTC
Permalink
Hi,

I've got a program, that contains some php-script frontend (cli not web)
(and other stuff, which is irrelevant here). I've put the php-scripts into
$pkgdatadir. Now I'd like to have a link from $bindir to the main script i.e.

ln -s ${pkgdatadir}/croco.php ${bindir}/croco

To do this I've added to the Makefile.ac the following:

install-exec-local:
mkdir -p ${bindir}
ln -s ${pkgdatadir}/croco.php ${bindir}/croco

When using "make install" this works. But when I run "make distcheck" I get an
error, telling that I'm not allowed to create the ${bindir}. I've allready
tried to replace the mkdir command with

${srcdir}/../install-sh -d ${bindir}

which is probably architecture-independend, but I still get a similar error.

Does anyone know, how to do this?

Thanks, Berni
--
-- Meine Rätselwebseite: www.croco-puzzle.com
Bob Friesenhahn
2017-01-20 18:44:53 UTC
Permalink
Post by Bernhard Seckinger
I've got a program, that contains some php-script frontend (cli not web)
(and other stuff, which is irrelevant here). I've put the php-scripts into
$pkgdatadir. Now I'd like to have a link from $bindir to the main script i.e.
ln -s ${pkgdatadir}/croco.php ${bindir}/croco
mkdir -p ${bindir}
ln -s ${pkgdatadir}/croco.php ${bindir}/croco
When using "make install" this works. But when I run "make distcheck" I get an
error, telling that I'm not allowed to create the ${bindir}. I've allready
tried to replace the mkdir command with
${srcdir}/../install-sh -d ${bindir}
which is probably architecture-independend, but I still get a similar error.
Does anyone know, how to do this?
You need to add support for the DESTDIR environment variable, which
specifies an alternate directory path to install into. Perhaps this
will work:

install-exec-local:
mkdir -p ${DESTDIR}${bindir}
ln -s ${DESTDIR}${pkgdatadir}/croco.php ${DESTDIR}${bindir}/croco

Bob
--
Bob Friesenhahn
***@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
Bernhard Seckinger
2017-01-20 19:50:16 UTC
Permalink
Hi Bob,
Post by Bob Friesenhahn
You need to add support for the DESTDIR environment variable, which
specifies an alternate directory path to install into. Perhaps this
That's it. :-) I read about DESTDIR but unfortunately forgot it...

Thanks, Berni
--
-- Meine Rätselwebseite: www.croco-puzzle.com
Simon Richter
2017-01-23 10:56:05 UTC
Permalink
Hi,
Post by Bob Friesenhahn
mkdir -p ${DESTDIR}${bindir}
ln -s ${DESTDIR}${pkgdatadir}/croco.php ${DESTDIR}${bindir}/croco
With automake, this could also be written as

install-exec-local:
$(MKDIR_P) $(DESTDIR)$(bindir)
$(LN_S) $(DESTDIR)$(pkgdatadir)/croco.php $(DESTDIR)$(bindir)/croco

I'm not sure about the real world significance of this, but there is
probably a historical reason why there would be variables defined for these
commands.

Simon
Thomas Jahns
2017-01-23 10:59:23 UTC
Permalink
Post by Bernhard Seckinger
I've got a program, that contains some php-script frontend (cli not web)
(and other stuff, which is irrelevant here). I've put the php-scripts into
$pkgdatadir. Now I'd like to have a link from $bindir to the main script i.e.
ln -s ${pkgdatadir}/croco.php ${bindir}/croco
mkdir -p ${bindir}
ln -s ${pkgdatadir}/croco.php ${bindir}/croco
When using "make install" this works. But when I run "make distcheck" I get an
error, telling that I'm not allowed to create the ${bindir}. I've allready
tried to replace the mkdir command with
${srcdir}/../install-sh -d ${bindir}
which is probably architecture-independend, but I still get a similar error.
Does anyone know, how to do this?
I think the SCRIPTS primary is what you're searching for:

https://www.gnu.org/software/automake/manual/automake.html#Scripts

Regards, Thomas

Loading...