summaryrefslogtreecommitdiffstats
path: root/contrib/perl5/hints/README.hints
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/perl5/hints/README.hints')
-rw-r--r--contrib/perl5/hints/README.hints259
1 files changed, 0 insertions, 259 deletions
diff --git a/contrib/perl5/hints/README.hints b/contrib/perl5/hints/README.hints
deleted file mode 100644
index 0666771..0000000
--- a/contrib/perl5/hints/README.hints
+++ /dev/null
@@ -1,259 +0,0 @@
-=head1 NAME
-
-README.hints
-
-=head1 DESCRIPTION
-
-These files are used by Configure to set things which Configure either
-can't or doesn't guess properly. Most of these hint files have been
-tested with at least some version of perl5, but some are still left
-over from perl4.
-
-Please send any problems or suggested changes to perlbug@perl.org.
-
-=head1 Hint file naming convention.
-
-Each hint file name should have only
-one '.'. (This is for portability to non-unix file systems.) Names
-should also fit in <= 14 characters, for portability to older SVR3
-systems. File names are of the form $osname_$osvers.sh, with all '.'
-changed to '_', and all characters (such as '/') that don't belong in
-Unix filenames omitted.
-
-For example, consider Sun OS 4.1.3. Configure determines $osname=sunos
-(all names are converted to lower case) and $osvers=4.1.3. Configure
-will search for an appropriate hint file in the following order:
-
- sunos_4_1_3.sh
- sunos_4_1.sh
- sunos_4.sh
- sunos.sh
-
-If you need to create a hint file, please try to use as general a name
-as possible and include minor version differences inside case or test
-statements. For example, for IRIX 6.X, we have the following hints
-files:
-
- irix_6_0.sh
- irix_6_1.sh
- irix_6.sh
-
-That is, 6.0 and 6.1 have their own special hints, but 6.2, 6.3, and
-up are all handled by the same irix_6.sh. That way, we don't have to
-make a new hint file every time the IRIX O/S is upgraded.
-
-If you need to test for specific minor version differences in your
-hints file, be sure to include a default choice. (See aix.sh for one
-example.) That way, if you write a hint file for foonix 3.2, it might
-still work without any changes when foonix 3.3 is released.
-
-Please also comment carefully on why the different hints are needed.
-That way, a future version of Configure may be able to automatically
-detect what is needed.
-
-A glossary of config.sh variables is in the file Porting/Glossary.
-
-=head1 Setting variables
-
-=head2 Optimizer
-
-If you want to set a variable, try to allow for Configure command-line
-overrides. For example, suppose you think the default optimizer
-setting to be -O2 for a particular platform. You should allow for
-command line overrides with something like
-
- case "$optimize" in
- '') optimize='-O2' ;;
- esac
-
-or, if your system has a decent test(1) command,
-
- test -z "$optimize" && optimize='-O2'
-
-This allows the user to select a different optimization level, e.g.
--O6 or -g.
-
-=head2 Compiler and Linker flags
-
-If you want to set $ccflags or $ldflags, you should append to the existing
-value to allow Configure command-line settings, e.g. use
-
- ccflags="$ccflags -DANOTHER_OPTION_I_NEED"
-
-so that the user can do something like
-
- sh Configure -Dccflags='FIX_NEGATIVE_ZERO'
-
-and have the FIX_NEGATIVE_ZERO value preserved by the hints file.
-
-=head2 Libraries
-
-Configure will attempt to use the libraries listed in the variable
-$libswanted. If necessary, you should remove broken libraries from
-that list, or add additional libraries to that list. You should
-*not* simply set $libs -- that ignores the possibilities of local
-variations. For example, a setting of libs='-lgdbm -lm -lc' would
-fail if another user were to try to compile Perl on a system without
-GDBM but with Berkeley DB. See hints/dec_osf.sh and hints/solaris_2.sh
-for examples.
-
-=head2 Other
-
-In general, try to avoid hard-wiring something that Configure will
-figure out anyway. Also try to allow for Configure command-line
-overrides.
-
-=head1 Hint file tricks
-
-=head2 Printing critical messages
-
-[This is still experimental]
-
-If you have a *REALLY* important message that the user ought to see at
-the end of the Configure run, you can store it in the file
-'config.msg'. At the end of the Configure run, Configure will display
-the contents of this file. Currently, the only place this is used is
-in Configure itself to warn about the need to set LD_LIBRARY_PATH if
-you are building a shared libperl.so.
-
-To use this feature, just do something like the following
-
- $cat <<EOM | $tee -a ../config.msg >&4
-
- This is a really important message. Be sure to read it
- before you type 'make'.
- EOM
-
-This message will appear on the screen as the hint file is being
-processed and again at the end of Configure.
-
-Please use this sparingly.
-
-=head2 Propagating variables to config.sh
-
-Sometimes, you want an extra variable to appear in config.sh. For
-example, if your system can't compile toke.c with the optimizer on,
-you can put
-
- toke_cflags='optimize=""'
-
-at the beginning of a line in your hints file. Configure will then
-extract that variable and place it in your config.sh file. Later,
-while compiling toke.c, the cflags shell script will eval $toke_cflags
-and hence compile toke.c without optimization.
-
-Note that for this to work, the variable you want to propagate must
-appear in the first column of the hint file. It is extracted by
-Configure with a simple sed script, so beware that surrounding case
-statements aren't any help.
-
-By contrast, if you don't want Configure to propagate your temporary
-variable, simply indent it by a leading tab in your hint file.
-
-For example, prior to 5.002, a bug in scope.c led to perl crashing
-when compiled with -O in AIX 4.1.1. The following "obvious"
-workaround in hints/aix.sh wouldn't work as expected:
-
- case "$osvers" in
- 4.1.1)
- scope_cflags='optimize=""'
- ;;
- esac
-
-because Configure doesn't parse the surrounding 'case' statement, it
-just blindly propagates any variable that starts in the first column.
-For this particular case, that's probably harmless anyway.
-
-Three possible fixes are:
-
-=over
-
-=item 1
-
-Create an aix_4_1_1.sh hint file that contains the scope_cflags
-line and then sources the regular aix hints file for the rest of
-the information.
-
-=item 2
-
-Do the following trick:
-
- scope_cflags='case "$osvers" in 4.1*) optimize=" ";; esac'
-
-Now when $scope_cflags is eval'd by the cflags shell script, the
-case statement is executed. Of course writing scripts to be eval'd is
-tricky, especially if there is complex quoting. Or,
-
-=item 3
-
-Write directly to Configure's temporary file UU/config.sh.
-You can do this with
-
- case "$osvers" in
- 4.1.1)
- echo "scope_cflags='optimize=\"\"'" >> UU/config.sh
- scope_cflags='optimize=""'
- ;;
- esac
-
-Note you have to both write the definition to the temporary
-UU/config.sh file and set the variable to the appropriate value.
-
-This is sneaky, but it works. Still, if you need anything this
-complex, perhaps you should create the separate hint file for
-aix 4.1.1.
-
-=back
-
-=head2 Call-backs
-
-=over 4
-
-=item Warning
-
-All of the following is experimental and subject to change. But it
-probably won't change much. :-)
-
-=item Compiler-related flags
-
-The settings of some things, such as optimization flags, may depend on
-the particular compiler used. For example, for ISC we have the
-following:
-
- case "$cc" in
- *gcc*) ccflags="$ccflags -posix"
- ldflags="$ldflags -posix"
- ;;
- *) ccflags="$ccflags -Xp -D_POSIX_SOURCE"
- ldflags="$ldflags -Xp"
- ;;
- esac
-
-However, the hints file is processed before the user is asked which
-compiler should be used. Thus in order for these hints to be useful,
-the user must specify sh Configure -Dcc=gcc on the command line, as
-advised by the INSTALL file.
-
-For versions of perl later than 5.004_61, this problem can
-be circumvented by the use of "call-back units". That is, the hints
-file can tuck this information away into a file UU/cc.cbu. Then,
-after Configure prompts the user for the C compiler, it will load in
-and run the UU/cc.cbu "call-back" unit. See hints/solaris_2.sh for an
-example.
-
-=item Future status
-
-I hope this "call-back" scheme is simple enough to use but powerful
-enough to deal with most situations. Still, there are certainly cases
-where it's not enough. For example, for aix we actually change
-compilers if we are using threads.
-
-I'd appreciate feedback on whether this is sufficiently general to be
-helpful, or whether we ought to simply continue to require folks to
-say things like "sh Configure -Dcc=gcc -Dusethreads" on the command line.
-
-=back
-
-Have the appropriate amount of fun :-)
-
- Andy Dougherty doughera@lafayette.edu
OpenPOWER on IntegriCloud