help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: target `configure' doesn't match the target pattern


From: Philip Guenther
Subject: Re: target `configure' doesn't match the target pattern
Date: Thu, 3 Jul 2008 21:31:29 -0600

On Thu, Jul 3, 2008 at 4:07 PM, Garrett Cooper <address@hidden> wrote:
> On Thu, Jul 3, 2008 at 2:15 PM, Sam Steingold <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]