--- App-Staticperl/staticperl.pod 2010/12/10 15:25:24 1.19
+++ App-Staticperl/staticperl.pod 2010/12/10 20:29:17 1.20
@@ -42,6 +42,10 @@
that contains perl and 100 modules such as POSIX, AnyEvent, EV, IO::AIO,
Coro and so on. Or any other choice of modules.
+To see how this turns out, you can try out smallperl and bigperl, two
+pre-built static and compressed perl binaries with many and even more
+modules: just follow the links at L.
+
The created files do not need write access to the file system (like PAR
does). In fact, since this script is in many ways similar to PAR::Packer,
here are the differences:
@@ -155,6 +159,10 @@
=over 4
+=item F
+
+Prints some info about the version of the F script you are using.
+
=item F
Runs only the download and unpack phase, unless this has already happened.
@@ -313,8 +321,9 @@
selected or found in phase 1.
=item 3. find all modules (== F<.pm> files), gather their static archives
-(F<.a>) and AutoLoader splitfiles (F<.ix> and F<.al> files) and find any
-extra libraries they need for linking (F).
+(F<.a>) and AutoLoader splitfiles (F<.ix> and F<.al> files), find any
+extra libraries they need for linking (F) and optionally
+evaluate any F<.packlist> files.
This step is required to link against XS extensions and also adds files
required for L to do it's job.
@@ -455,6 +464,23 @@
the perl interpreter executes scripts given on the command line (or via
C<-e>). This works even in an embedded interpreter.
+=item --usepacklist
+
+Read F<.packlist> files for each distribution that happens to match a
+module name you specified. Sounds weird, and it is, so expect semantics to
+change somehow in the future.
+
+The idea is that most CPAN distributions have a F<.pm> file that matches
+the name of the distribution (which is rather reasonable after all).
+
+If this switch is enabled, then if any of the F<.pm> files that have been
+selected match an install distribution, then all F<.pm>, F<.pl>, F<.al>
+and F<.ix> files installed by this distribution are also included.
+
+For example, using this switch, when the L module is specified, then
+all L submodules that have been installed via the CPAN distribution
+are included as well, so you don't have to manually specify them.
+
=item --incglob pattern
This goes through all library directories and tries to match any F<.pm>
@@ -591,16 +617,22 @@
=head2 F CONFIGURATION AND HOOKS
-During (each) startup, F tries to source the following shell
-files in order:
+During (each) startup, F tries to source some shell files to
+allow you to fine-tune/override configuration settings.
+
+In them you can override shell variables, or define shell functions
+("hooks") to be called at specific phases during installation. For
+example, you could define a C hook to install additional
+modules from CPAN each time you start from scratch.
+
+If the env variable C<$STATICPERLRC> is set, then F will try
+to source the file named with it only. Otherwise, it tries the following
+shell files in order:
/etc/staticperlrc
~/.staticperlrc
$STATICPERL/rc
-They can be used to override shell variables, or define functions to be
-called at specific phases.
-
Note that the last file is erased during F, so
generally should not be used.
@@ -955,6 +987,9 @@
functions), you also need to include C<"AnyEvent/Util/idna.pl"> and
C<"AnyEvent/Util/uts46data.pl">.
+Or you can use C<--usepacklist> and specify C<-MAnyEvent> to include
+everything.
+
=item Carp
Carp had (in older versions of perl) a dependency on L. As of
@@ -968,13 +1003,14 @@
=item Term::ReadLine::Perl
-Also needs L.
+Also needs L, or C<--usepacklist>.
=item URI
URI implements schemes as separate modules - the generic URL scheme is
implemented in L, HTTP is implemented in L. If
-you need to use any of these schemes, you should include these manually.
+you need to use any of these schemes, you should include these manually,
+or use C<--usepacklist>.
=back