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.        [EMAIL PROTECTED]
|  |  /
"Outlook not so good."  That magic 8-ball knows everything!
I'll ask about Exchange Server next.
        - Anonymous

Reply via email to