ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/App-Staticperl/staticperl.pod
(Generate patch)

Comparing App-Staticperl/staticperl.pod (file contents):
Revision 1.9 by root, Tue Dec 7 09:08:06 2010 UTC vs.
Revision 1.11 by root, Tue Dec 7 10:40:39 2010 UTC

383 # specification file 383 # specification file
384 add file1 myfiles/file1 384 add file1 myfiles/file1
385 add file2 myfiles/file2 385 add file2 myfiles/file2
386 add file3 myfiles/file3 386 add file3 myfiles/file3
387 387
388=item --binadd "file" | --add "file alias"
389
390Just like C<--add>, except that it treats the file as binary and adds it
391without any processing.
392
393You should probably add a C</> prefix to avoid clashing with embedded
394perl files (whose paths do not start with C</>), and/or use a special
395directory, such as C</res/name>.
396
397You can later get a copy of these files by calling C<staticperl::find
398"alias">.
399
388=item --static 400=item --static
389 401
390When C<--perl> is also given, link statically instead of dynamically. The 402When C<--perl> is also given, link statically instead of dynamically. The
391default is to link the new perl interpreter fully dynamic (that means all 403default is to link the new perl interpreter fully dynamic (that means all
392perl modules are linked statically, but all external libraries are still 404perl modules are linked statically, but all external libraries are still
429=item C<EMAIL> 441=item C<EMAIL>
430 442
431The e-mail address of the person who built this binary. Has no good 443The e-mail address of the person who built this binary. Has no good
432default, so should be specified by you. 444default, so should be specified by you.
433 445
446=item C<CPAN>
447
448The URL of the CPAN mirror to use (e.g. L<http://mirror.netcologne.de/cpan/>).
449
450=item C<EXTRA_MODULES>
451
452Additional modules installed during F<staticperl install>. Here you can
453set which modules you want have to installed from CPAN.
454
455Example: I really really need EV, AnyEvent, Coro and AnyEvent::AIO.
456
457 EXTRA_MODULES="EV AnyEvent Coro AnyEvent::AIO"
458
459Note that you can also use a C<postinstall> hook to achieve this, and
460more.
461
434=back 462=back
435 463
436=head4 Variables you might I<want> to override 464=head4 Variables you might I<want> to override
437 465
438=over 4 466=over 4
439 467
468=item C<STATICPERL>
469
470The directory where staticperl stores all its files
471(default: F<~/.staticperl>).
472
473=item C<PERL_MM_USE_DEFAULT>, C<EV_EXTRA_DEFS>, ...
474
475Usually set to C<1> to make modules "less inquisitive" during their
476installation, you can set any environment variable you want - some modules
477(such as L<Coro> or L<EV>) use environment variables for further tweaking.
478
440=item C<PERLVER> 479=item C<PERL_VERSION>
441 480
442The perl version to install - default is currently C<5.12.2>, but C<5.8.9> 481The perl version to install - default is currently C<5.12.2>, but C<5.8.9>
443is also a good choice (5.8.9 is much smaller than 5.12.2, while 5.10.1 is 482is also a good choice (5.8.9 is much smaller than 5.12.2, while 5.10.1 is
444about as big as 5.12.2). 483about as big as 5.12.2).
445 484
446=item C<CPAN>
447
448The URL of the CPAN mirror to use (e.g. L<http://mirror.netcologne.de/cpan/>).
449
450=item C<EXTRA_MODULES>
451
452Additional modules installed during F<staticperl install>. Here you can
453set which modules you want have to installed from CPAN.
454
455Example: I really really need EV, AnyEvent, Coro and IO::AIO.
456
457 EXTRA_MODULES="EV AnyEvent Coro IO::AIO"
458
459Note that you can also use a C<postinstall> hook to achieve this, and
460more.
461
462=item C<PERL_MM_USE_DEFAULT>, C<EV_EXTRA_DEFS>, ...
463
464Usually set to C<1> to make modules "less inquisitive" during their
465installation, you can set any environment variable you want - some modules
466(such as L<Coro> or L<EV>) use environment variables for further tweaking.
467
468=item C<STATICPERL>
469
470The directory where staticperl stores all its files
471(default: F<~/.staticperl>).
472
473=item C<PREFIX> 485=item C<PERL_PREFIX>
474 486
475The prefix where perl gets installed (default: F<$STATICPERL/perl>), 487The prefix where perl gets installed (default: F<$STATICPERL/perl>),
476i.e. where the F<bin> and F<lib> subdirectories will end up. 488i.e. where the F<bin> and F<lib> subdirectories will end up.
489
490=item C<PERL_CONFIGURE>
491
492Additional Configure options - these are simply passed to the perl
493Configure script. For example, if you wanted to enable dynamic loading,
494you could pass C<-Dusedl>. To enable ithreads (Why would you want that
495insanity? Don't! Use L<forks> instead!) you would pass C<-Duseithreads>
496and so on.
497
498More commonly, you would either activate 64 bit integer support
499(C<-Duse64bitint>), or disable large files support (-Uuselargefiles), to
500reduce filesize further.
477 501
478=item C<PERL_CPPFLAGS>, C<PERL_OPTIMIZE>, C<PERL_LDFLAGS>, C<PERL_LIBS> 502=item C<PERL_CPPFLAGS>, C<PERL_OPTIMIZE>, C<PERL_LDFLAGS>, C<PERL_LIBS>
479 503
480These flags are passed to perl's F<Configure> script, and are generally 504These flags are passed to perl's F<Configure> script, and are generally
481optimised for small size (at the cost of performance). Since they also 505optimised for small size (at the cost of performance). Since they also
654 678
655=back 679=back
656 680
657=head1 FULLY STATIC BINARIES - BUILDROOT 681=head1 FULLY STATIC BINARIES - BUILDROOT
658 682
659To make truly static (linux-) libraries, you might want to have a look at 683To make truly static (Linux-) libraries, you might want to have a look at
660buildroot (L<http://buildroot.uclibc.org/>). 684buildroot (L<http://buildroot.uclibc.org/>).
661 685
662Buildroot is primarily meant to set up a cross-compile environment (which 686Buildroot is primarily meant to set up a cross-compile environment (which
663is not so useful as perl doesn't quite like cross compiles), but it can also compile 687is not so useful as perl doesn't quite like cross compiles), but it can also compile
664a chroot environment where you can use F<staticperl>. 688a chroot environment where you can use F<staticperl>.
678uClibc newer than 0.9.31 (at the time of this writing, I used the 20101201 702uClibc newer than 0.9.31 (at the time of this writing, I used the 20101201
679snapshot) and enable NPTL, otherwise Coro needs to be configured with the 703snapshot) and enable NPTL, otherwise Coro needs to be configured with the
680ultra-slow pthreads backend to work around linuxthreads bugs (it also uses 704ultra-slow pthreads backend to work around linuxthreads bugs (it also uses
681twice the address space needed for stacks). 705twice the address space needed for stacks).
682 706
707If you use C<linuxthreads.old>, then you should also be aware that
708uClibc shares C<errno> between all threads when statically linking. See
709L<http://lists.uclibc.org/pipermail/uclibc/2010-June/044157.html> for a
710workaround (And L<https://bugs.uclibc.org/2089> for discussion).
711
683C<ccache> support is also recommended, especially if you want to 712C<ccache> support is also recommended, especially if you want
684play around with buildroot options. Enabling the C<miniperl> package 713to play around with buildroot options. Enabling the C<miniperl>
685will probably enable all options required for a successful perl 714package will probably enable all options required for a successful
686build. F<staticperl> itself additionally needs either C<wget> or C<curl>. 715perl build. F<staticperl> itself additionally needs either C<wget>
716(recommended, for CPAN) or C<curl>.
687 717
688As for shells, busybox should provide all that is needed, but the default 718As for shells, busybox should provide all that is needed, but the default
689busybox configuration doesn't include F<comm> which is needed by perl - 719busybox configuration doesn't include F<comm> which is needed by perl -
690either make a custom busybox config, or compile coreutils. 720either make a custom busybox config, or compile coreutils.
691 721

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines