delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/07/30/06:36:16

To: djgpp AT delorie DOT com
Subject: Re: Make fails with "*** missing separator."
References: <Pine DOT SUN DOT 3 DOT 91 DOT 990729110436 DOT 25908I-100000 AT is>
From: Michael Bukin <M DOT A DOT Bukin AT inp DOT nsk DOT su>
Date: 30 Jul 1999 08:47:30 +0700
In-Reply-To: Eli Zaretskii's message of "Thu, 29 Jul 1999 11:04:55 +0300 (IDT)"
Message-ID: <20g126vrgt.fsf@Sky.inp.nsk.su>
Lines: 65
X-Mailer: Gnus v5.5/Emacs 19.34
Reply-To: djgpp AT delorie DOT com

Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> writes:

> On Wed, 28 Jul 1999 jeff DOT fritsche AT persoft DOT com wrote:
> 
> > 724 # --- MakeMaker pm_to_blib section:
> > 725
> > 726 pm_to_blib: $(TO_INST_PM)
> > 727         @$(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" \
> > 728         "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -MExtUtils::Install \
> > 729         -e "pm_to_blib(qw[ <<pmfiles.dat ],'$(INST_LIB)\auto')"
> > 730
> > 731 $(PM_TO_BLIB)
> > 732 <<
> > 733         @$(TOUCH) $@
> > 
> > Note that line #731 is not indented at all.
> 
> Seems like something goes terribly wrong when these lines are
> generated, because $(PM_TO_BLIB) and the line after it seems to be
> wrong (what's that lone "<<" on line 732 supposed to do, anyway?).

It is a feature of nmake utility from MSVC.  This makefile

<makefile>
all:
	@echo "this is <<file.tmp a test"

something
<<
	@cat file.tmp
</makefile>

when used with nmake will give:

<output>
"this is a test"

something
</output>

and file.tmp will be removed after running all rules.  Adding "keep"
without quotes after trailing << will instruct nmake to keep the file
after running all's rules.  Omitting file name after first << will
instruct nmake to choose unique file name in the temporary directory.

They invented it for passing long command lines to other programs that
support reading command lines from response files.

> 
> You will have to dig deeper into how this part is generated, to find
> what the culprit is.  If you cannot figure it out, try asking someone
> who can run this on Unix for what should those lines look like, or
> post here a detailed description of how this fragment is generated and
> from what text.

It is possible that this makefile was generated with perl compiled
with MSVC, not DJGPP.  Then this makefile should be used with MSVC and
nmake and can not be processed with make utility from DJGPP.

There is a perl compiled with DJGPP which does not have this problem
when used with DJGPP.  It can be obtained as v2gnu/perlNNNb.zip in
DJGPP directory on simtel mirror.

-- 
Michael Bukin

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019