summaryrefslogtreecommitdiff
path: root/U/Extensions.U
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafcol.lafayette.edu>1995-01-18 02:44:39 +0000
committerAndy Dougherty <doughera@lafcol.lafayette.edu>1995-01-18 02:44:39 +0000
commit5f51ce503c8828daeb43446f6dff8a13c393fe19 (patch)
tree67c06cad89982baeaefd8e81f4d1dd03b2d7a87b /U/Extensions.U
parent9c8d0b29b7bd1493cc1d95591b17902820e5579c (diff)
downloadperl-5f51ce503c8828daeb43446f6dff8a13c393fe19.tar.gz
perl5.000 patch.0f: [enable metaconfig (PL48) users to regenerate Configure]
This patch enables metaconfig (PL48) users to regenerate Configure. A few of the units are considerably enhanced from those distributed with perl5.000. (This patch assumes that you do *not* have the units from perl5beta3i installed. Sorry if that's an inconvenience.) In particular, *dbm testing also checks for an appropriate library function, not just the right header files. The dynamic loading unit U/dlsrc.U has also been updated to support SVR4 dynamic loading. The U/i_db.U unit now checks for the types for the various structure members that have been causing problems. Note that at a minimum, you need to be sure you have the cext='.xs' line from this .package file in your own. That tells metaconfig that it should look in .xs files (as well as the usual .[chy] files) for C symbols.
Diffstat (limited to 'U/Extensions.U')
-rw-r--r--U/Extensions.U172
1 files changed, 172 insertions, 0 deletions
diff --git a/U/Extensions.U b/U/Extensions.U
new file mode 100644
index 0000000000..bcaffc0c52
--- /dev/null
+++ b/U/Extensions.U
@@ -0,0 +1,172 @@
+?RCS: $Id: Extensions.U,v$
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic Licence,
+?RCS: as specified in the README file that comes with the distribution.
+?RCS: You may reuse parts of this distribution only within the terms of
+?RCS: that same Artistic Licence; a copy of which may be found at the root
+?RCS: of the source tree for dist 3.0.
+?RCS:
+?RCS: $Log: Extensions.U,v $
+?RCS:
+?MAKE:known_extensions extensions dynamic_ext static_ext useposix : \
+ Myread usedl d_socket i_db i_dbm i_ndbm i_gdbm package test cat
+?MAKE: -pick add $@ %<
+?S:known_extensions:
+?S: This variable holds a list of all extensions included in
+?S: the package.
+?S:.
+?S:dynamic_ext:
+?S: This variable holds a list of extension files we want to
+?S: link dynamically into the package. It is used by Makefile.
+?S:.
+?S:static_ext:
+?S: This variable holds a list of extension files we want to
+?S: link statically into the package. It is used by Makefile.
+?S:.
+?S:extensions:
+?S: This variable holds a list of all extension files
+?S: linked into the package. It is propagated to Config.pm
+?S: and is typically used to test whether a particular extesion
+?S: is available.
+?S:.
+?S:useposix:
+?S: This variable holds either 'true' or 'false' to indicate
+?S: whether the POSIX extension should be used. The sole
+?S: use for this currently is to allow an easy mechanism
+?S: for hints files to indicate that POSIX will not compile
+?S: on a particular system.
+?S:.
+?T:xxx avail_ext
+?INIT:: set useposix=false in your hint file to disable the POSIX extension.
+?INIT:useposix=true
+echo " "
+echo "Looking for extensions..." >&4
+cd ../ext
+?X: If we're using the old config.sh, known_extensions may contain
+?X: old or inaccurate (or duplicate) values.
+known_extensions=''
+for xxx in * ; do
+ if $test -f $xxx/$xxx.xs; then
+ known_extensions="$known_extensions $xxx"
+ fi
+done
+set X $known_extensions
+shift
+known_extensions="$*"
+cd ../UU
+
+: Now see which are supported on this system.
+avail_ext=''
+for xxx in $known_extensions ; do
+ case "$xxx" in
+ DB_File) case "$i_db" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ GDBM_File) case "$i_gdbm" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ NDBM_File) case "$i_ndbm" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ ODBM_File) case "$i_dbm" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ POSIX) case "$useposix" in
+ true|define|y) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ Socket) case "$d_socket" in
+ $define) avail_ext="$avail_ext $xxx" ;;
+ esac
+ ;;
+ *) avail_ext="$avail_ext $xxx"
+ ;;
+ esac
+done
+
+set X $avail_ext
+shift
+avail_ext="$*"
+
+case $usedl in
+$define)
+ $cat <<EOM
+A number of extensions are supplied with $package. You may choose to
+compile these extensions for dynamic loading (the default), compile
+them into the $package executable (static loading), or not include
+them at all. Answer "none" to include no extensions.
+
+EOM
+ case "$dynamic_ext" in
+ ''|' ') dflt="$avail_ext" ;;
+ *) dflt="$dynamic_ext" ;;
+ esac
+ case "$dflt" in
+ '') dflt=none;;
+ esac
+ rp="What extensions do you wish to load dynamically?"
+ . ./myread
+ case "$ans" in
+ none) dynamic_ext='' ;;
+ *) dynamic_ext="$ans" ;;
+ esac
+
+ case "$static_ext" in
+ ''|' ')
+ : Exclude those already listed in dynamic linking
+ dflt=''
+ for xxx in $avail_ext; do
+ case " $dynamic_ext " in
+ *" $xxx "*) ;;
+ *) dflt="$dflt $xxx" ;;
+ esac
+ done
+ set X $dflt
+ shift
+ dflt="$*"
+ ;;
+ *) dflt="$static_ext"
+ ;;
+ esac
+
+ case "$dflt" in
+ '') dflt=none;;
+ esac
+ rp="What extensions do you wish to load statically?"
+ . ./myread
+ case "$ans" in
+ none) static_ext='' ;;
+ *) static_ext="$ans" ;;
+ esac
+ ;;
+*)
+ $cat <<EOM
+A number of extensions are supplied with $package. Answer "none"
+to include no extensions.
+
+EOM
+ case "$static_ext" in
+ ''|' ') dflt="$avail_ext" ;;
+ *) dflt="$static_ext" ;;
+ esac
+
+ case "$dflt" in
+ '') dflt=none;;
+ esac
+ rp="What extensions do you wish to include?"
+ . ./myread
+ case "$ans" in
+ none) static_ext='' ;;
+ *) static_ext="$ans" ;;
+ esac
+ ;;
+esac
+
+set X $dynamic_ext $static_ext
+shift
+extensions="$*"
+