Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.85k stars 527 forks source link

MM_Win32, pm_to_blib section causing "Error -- Expecting macro or rule defn," then "Error -- rem #2116

Closed p5pRT closed 20 years ago

p5pRT commented 23 years ago

Migrated from rt.perl.org#3407 (status was 'resolved')

Searchable as RT3407$

p5pRT commented 23 years ago

From an400@freenet.carleton.ca

To​: perlbug@​perl.com Subject​: MM_Win32\, pm_to_blib section causing "Error -- Expecting macro or rule defn\," then "Error -- rem​: No such file or directory" Reply-To​: an400@​ncf.ca

This is a bug report for perl from an400@​ncf.ca\, generated with the help of perlbug 1.28 running under perl v5.6.0.

This error is occurring in all my generated makefiles.

Commands executed​:

1) perl makefile.pl verb verb cc=gcc lib=d​:/server/lib

2) dmake -f makefile -v output ends at : DMAKE.EXE​: makefile​: line 650​: Error -- Expecting macro or rule defn\, found neither DMAKE.EXE​: Closing [makefile]

2a) line 650 is $(PM_TO_BLIB) in :

# --- MakeMaker pm_to_blib section​:

pm_to_blib​: $(TO_INST_PM)   @​$(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" \   "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -MExtUtils​::Install \   -e "pm_to_blib(qw[ \<\<pmfiles.dat ]\,'$(INST_LIB)\auto')"  
$(PM_TO_BLIB) \<\<   @​$(TOUCH) $@​

2b) but the similar section in ext/B/makefile is

# --- MakeMaker pm_to_blib section​:

pm_to_blib​: $(TO_INST_PM)   @​$(PERL) "-I$(INST_ARCHLIB)" "-I$(INST_LIB)" \   "-I$(PERL_ARCHLIB)" "-I$(PERL_LIB)" -MExtUtils​::Install \   -e "pm_to_blib(qw[ $(mktmp\,pmfiles.dat $(PM_TO_BLIB​:s\,\\,\\\,)\n) ]\,'$(INST_LIB)\auto')"   @​$(TOUCH) $@​

3) use 2b) pm_to_blib section and repeat dmake output stops at 86 lines with​:

cp diffnew.pl blib\lib\Algorithm\diffnew.pl cp diff.pl blib\lib\Algorithm\diff.pl cp lib/Algorithm/Diff.pm blib\lib\Algorithm\Diff.pm cp cdiff.pl blib\lib\Algorithm\cdiff.pl DMAKE.EXE​: Left temp file [pmfiles.dat] DMAKE.EXE​: Updating dir cache entry for [C​:\WINDOWS\TEMP\Algorithm-Diff-1.06\pm_to_blib]\, new time is 961531318 DMAKE.EXE​: \<\<\<\< Set [pm_to_blib] time stamp to 961531318 DMAKE.EXE​: Infering prerequisite(s) and recipe for [subdirs] DMAKE.EXE​: Time stamp of [subdirs] is 0 DMAKE.EXE​: >>>> Making [subdirs​::{1}] DMAKE.EXE​: Updating [subdirs]\, (1 > 0) DMAKE.EXE​: Error -- rem​: No such file or directory

but does copy the .pm and .pl files to blib structure​: C​:\WINDOWS\TEMP\Algorithm-Diff-1.06 cdiff.pl Changes diff.pl diffnew.pl Makefile Makefile.PL MANIFEST pm_to_blib pmfiles.dat README test.pl
+---blib \---lib +---Algorithm .exists cdiff.pl diff.pl Diff.pm diffnew.pl
\---auto

\---lib   \---Algorithm   Diff.pm

4) The makefile shows "rem" in configuration at

RANLIB = rem NOOP = rem # NOOP => q[rem] # RANLIB => q[rem]

Other Specs DMAKE.EXE - Copyright (c) 1990\,...\,1997 by WTI Corp.\, Version 4.10\, PL 1 Default Configuration​:   MAXLINELENGTH := 20460   MAXPROCESSLIMIT := 16   .IMPORT .IGNORE​: ROOTDIR   .MAKEFILES : makefile.mk makefile   .SOURCE : .NULL   MAKESTARTUP := $(MAKECMD​:d)startup/startup.mk

What is/are the needed values?


Flags​:   category=install   severity=medium


Site configuration information for perl v5.6.0​:

Summary of my perl5 (revision 5 version 6 subversion 0) configuration​:   Platform​:   osname=MSWin32\, osvers=4.0\, archname=MSWin32-x86-multi-thread   uname=''   config_args='undef'   hint=recommended\, useposix=true\, d_sigaction=undef   usethreads=undef use5005threads=undef useithreads=define usemultiplicity=define   useperlio=undef d_sfio=undef uselargefiles=undef   use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef   Compiler​:   cc='cl'\, optimize='-O1 -MD -DNDEBUG'\, gccversion=   cppflags='-DWIN32'   ccflags ='-O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX'   stdchar='char'\, d_stdstdio=define\, usevfork=false   intsize=4\, longsize=4\, ptrsize=4\, doublesize=8   d_longlong=undef\, longlongsize=8\, d_longdbl=define\, longdblsize=10   ivtype='long'\, ivsize=4\, nvtype='double'\, nvsize=8\, Off_t='off_t'\, lseeksize=4   alignbytes=8\, usemymalloc=n\, prototype=define   Linker and Libraries​:   ld='link'\, ldflags ='-nologo -nodefaultlib -release -libpath​:"D​:\perl56\lib\CORE" -machine​:x86'   libpth="D​:\perl56\lib\CORE"   libs= oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib msvcrt.lib   libc=msvcrt.lib\, so=dll\, useshrplib=yes\, libperl=perl56.lib   Dynamic Linking​:   dlsrc=dl_win32.xs\, dlext=dll\, d_dlsymun=undef\, ccdlflags=' '   cccdlflags=' '\, lddlflags='-dll -nologo -nodefaultlib -release -libpath​:"D​:\perl56\lib\CORE" -machine​:x86'

Locally applied patches​:   ACTIVEPERL_LOCAL_PATCHES_ENTRY


@​INC for perl v5.6.0​:   d​:\server\lib   D​:/perl56/lib   D​:/perl56/site/lib   .


Environment for perl v5.6.0​:   HOME=d​:\server\cgi-bin   LANG (unset)   LANGUAGE (unset)   LD_LIBRARY_PATH (unset)   LOGDIR (unset)

PATH=c​:\windows;c​:\windows\command;g​:\;c​:\;c​:\batch;c​:\batxtra;c​:\glide;d​:\p erl56\bin;C​:\windows\system;D​:\gcc52\bin   PERL_BADLANG (unset)   SHELL (unset) /Steve Taylor an400@​ncf.ca http​://www.ncf.ca/~an400 =~ / http​://steptayl.vr9.com/ ICQ 16427228 'staler!'

p5pRT commented 23 years ago

From [Unknown Contact. See original ticket]

The error occurred because config.pm still contained

make='nmake'

when I should have (dug deeper) to change it to

make='dmake'

since I'm using dmake. The only way to avoid is to give users a re-configure option or a warning to revise config.pm (unless MyConfig.pm can do it) when they change certain settings.

Thanks /Steve Taylor an400@​ncf.ca http​://www.ncf.ca/~an400 =~ / http​://steptayl.vr9.com/ ICQ 16427228 'staler!'

p5pRT commented 20 years ago

From @schwern

Only an nmake vs dmake confusion\, not a bug.

p5pRT commented 20 years ago

@schwern - Status changed from 'open' to 'resolved'