On Thu, Jul 3, 2008 at 4:07 PM, Garrett Cooper <[EMAIL PROTECTED]> wrote:
> On Thu, Jul 3, 2008 at 2:15 PM, Sam Steingold <[EMAIL PROTECTED]> wrote:
>> I get this error:
>>
>> $ make -f Makefile.devel configures
>> Makefile.devel:81: target `configure' doesn't match the target pattern
>>
>> the relevant parts of Makefile.devel:
>>
>> SUBDIRS_CONFIGURE = . avcall vacall trampoline callback \
>>        callback/vacall_r callback/trampoline_r
>> CONFIGURES = $(patsubst %,%/configure,$(SUBDIRS_CONFIGURE))
>>
>> configures : $(CONFIGURES)
>>
>> $(CONFIGURES) : %/configure : %/configure.in $(AUTOCONF_FILES)
>>        cd $*; $(AUTOCONF) --include=$(CURDIR)
>>
>> line 81 is the line starting with "$(CONFIGURES) : ..."
>>
>> I understand that "configure" does not match "%/configure",
>> but "configure" is not in $(CONFIGURES),
>> "./configure" is - and it _should_ match "%/configure".
>>
>> So, what am I doing wrong?

The problem is that GNU make internally trims leading "./" from target
paths.  The simplest solution is probably to change SUBDIRS_CONFIGURE
to contain "${CURDIR}" instead of ".".

Oh, and you should change the command to say
    cd $*; $(AUTOCONF) --include=$(CURDIR)
to
    cd $* && $(AUTOCONF) --include=$(CURDIR)

so that if the cd was to fail, the command would fail instead of
running autoconf in the wrong directory.


> Deferred variable expansion, i.e. should
>
> #-----------
> configures : $(CONFIGURES)
>
> $(CONFIGURES) : %/configure : %/configure.in $(AUTOCONF_FILES)
>        cd $*; $(AUTOCONF) --include=$(CURDIR)
>
> #-----------
>
> be in a define block?

That's a static-pattern rule.  Why would you place it in a define block?


Philip Guenther


_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to