This is the mail archive of the
automake@gnu.org
mailing list for the automake project.
Making scripts
- From: Eric Siegerman <erics at telepres dot com>
- To: automake at gnu dot org
- Date: Fri, 29 Mar 2002 00:04:35 -0500
- Subject: Making scripts
- Organization: Telepresence Systems Inc.
Ok, it feels as though I'm trying to accomplish the impossible
... which means that the obvious thing I'm missing must be
*really* obvious :-/
I'm trying to do config-variable substitutions on some scripts,
to get @datadir@ and the like inserted into them.
The value of @datadir@ that gets substituted into the script
needs to be the actual pathname, e.g. "/usr/local/share", rather
than still having shell variables in it, like "${prefix}/share".
The autoconf documentation says to accomplish this by doing the
substitutions at "make" time, not at "configure" time (Autoconf
2.53 manual; section "Installation Directory Variables"; near the
bottom, starting at the paragraph "In order to support these
features...")
Question: How to accomplish that using Automake 1.6?
I tried:
SUFFIXES = .sh
.sh:
rm -f $@ $@.tmp
sed 's,@datadir\@,$(pkgdatadir),g' $< >$@.tmp
chmod +x $@.tmp
mv $@.tmp $@
bin_PROGRAMS = myscript
myscript_SOURCES = myscript.sh
where the ".sh" default rule is taken verbatim from the Autoconf
manual. But that insisted on trying to "cc" myscript; I guess
PROGRAMS is specifically for load modules (the manual probably
even says that someplace :-)
Then I tried changing PROGRAMS to SCRIPTS:
bin_SCRIPTS = myscript
but then automake complained of:
invalid unused variable name: `myscript_SOURCES'
Automake must not expect SCRIPTS to need any sort of building; it
must assume they can just be copied verbatim from $(srcdir) at
install time.
So ... how does one convince Automake to build a new kind of
target, when the build procedure does not ultimately involve
compiling to $(OBJEXT) files, and then linking?
Thanks in advance.
--
| | /\
|-_|/ > Eric Siegerman, Toronto, Ont. erics@telepres.com
| | /
"Outlook not so good." That magic 8-ball knows everything!
I'll ask about Exchange Server next.
- Anonymous