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

From: Eli Zaretskii <[email-masked]>
Date: Sun, 19 Jan 2025 07:19:53 +0200

> Date: Sat, 18 Jan 2025 20:40:36 +0000
> From: Pip Cet <[email-masked]>
> Cc: [email-masked]
> 
> "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.

How come config.status is deleted in the first place?