Show quoted text> > > You ought to put that stuff in a module called Prima::build.
> > What would anyone benefit from that?
> It'd make debugging easier
> (people trying to build would have an easier time)
I would disagree here. No matter how big Makefile.PL is, there is no clear division
line where which code would go to ::build and which would remain. Since
Prima's Makefile.PL doesn't use MakeMaker & company, all the code is needed.
A typical Makefile.PL is small because it uses MakeMaker, and this does not
make debugging easier.
When there's trouble with building, it's better to consult with makefile.log, - the only
cases when one needs hacking Makefile.PL, are either when new features are to
be added, or when an absolutely different building paradigm is used - compare WIn32 and unix,
for example.
Show quoted text>
> > > Also, you might wanna make use of Win32::GetShortPathName
> >
> > Prima does not use Win32 package. What is the reason
> > to use it as a prerequisite?
>
> often times C:\progra~1 is better than C:\program files
> on win32
This is not the case, I'm afraid. A space character is absolutely valid filesystem symbol,
and might as well appear on every system. Doing that only for Win32 is, with high probability,
a ugly hack. In general though I do agree that it's easier, but lets' consider the following real
life example:
Show quoted text> cl -nologo -O1 -MD -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -DHAVE_DES_FCRYPT
-DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DPERL_MSVCRT_READFIX -nologo -O1 -MD -DNDEBUG
-Iinclude -Iinclude\generic -IC:\Perl\lib\CORE -DHAVE_CONFIG_H=1
-FeC:\DOCUME~1\_\LOCALS~1\Temp\pmts0000.exe -FoC:\DOCUME~1\_\LOCALS~1\Temp\pmts0000.obj
C:\DOCUME~1\_\LOCALS~1\Temp\pmts0000.c /link /LIBPATH:"C:\Program Files\Microsoft Visual
Studio\VC98\mfc\lib" /LIBPATH:"C:\Program Files\Microsoft Visual Studio\VC98\lib"
/LIBPATH:"C:\Perl\lib\CORE" oldnames.lib
pmts0000.c
LINK : fatal error LNK1181: cannot open input file "Files\Microsoft.obj"
Who's stupid here? Makefile.PL or Microsoft's link.exe? A do agree that the situation is bad,
but it can be overridden with explicitly setting environment variables.