Subject: Re: bug#75655: configure doesn't update Makefile

From: Pip Cet <[email-masked]>
Date: Sat, 18 Jan 2025 20:40:36 +0000

"Eli Zaretskii" <[email-masked]> writes:

>> Date: Sat, 18 Jan 2025 19:35:54 +0000
>> From:  Pip Cet via "Bug reports for GNU Emacs,
>>  the Swiss army knife of text editors" <[email-masked]>
>>
>> I'm confused by this recipe in Makefile.in:
>>
>> config.status: ${srcdir}/configure
>> 	if [ -x ./config.status ]; then		\
>> 	    $(CFG) ./config.status --recheck;	\
>> 	else					\
>> 	    $(CFG) $(srcdir)/configure $(CONFIGURE_FLAGS); \
>> 	fi
>>
>> If config.status exists, it is rerun, and regenerates the Makefile; but
>> if it doesn't, configure is run but config.status isn't.
>
> config.status is run, after creating it, by the 'Makefile' rule:
>
>   configure: creating ./config.status
>   configure: WARNING: This configuration installs a 'movemail' program
>   that retrieves POP3 email via only insecure channels.
>   To omit insecure POP3, you can use './configure --without-pop'.
>   MAKE='make' ./config.status
>   config.status: creating src/verbose.mk
>   config.status: creating nt/emacs.rc
>   config.status: creating nt/emacsclient.rc

As far as I can tell, the 'Makefile' rule calls a recursive make with
the 'config.status' target (but it also lists config.status as a
dependency); 'config.status' is a file target, not a phony target, so
if config.status is more recent than configure (which is usually the
case), nothing happens.

If config.status has been deleted, we run configure but not
config.status.  This means the Makefile won't be modified.

Pip