=item gdbm in /usr/you
Suppose you have gdbm installed in some place other than /usr/local/,
-but you still want Configure to find it. To be specific, assume you
+but you still want Configure to find it. To be specific, assume you
have /usr/you/include/gdbm.h and /usr/you/lib/libgdbm.a. You
still have to add -I/usr/you/include to cc flags, but you have to take
an extra step to help Configure find libgdbm.a. Specifically, when
process, you can answer a question with &-d and Configure
will use the defaults from then on.
-By default, Configure will use the following directories for
-library files for 5.005 (archname is a string like sun4-sunos, determined
-by Configure).
+By default, Configure will use the following directories for library files
+for 5.005 (archname is a string like sun4-sunos, determined by Configure).
- /usr/local/lib/perl5/5.005/archname
- /usr/local/lib/perl5/5.005/share
- /usr/local/lib/perl5/site_perl/5.005/archname
- /usr/local/lib/perl5/site_perl/5.005/share
+ Configure variable Default value
+ $archlib /usr/local/lib/perl5/5.005/archname
+ $privlib /usr/local/lib/perl5/5.005
+ $sitearch /usr/local/lib/perl5/site_perl/5.005/archname
+ $sitelib /usr/local/lib/perl5/site_perl/5.005
-and the following directories for manual pages:
+Some users prefer to append a "/share" to $privlib and $sitelib
+to emphasize that those directories can be shared among different
+architectures.
- /usr/local/man/man1
- /usr/local/lib/perl5/man/man3
+By default, Configure will use the following directories for manual pages:
+
+ Configure variable Default value
+ $man1dir /usr/local/man/man1
+ $man3dir /usr/local/lib/perl5/man/man3
(Actually, Configure recognizes the SVR3-style
/usr/local/man/l_man/man1 directories, if present, and uses those
directory structure is simplified. For example, if you Configure with
-Dprefix=/opt/perl, then the defaults for 5.005 are
- /opt/perl/lib/5.005/archname
- /opt/perl/lib/5.005/share
- /opt/perl/lib/site_perl/5.005/archname
- /opt/perl/lib/site_perl/5.005/share
+ Configure variable Default value
+ $archlib /opt/perl/lib/5.005/archname
+ $privlib /opt/perl/lib/5.005
+ $sitearch /opt/perl/lib/site_perl/5.005/archname
+ $sitelib /opt/perl/lib/site_perl/5.005
- /opt/perl/man/man1
- /opt/perl/man/man3
+ $man1dir /opt/perl/man/man1
+ $man3dir /opt/perl/man/man3
The perl executable will search the libraries in the order given
above.
-The directories under site_perl are empty, but are intended to be used
+The directories under site_perl are empty, but are intended to be used
for installing local or site-wide extensions. Perl will automatically
look in these directories.
For example, you can replace the rand() and srand() functions in the
perl source by any other random number generator by a trick such as the
-following:
+following (this should all be on one line):
+
+ sh Configure -Dccflags='-Dmy_rand=random -Dmy_srand=srandom' \
+ -Drandbits=31
- sh Configure -Dccflags='-Drand=random -Dsrand=srandom'
+or you can use the drand48 family of functions with
-or by adding -Drand=random and -Dsrand=srandom to your ccflags
-at the appropriate Configure prompt. (Note: Although this worked for
-me, it might not work for you if your system's header files give
-different prototypes for rand() and random() or srand() and srandom().)
+ sh Configure -Dccflags='-Dmy_rand=lrand48 -Dmy_srand=srand48' \
+ -Drandbits=31
+
+or by adding the -D flags to your ccflags at the appropriate Configure
+prompt. (Read pp.c to see how this works.)
You should also run Configure interactively to verify that a hint file
doesn't inadvertently override your ccflags setting. (Hints files
If you can successfully build miniperl, but the process crashes
during the building of extensions, you should run
- make minitest
+ make minitest
to test your version of miniperl.
with FreeBSD 2.1) had broken handling of recno databases with modified
bval settings. Upgrade your DB library or OS.
+=item Bad arg length for semctl, is XX, should be ZZZ
+
+If you get this error message from the lib/ipc_sysv test, your System
+V IPC may be broken. The XX typically is 20, and that is what ZZZ
+also should be. Consider upgrading your OS, or reconfiguring your OS
+to include the System V semaphores.
+
+=item lib/ipc_sysv........semget: No space left on device
+
+Either your account or the whole system has run out of semaphores. Or
+both. Either list the semaphores with "ipcs" and remove the unneeded
+ones (which ones these are depends on your system and applications)
+with "ipcrm -s SEMAPHORE_ID_HERE" or configure more semaphores to your
+system.
+
=item Miscellaneous
Some additional things that have been reported for either perl4 or perl5:
UTS may need one or more of -DCRIPPLED_CC, -K or -g, and undef LSTAT.
+FreeBSD can fail the lib/ipc_sysv.t test if SysV IPC has not been
+configured to the kernel. Perl tries to detect this, though, and
+you will get a message telling what to do.
+
If you get syntax errors on '(', try -DCRIPPLED_CC.
Machines with half-implemented dbm routines will need to #undef I_ODBM
Installperl will also create the library directories $siteperl and
$sitearch listed in config.sh. Usually, these are something like
- /usr/local/lib/perl5/site_perl/5.005/share
+ /usr/local/lib/perl5/site_perl/5.005
/usr/local/lib/perl5/site_perl/5.005/archname
where archname is something like sun4-sunos. These directories
Configure variable Default value
$archlib /usr/local/lib/perl5/5.005/archname
- $privlib /usr/local/lib/perl5/5.005/share
+ $privlib /usr/local/lib/perl5/5.005
$sitearch /usr/local/lib/perl5/site_perl/5.005/archname
- $sitelib /usr/local/lib/perl5/site_perl/5.005/share
+ $sitelib /usr/local/lib/perl5/site_perl/5.005
while the directories searched by version 5.005_01 will be
$archlib /usr/local/lib/perl5/5.00501/archname
- $privlib /usr/local/lib/perl5/5.00501/share
+ $privlib /usr/local/lib/perl5/5.00501
$sitearch /usr/local/lib/perl5/site_perl/5.005/archname
- $sitelib /usr/local/lib/perl5/site_perl/5.005/share
+ $sitelib /usr/local/lib/perl5/site_perl/5.005
When you install an add-on extension, it gets installed into $sitelib (or
$sitearch if it is architecture-specific). This directory deliberately
=head1 LAST MODIFIED
-$Id: INSTALL,v 1.39 1998/07/02 15:41:45 doughera Released $
+$Id: INSTALL,v 1.42 1998/07/15 18:04:44 doughera Released $