--- App-Staticperl/staticperl.pod 2010/12/07 09:08:06 1.9 +++ App-Staticperl/staticperl.pod 2010/12/07 13:23:07 1.12 @@ -186,9 +186,12 @@ =item F -Runs F in the perl source directory (and potentially -cleans up other intermediate files). This can be used to clean up -intermediate files without removing the installed perl interpreter. +Deletes the perl source directory (and potentially cleans up other +intermediate files). This can be used to clean up files only needed for +building perl, without removing the installed perl interpreter, or to +force a re-build from scratch. + +At the moment, it doesn't delete downloaded tarballs. =item F @@ -385,6 +388,18 @@ add file2 myfiles/file2 add file3 myfiles/file3 +=item --binadd "file" | --add "file alias" + +Just like C<--add>, except that it treats the file as binary and adds it +without any processing. + +You should probably add a C prefix to avoid clashing with embedded +perl files (whose paths do not start with C), and/or use a special +directory, such as C. + +You can later get a copy of these files by calling C. + =item --static When C<--perl> is also given, link statically instead of dynamically. The @@ -431,18 +446,6 @@ The e-mail address of the person who built this binary. Has no good default, so should be specified by you. -=back - -=head4 Variables you might I to override - -=over 4 - -=item C - -The perl version to install - default is currently C<5.12.2>, but C<5.8.9> -is also a good choice (5.8.9 is much smaller than 5.12.2, while 5.10.1 is -about as big as 5.12.2). - =item C The URL of the CPAN mirror to use (e.g. L). @@ -452,29 +455,53 @@ Additional modules installed during F. Here you can set which modules you want have to installed from CPAN. -Example: I really really need EV, AnyEvent, Coro and IO::AIO. +Example: I really really need EV, AnyEvent, Coro and AnyEvent::AIO. - EXTRA_MODULES="EV AnyEvent Coro IO::AIO" + EXTRA_MODULES="EV AnyEvent Coro AnyEvent::AIO" Note that you can also use a C hook to achieve this, and more. +=back + +=head4 Variables you might I to override + +=over 4 + +=item C + +The directory where staticperl stores all its files +(default: F<~/.staticperl>). + =item C, C, ... Usually set to C<1> to make modules "less inquisitive" during their installation, you can set any environment variable you want - some modules (such as L or L) use environment variables for further tweaking. -=item C +=item C -The directory where staticperl stores all its files -(default: F<~/.staticperl>). +The perl version to install - default is currently C<5.12.2>, but C<5.8.9> +is also a good choice (5.8.9 is much smaller than 5.12.2, while 5.10.1 is +about as big as 5.12.2). -=item C +=item C The prefix where perl gets installed (default: F<$STATICPERL/perl>), i.e. where the F and F subdirectories will end up. +=item C + +Additional Configure options - these are simply passed to the perl +Configure script. For example, if you wanted to enable dynamic loading, +you could pass C<-Dusedl>. To enable ithreads (Why would you want that +insanity? Don't! Use L instead!) you would pass C<-Duseithreads> +and so on. + +More commonly, you would either activate 64 bit integer support +(C<-Duse64bitint>), or disable large files support (-Uuselargefiles), to +reduce filesize further. + =item C, C, C, C These flags are passed to perl's F script, and are generally @@ -520,13 +547,21 @@ =over 4 +=item preconfigure + +Called just before running F<./Configur> in the perl source +directory. Current working directory is the perl source directory. + +This can be used to set any C variables, which might be costly +to compute. + =item postconfigure Called after configuring, but before building perl. Current working directory is the perl source directory. -Could be used to tailor/patch config.sh (followed by F<./Configure -S>) or -do any other modifications. +Could be used to tailor/patch config.sh (followed by F) +or do any other modifications. =item postbuild @@ -656,7 +691,7 @@ =head1 FULLY STATIC BINARIES - BUILDROOT -To make truly static (linux-) libraries, you might want to have a look at +To make truly static (Linux-) libraries, you might want to have a look at buildroot (L). Buildroot is primarily meant to set up a cross-compile environment (which @@ -680,10 +715,16 @@ ultra-slow pthreads backend to work around linuxthreads bugs (it also uses twice the address space needed for stacks). -C support is also recommended, especially if you want to -play around with buildroot options. Enabling the C package -will probably enable all options required for a successful perl -build. F itself additionally needs either C or C. +If you use C, then you should also be aware that +uClibc shares C between all threads when statically linking. See +L for a +workaround (And L for discussion). + +C support is also recommended, especially if you want +to play around with buildroot options. Enabling the C +package will probably enable all options required for a successful +perl build. F itself additionally needs either C +(recommended, for CPAN) or C. As for shells, busybox should provide all that is needed, but the default busybox configuration doesn't include F which is needed by perl -