On Jul 7, 2005, at 12:59 AM, Eric Wilhelm wrote:
just want to have one makefile for each module (or one for
the Inline one and another for the pure stuff.)
Yes, that looks like the answer. Now to figure out how they should
be packaged up...
It's just like a
bundle.
Well, in order to make a bundle of this, I'd have to make three distros:
Search::Kinosearch
Search::Kinosearch::KSearch::ResultSet
Bundle::Kinosearch
http://www.cpan.org/misc/cpan-faq.html#How_make_bundle
Indeed, each of those would need a full-on set of distro files. That
seems like overkill.
The Makefile.PL is the toplevel one. I'm sure there's a neater way to
do it, but that's all I've got for now.
MakeMaker, when running a Makefile.PL, searches all directories in
the distro recursively for other files named Makefile.PL. But it
seems weird for me to hide another Makefile.PL somewhere in my lib/
directory. Stuff like Makefile.OLD doesn't clutters up those dirs
fast, and _anything_ in the PMLIBDIRS directories gets copied to the
installation destination. I have enough trouble trying to keep
vim's .swp files out of there!
So if it isn't going to go in the lib directory, where? The obvious
place would be the top-level directory. MakeMaker can apparently run
other PL files
that you list under the PL_FILES parameter. If Makefile.PL and
ResultSet.PL can live together, I'm a happy camper...
Rats... not working ("make: don't know how to make ResultSet.inl.
Stop").... and still not working if I rename it to Makefile.PL.
The contents of the Makefile.PL is below.
I think my next troubleshooting step is to get a separate distro of
ResultSet.pm on its own to work. Then I can see if it's possible to
combine them without littering the lib directory or resorting to the
bundle mechanism and maintaining multiple distributions.
Marvin Humphrey
Rectangular Research
http://www.rectangular.com/
#################################################################
use 5.008;
use Inline::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
WriteInlineMakefile(
NAME => 'Search::Kinosearch::KSearch::ResultSet',
VERSION => '0.03',
PM => {
'lib/Search/Kinosearch/KSearch/ResultSet.pm' =>
'$(INST_LIBDIR)/Search/Kinosearch/KSearch/ResultSet.pm',
},
PREREQ_PM => {
'Inline::C' => 0.44,
},
);