[Top][All Lists]
[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