Re: [Module-build-general] Question about Defaults ...
Status: Beta
Brought to you by:
kwilliams
|
From: Ken W. <ke...@ma...> - 2003-03-14 22:21:23
|
On Friday, March 14, 2003, at 12:45 PM, Dave Rolsky wrote: > On Fri, 14 Mar 2003, Norbert Gruener wrote: > >> My question is, what is the reason for this requirement ? And is >> there a possibility to switch off this behavior ? Of course, I know >> how to accomplish your requirement :-). But this would mean that I >> have to fiddle about the directory structure after running the initial >> h2xs. > > I think Ken did this cause it's easy ;) Yeah, that was a big part of it. I've had to convert several of my own projects to this layout too, so I know it's a (little) hassle. I've had people tell me that it was a good decision though, so I'd like to hear more arguments on either side. I think that using just lib/ makes things easier not just for me, but for people who are trying to figure out how modules put themselves together during the build process. But I'm sympathetic to the migration issues too. > Seriously, I'm sure he'd welcome support for alternate layouts. By > default, I think it should look in lib/ and then the current directory > for > .pm and .pod files. With MakeMaker, there's also a way to map a > different > layout to the installation layout, using the PM option. I'm not sure > this > is really worthwhile, though. There are other issues to consider too. Right now MakeMaker looks for subdirectories containing Makefile.PLs and builds stuff recursively in these directories. This is actually the only way you can have more than one .xs file in a distribution using MakeMaker. M::B doesn't do recursive subdirectories at this point either. It's not usually a problem because M::B will compile .xs files inside lib/ , which MakeMaker won't do. If we add the ability to have sub-builds in subdirectories, I'm probably going to insist that these subdirectories are explicitly listed in the Build.PL, rather than auto-detected. I've never cared for the auto-detect stuff in MakeMaker, and it was a big reason why I wanted Every Installable Thing In Lib/ (sic). -Ken |