I want to make a distribution that packages up dependencies for me.
I think Module::Install is supposed to do this for me.
--------------------------------------------------------------------
Without the details:
I make a little module, tweak the Makefile.PL to use inc:Module::Install
and tell it the dependencies,
And I say "make dist", move the tar.gz file over to my other
(windoze) machine, and untar it,
and have what I expect in the inc dir:
I say perl Makefile.PL, and make install - happy:
But when I try to use it:
C:\tmp\SGlicense-1.02>perl -e "use SGlicense;"
Can't locate Filter/Util/Call.pm in @INC (@INC contains: c:/Perl/lib
c:/Perl/site/lib .) at c:/Perl/site/lib/SGlicense.pm line 34.
Why did "make install" not put Filter::Util::Call in a standard place like
c:/perl/lib for me?
--------------------------------------------------------------------
WITH the details:
===========================================
So I make a little module, tweak the Makefile.PL thusly:
use 5.005;
use inc::Module::Install;
name ('SGlicense');
version ('1.02');
include_deps('Crypt::CapnMidNite', 5.004);
include_deps('Filter::Util::Call', 5.004);
build_requires('Crypt::CapnMidNite');
build_requires('Filter::Util::Call');
check_nmake();
&Makefile->write; <========== I should use &Build->write here instead
maybe?
===========================================
And I say "make dist", move the tar.gz file over to my other
(windoze) machine, and untar it,
and have what I expect in the inc dir:
C:\tmp>tar xvf SGlicense-1.02.tar
SGlicense-1.02/
SGlicense-1.02/SGlicense.pm
SGlicense-1.02/inc/
SGlicense-1.02/inc/Module/
SGlicense-1.02/inc/Module/Install.pm
SGlicense-1.02/inc/Module/Install/
SGlicense-1.02/inc/Module/Install/Fetch.pm
SGlicense-1.02/inc/Module/Install/Makefile.pm
SGlicense-1.02/inc/Module/Install/Include.pm
SGlicense-1.02/inc/Module/Install/Base.pm
SGlicense-1.02/inc/Module/Install/Metadata.pm
SGlicense-1.02/inc/Module/Install/Can.pm
SGlicense-1.02/inc/Module/Install/Win32.pm
SGlicense-1.02/inc/Crypt/
SGlicense-1.02/inc/Crypt/CapnMidNite.pm
SGlicense-1.02/inc/Crypt/License.pm
SGlicense-1.02/inc/Filter/
SGlicense-1.02/inc/Filter/Util/
SGlicense-1.02/inc/Filter/Util/Call.pm
SGlicense-1.02/inc/warnings.pm
SGlicense-1.02/Changes
SGlicense-1.02/MANIFEST
SGlicense-1.02/t/
SGlicense-1.02/t/1.t
SGlicense-1.02/README
SGlicense-1.02/Makefile.PL
===========================================
I say perl Makefile.PL, and make install - happy:
C:\tmp\SGlicense-1.02>perl Makefile.PL
Writing Makefile for SGlicense
C:\tmp\SGlicense-1.02>make install
'make' is not recognized as an internal or external command,
operable program or batch file.
C:\tmp\SGlicense-1.02>nmake install
Microsoft (R) Program Maintenance Utility Version 1.50
Copyright (c) Microsoft Corp 1988-94. All rights reserved.
Skipping C:\Perl\site\lib\SGlicense.pm (unchanged)
Writing C:\Perl\site\lib\auto\SGlicense\.packlist
Appending installation info to C:\Perl\lib/perllocal.pod
===========================================
No problems so far.
But when I try to use it:
C:\tmp\SGlicense-1.02>perl -e "use SGlicense;"
Can't locate Filter/Util/Call.pm in @INC (@INC contains: c:/Perl/lib
c:/Perl/site/lib .) at c:/Perl/site/lib/SGlicense.pm line 34.
BEGIN failed--compilation aborted at c:/Perl/site/lib/SGlicense.pm line 34.
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.
==================================================
I thought "make install" would have installed Filter::Util::Call for me.
Where have I gone wrong here?
-----------------------------
Mr. Lindsay Morris
Lead Architect
www.servergraph.com
512-482-6138 ext 105