Michael G Schwern wrote:
On Tue, Sep 20, 2005 at 02:02:24PM -0400, Peter Prymmer wrote:

By the way, why is `false` desirable to have in a Makefile?
Why does MakeMaker need to know how to do it?
It appears it wants to make sure certain targets fail when the commands
themselves don't necessarily exit with non-zero.  Its the make equivalent of
"return 0". There's only three occurances of this. One is specific to OS/2. One is in MM_Unix->perldepend which appears to be unused.
Only this one is actually used in day-to-day Makefiles but it only happens
if the Makefile.PL is newer than the Makefile, so its not critical code.

# --- MakeMaker makefile section:
# We take a very conservative approach here, but it's worth it.
# We move Makefile to Makefile.old here to avoid gnu make looping.
$(FIRST_MAKEFILE) : Makefile.PL $(CONFIGDEP)
        $(NOECHO) $(ECHO) "Makefile out-of-date with respect to $?"
        $(NOECHO) $(ECHO) "Cleaning current config before rebuilding Makefile...
"
        -$(NOECHO) $(RM_F) $(MAKEFILE_OLD)
        -$(NOECHO) $(MV)   $(FIRST_MAKEFILE) $(MAKEFILE_OLD)
        - $(MAKE) $(USEMAKEFILE) $(MAKEFILE_OLD) clean $(DEV_NULL)
$(PERLRUN) Makefile.PL $(NOECHO) $(ECHO) "==> Your Makefile has been rebuilt. <=="
        $(NOECHO) $(ECHO) "==> Please rerun the $(MAKE) command.  <=="
        false

According to the above, it is also triggered by $(CONFIGDEP) being newer than $(FIRST_MAKEFILE) which seems to happen on the VMS rebuilds I do quite a bit.

I seem to also remember seeing it being triggered by using the REALCLEAN target on the main VMS DESCRIP.MMS, but maybe I am mistaken about that.

If the "false" command causes MMK/MMS to abort, it kills the entire VMS rebuild. Having the false command not exist is good enough for that.

If the "false" command returns a SUCCESS on VMS, then the VMS build procedure does re-run the $(MAKE) command and successfully builds.

This only occurs on a rebuild and not on the initial build.

As near as I can tell, the creation time of the PERLSHR.EXE or DBGPERLSHR.EXE or something created by their rebuild seems to trigger the make files for all the extensions to be rebuilt on VMS.

Or it could be that the VMS build always rebuilds the makefiles, and until this "false" command tried to be executed, I did not notice.

-John
[EMAIL PROTECTED]
Personal Opinion Only

Reply via email to