summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManoj Srivastava <srivasta@debian.org>2020-05-19 20:02:56 -0700
committerManoj Srivastava <srivasta@debian.org>2020-05-19 20:36:47 -0700
commit0664966ad710d299c3ab43a8fe06d141306a0e68 (patch)
tree35d29604717f974049e6f4fc4267c61cb7f0778e
parentcc8dafd4c41256a693f980bd8f48c1a51e58defd (diff)
parent303867b2c314107cc81618561c3be69df19a4c9a (diff)
Merge branch 'upstream'
-rw-r--r--.gitignore3
-rwxr-xr-xConfigure49
-rw-r--r--MANIFEST5
-rw-r--r--README51
-rw-r--r--U/Specific.U33
-rw-r--r--bin/manicheck.man30
-rwxr-xr-xbin/manilist.SH2
-rw-r--r--bin/manilist.man48
-rw-r--r--bin/packinit.man54
-rw-r--r--dist.man68
-rw-r--r--jmake/jmake.man50
-rw-r--r--jmake/jmkmf.man34
-rw-r--r--kit/kitpost.man34
-rw-r--r--kit/kitsend.man34
-rw-r--r--kit/makeSH.man30
-rwxr-xr-xkit/makedist.SH12
-rw-r--r--kit/makedist.man42
-rw-r--r--kit/manifake.man34
-rw-r--r--mcon/U/Assert.U3
-rw-r--r--mcon/U/Checkcc.U8
-rw-r--r--mcon/U/Config_sh.U2
-rw-r--r--mcon/U/Finish.U2
-rw-r--r--mcon/U/Getfile.U2
-rw-r--r--mcon/U/Head.U4
-rw-r--r--mcon/U/Obsol_h.U2
-rw-r--r--mcon/U/Obsol_sh.U2
-rw-r--r--mcon/U/Specific.U26
-rw-r--r--mcon/U/Trylink.U2
-rw-r--r--mcon/U/ccflags.U8
-rw-r--r--mcon/U/d_bfd_section.U49
-rw-r--r--mcon/U/d_fast_assert.U85
-rw-r--r--mcon/U/d_memrchr.U40
-rw-r--r--mcon/U/d_tminsys.U2
-rw-r--r--mcon/U/gccvers.U7
-rw-r--r--mcon/U/nis.U12
-rw-r--r--mcon/U/voidflags.U2
-rwxr-xr-xmcon/man/mconfig.SH189
-rwxr-xr-xmcon/man/mlint.SH107
-rwxr-xr-xmcon/man/mxref.SH58
-rwxr-xr-xmcon/mconfig.SH4
-rwxr-xr-xmcon/mxref.SH5
-rw-r--r--mcon/pl/lint.pl23
-rw-r--r--pat/pat.man76
-rwxr-xr-xpat/patcil.SH14
-rwxr-xr-xpat/patdiff.SH22
-rwxr-xr-xpat/patlog.SH2
-rw-r--r--pl/makedir.pl2
-rw-r--r--pl/rcsargs.pl4
48 files changed, 725 insertions, 652 deletions
diff --git a/.gitignore b/.gitignore
index 281d4c2..9908014 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,9 @@
.config/
+.package
*.bak
*.1
Makefile
+Wanted
bin/manicheck
bin/manilist
bin/packinit
@@ -39,3 +41,4 @@ pat/patnotify
pat/patpost
pat/patsend
pat/patsnap
+revision.h
diff --git a/Configure b/Configure
index 0a9ce81..0cc0fdf 100755
--- a/Configure
+++ b/Configure
@@ -13,12 +13,12 @@
#
# Note: this Configure script was generated automatically. Rather than
# working with this copy of Configure, you may wish to get metaconfig.
-# The dist package (which contains metaconfig) is available via SVN:
-# svn co https://svn.code.sf.net/p/dist/code/trunk/dist
+# The dist package (which contains metaconfig) is available via git:
+# git clone git@github.com:rmanfredi/dist.git
-# $Id: Head.U 167 2013-05-08 17:58:00Z rmanfredi $
+# $Id$
#
-# Generated on Sat Nov 14 16:05:58 CET 2015 [metaconfig 3.5-197]
+# Generated on Tue Jun 5 15:24:34 CEST 2018 [metaconfig 3.5-241]
cat >c1$$ <<EOF
ARGGGHHHH!!!!!
@@ -274,6 +274,7 @@ _a=''
_o=''
archobjs=''
firstmakefile=''
+rm_try=''
afs=''
afsroot=''
baserev=''
@@ -722,7 +723,7 @@ while test $# -gt 0; do
esac
shift
;;
- -V) echo "$me generated by metaconfig 3.5-197." >&2
+ -V) echo "$me generated by metaconfig 3.5-241." >&2
exit 0;;
--) break;;
-*) echo "$me: unknown option $1" >&2; shift; error=true;;
@@ -855,10 +856,14 @@ esac
: Find the path to the source tree
case "$src" in
'') case "$0" in
- */*)
- src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
- ;;
- *) src='.';;
+ */*) src=`echo $0 | sed -e 's%/[^/][^/]*$%%'`
+ case "$src" in
+ /*) ;;
+ .) ;;
+ *) src=`cd ../$src && pwd` ;;
+ esac
+ ;;
+ *) src='.';;
esac;;
esac
case "$src" in
@@ -2270,12 +2275,15 @@ esac
: who configured the system
cf_time=`LC_ALL=C; LANGUAGE=C; export LC_ALL; export LANGUAGE; $date 2>&1`
-cf_by=`(logname) 2>/dev/null`
case "$cf_by" in
"")
- cf_by=`(whoami) 2>/dev/null`
+ cf_by=`(logname) 2>/dev/null`
case "$cf_by" in
- "") cf_by=unknown ;;
+ "")
+ cf_by=`(whoami) 2>/dev/null`
+ case "$cf_by" in
+ "") cf_by=unknown ;;
+ esac ;;
esac ;;
esac
@@ -2352,10 +2360,10 @@ cat >filexp <<EOSS
$startsh
: expand filename
case "\$1" in
- ~/*|~)
+ \~/*|\~)
echo \$1 | $sed "s|~|\${HOME-\$LOGDIR}|"
;;
- ~*)
+ \~*)
if $test -f /bin/csh; then
/bin/csh -f -c "glob \$1"
failed=\$?
@@ -2879,6 +2887,8 @@ case "$_o" in
'') _o='.o';;
esac
+rm_try="$rm -f try try$_exe a.out .out try.[cho] try.$_o core core.try* try.core*"
+
: set the base revision
baserev=3.5
@@ -3941,7 +3951,7 @@ y)
;;
n) echo "OK, that should do.";;
esac
-$rm -f try try.* core
+$rm_try
: determine default editor
echo " "
@@ -4250,9 +4260,9 @@ case "$pager" in
esac
;;
*) dflt="$pager"
- fn="f/($pager)"
;;
esac
+fn="f/($dflt)"
echo " "
rp='What pager is used on your system?'
. ./getfile
@@ -4572,6 +4582,7 @@ privlibexp='$privlibexp'
pthread='$pthread'
revision='$revision'
rm='$rm'
+rm_try='$rm_try'
rmail='$rmail'
run='$run'
scriptdir='$scriptdir'
@@ -4616,6 +4627,12 @@ zcat='$zcat'
zip='$zip'
EOT
+: project-specific code
+file=revision.h
+echo " "
+echo "Generating $file..." >&4
+bin/svn-revision . $file
+
: add special variables
$test -f $src/patchlevel.h && \
awk '/^#define/ {printf "%s=%s\n",$2,$3}' $src/patchlevel.h >>config.sh
diff --git a/MANIFEST b/MANIFEST
index effcaeb..702003a 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -8,6 +8,7 @@ MANIFEST This list of files
Makefile.SH A makefile to run subsidiary makefiles
README Basic instructions
Wishlist Features I would like to add
+U/Specific.U Specific code for dist before .SH extraction
bin/ Some binary tools
bin/Jmakefile Generic makefile description for bin
bin/Makefile.SH Jmake-generated configured makefile
@@ -127,6 +128,7 @@ mcon/U/Rcs.U Some stupid redefinitions to keep RCS happy
mcon/U/Sendfile64.U Is sendfile() working with the largefile flags?
mcon/U/Setvar.U Set a variable with some sanity checks
mcon/U/Signal.U Utilities for sig_name.U
+mcon/U/Specific.U Hook for project-specific code before .SH extraction
mcon/U/Tr.U Builds a tr script to handle lower and upper classes
mcon/U/Trylink.U Compiles and links a test program
mcon/U/Typedef.U Defines a typedef lookup function
@@ -170,6 +172,7 @@ mcon/U/d_backtrace.U Do we have backtrace()?
mcon/U/d_bcmp.U Do we have bcmp() or memcmp()?
mcon/U/d_bcopy.U Do we have bcopy() or memcpy()?
mcon/U/d_bfd_lib.U Is the BFD library available?
+mcon/U/d_bfd_section.U Do bfd_section_xxx() accessors exist with 1 argument?
mcon/U/d_bindtxtcode.U Do we have bind_textdomain_codeset()?
mcon/U/d_brokstat.U Check whether stat() macros are broken
mcon/U/d_bsdjmp.U Do we have BSD _setjmp() and _longjmp()?
@@ -221,7 +224,6 @@ mcon/U/d_eofpipe.U Will EOF be seen on closed pipes?
mcon/U/d_epoll.U Can we use epoll_xxx() routines?
mcon/U/d_etext_symbol.U Whether linker defines the "etext" symbol
mcon/U/d_euc2jis.U Do we have euc2jis()?
-mcon/U/d_fast_assert.U Can we use fast assertions?
mcon/U/d_fchdir.U Do we have fchdir()?
mcon/U/d_fchmod.U Do we have fchmod()?
mcon/U/d_fchown.U Do we have fchown()?
@@ -309,6 +311,7 @@ mcon/U/d_memcmp.U Do we have memcmp()?
mcon/U/d_memcpy.U Do we have memcpy()?
mcon/U/d_memmove.U Do we have memmove()?
mcon/U/d_mempcpy.U Do we have mempcpy()?
+mcon/U/d_memrchr.U Do we have memrchr()?
mcon/U/d_memset.U Do we have memset()?
mcon/U/d_mkdir.U Do we have mkdir()?
mcon/U/d_mkfifo.U Do we have mkfifo()?
diff --git a/README b/README
index 86f250a..8d71686 100644
--- a/README
+++ b/README
@@ -1,10 +1,10 @@
dist 4.0
- ** Alpha version **
Copyright (c) 1988, Larry Wall
Copyright (c) 1990-1992, Harlan Stenn
Copyright (c) 1991-1997, Raphael Manfredi
Copyright (c) 2004-2006, Raphael Manfredi
+ Copyright (c) 2007+ Many other contributors
------------------------------------------------------------------------
This program is free software; you can redistribute it and/or modify
@@ -18,15 +18,7 @@
------------------------------------------------------------------------
This version of dist requires you to have at least perl 4.0 PL36.
-It has also been ported to work with perl 5.0 PL0, provided you have
-at least integrated patches 0a-0h, issued by Andy Dougherty and made
-available at the following ftp sites:
-
- ftp.demon.co.uk:/pub/perl/db/perl5.000-p0a-p0h.tar.gz
- ftp.funet.fi:/pub/languages/perl/ports/perl5/perl5.000-p0a-p0h.tar.gz
-
-Please read all the directions below before you proceed any further, and
-then follow them carefully.
+It has also been ported to work with modern perl 5.
After you have unpacked your kit, you should have all the files listed
in MANIFEST.
@@ -48,31 +40,6 @@ use any of those, however, the directory containing your package (not this
package) must be initialized by putting a .package file into it. This
can be done by running packinit in that directory.
-There is a mailing list hosted in Japan and set up by Shigeya Suzuki
-<shigeya@foretune.co.jp>, for discussion about the dist package as a
-whole. It's a good place to ask questions (or answer them) and to
-send your patches. I will post official patches to the net, as well
-as to the dist-users list.
-
-To send a mail to the list, address it to <dist-users@foretune.co.jp>.
-To subscribe, send a mail to <majordomo@foretune.co.jp>. If you don't
-know how to use majordomo, the syntax of the subscribe command is:
-
- subscribe dist-users [address]
-
-where the address part is optional. You may unsubscribe automatically
-at any time by sending:
-
- unsubscribe dist-users
-
-If you have a problem with this version of dist, it is recommended that
-you subscribe to the list, then send a description of your problem to it.
-If you send mail to me personally, I may not be able to answer in a
-timely fashion.
-
-This mailing list has low traffic (a few articles per week, typically),
-and it is expected to remain so, with a high signal/noise ratio.
-
Notes:
If you are running on a system with <= 14 char filenames, don't
@@ -119,20 +86,10 @@ clean up everything and let you re-distribute this kit, without
carrying useless files. You should keep this distribution intact, so
that future patches will be applyable.
-7) I have an automatic patch sender. Send me the following mail:
-
- Subject: Command
- @SH mailhelp PATH
-
-and you'll get instructions (PATH stands for YOUR e-mail address, either
-in INTERNET or in bang notation). I would recommend you to get all the
-issued patches before you start making some modifications on this
-package.
-
-8) If you wish to deinstall the package, you may run "make deinstall".
+7) If you wish to deinstall the package, you may run "make deinstall".
A separate "make deinstall.man" will remove the manual pages. Be sure
the makefiles are correctly set before running any deinstall target.
On USG systems, some executable have a chance to remain despite the
deinstall (text file busy...).
- Raphael Manfredi <Raphael_Manfredi@grenoble.hp.com>
+ Raphael Manfredi <Raphael_Manfredi@pobox.com>
diff --git a/U/Specific.U b/U/Specific.U
new file mode 100644
index 0000000..30babf8
--- /dev/null
+++ b/U/Specific.U
@@ -0,0 +1,33 @@
+?RCS:
+?RCS: Copyright (c) 2018, Raphael Manfredi
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic License,
+?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 License; a copy of which may be found at the root
+?RCS: of the source tree for dist 4.0.
+?RCS:
+?X:
+?X: This unit is intended to be a project-specific hook.
+?X: By default, it is therefore empty, meant to be copied to your private
+?X: unit directory (U) and seasoned to taste.
+?X:
+?X: If you need specific code generation to happen once the configuration
+?X: is finished and config.sh was generated, but before the extraction of
+?X: the .SH files begins, then this is the place to put these special
+?X: code that the .SH files will require to run properly.
+?X:
+?X: When this unit triggers, Configure is back to the top directory.
+?X:
+?MAKE:Specific: Config_sh
+?MAKE: -pick add $@ %<
+?T:file
+?X:
+?X: Keep the above ?MAKE: lines and then append your specific code here.
+?X:
+: project-specific code
+file=revision.h
+echo " "
+echo "Generating $file..." >&4
+bin/svn-revision . $file
+
diff --git a/bin/manicheck.man b/bin/manicheck.man
index e4f344d..889ce17 100644
--- a/bin/manicheck.man
+++ b/bin/manicheck.man
@@ -1,18 +1,18 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: manicheck.man,v $
-''' Revision 3.0 1993/08/18 12:04:02 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: manicheck.man,v $
+.\" Revision 3.0 1993/08/18 12:04:02 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.TH MANICHECK 1 ram
.SH NAME
manicheck \- check manifest accuracy
diff --git a/bin/manilist.SH b/bin/manilist.SH
index 17592a4..1534943 100755
--- a/bin/manilist.SH
+++ b/bin/manilist.SH
@@ -213,7 +213,7 @@ if ($opt_d) {
}
@manifest = sort @manifest;
-@files = sort @files if defined(@files);
+@files = sort @files if @files;
# Build up the %manifest array so that we quickly know whether a file is in the
# manifest or not.
diff --git a/bin/manilist.man b/bin/manilist.man
index b488fd4..bcf0cfb 100644
--- a/bin/manilist.man
+++ b/bin/manilist.man
@@ -1,27 +1,27 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: manilist.man,v $
-''' Revision 3.0.1.3 1995/05/12 11:57:31 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0.1.2 1994/01/24 13:52:55 ram
-''' patch16: typo fix
-'''
-''' Revision 3.0.1.1 1993/08/24 12:11:02 ram
-''' patch3: typo fix
-'''
-''' Revision 3.0 1993/08/18 12:04:04 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: manilist.man,v $
+.\" Revision 3.0.1.3 1995/05/12 11:57:31 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0.1.2 1994/01/24 13:52:55 ram
+.\" patch16: typo fix
+.\"
+.\" Revision 3.0.1.1 1993/08/24 12:11:02 ram
+.\" patch3: typo fix
+.\"
+.\" Revision 3.0 1993/08/18 12:04:04 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.TH MANILIST 1 ram
.SH NAME
manilist \- report status of files in a source directory
diff --git a/bin/packinit.man b/bin/packinit.man
index b7205a0..e62a8c7 100644
--- a/bin/packinit.man
+++ b/bin/packinit.man
@@ -1,30 +1,30 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: packinit.man,v $
-''' Revision 3.0.1.4 1995/07/25 13:31:38 ram
-''' patch56: fixed a typo
-'''
-''' Revision 3.0.1.3 1995/05/12 11:57:38 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0.1.2 1994/10/29 15:45:17 ram
-''' patch36: added new variables cext, shext, changelog and changercs
-'''
-''' Revision 3.0.1.1 1994/01/24 13:54:31 ram
-''' patch16: now documents variables set in .package by packinit
-'''
-''' Revision 3.0 1993/08/18 12:04:06 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: packinit.man,v $
+.\" Revision 3.0.1.4 1995/07/25 13:31:38 ram
+.\" patch56: fixed a typo
+.\"
+.\" Revision 3.0.1.3 1995/05/12 11:57:38 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0.1.2 1994/10/29 15:45:17 ram
+.\" patch36: added new variables cext, shext, changelog and changercs
+.\"
+.\" Revision 3.0.1.1 1994/01/24 13:54:31 ram
+.\" patch16: now documents variables set in .package by packinit
+.\"
+.\" Revision 3.0 1993/08/18 12:04:06 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.TH PACKINIT 1 ram
.SH NAME
packinit \- initialize or update your .package file
diff --git a/dist.man b/dist.man
index 0799726..d28da1b 100644
--- a/dist.man
+++ b/dist.man
@@ -1,37 +1,37 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: dist.man,v $
-''' Revision 3.0.1.6 1995/05/12 11:57:53 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0.1.5 1994/10/29 15:46:03 ram
-''' patch36: mentions new patlog script and ChangeLog file
-'''
-''' Revision 3.0.1.4 1994/05/06 13:54:17 ram
-''' patch23: extended copyright notice to 1994
-''' patch23: new script kitpost
-'''
-''' Revision 3.0.1.3 1994/01/24 13:55:41 ram
-''' patch16: documents profile and its components
-'''
-''' Revision 3.0.1.2 1993/11/10 17:31:03 ram
-''' patch14: added mention for new confmagic.h file
-'''
-''' Revision 3.0.1.1 1993/08/24 12:12:00 ram
-''' patch3: added entries for patnotify and patsnap
-'''
-''' Revision 3.0 1993/08/18 12:04:07 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: dist.man,v $
+.\" Revision 3.0.1.6 1995/05/12 11:57:53 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0.1.5 1994/10/29 15:46:03 ram
+.\" patch36: mentions new patlog script and ChangeLog file
+.\"
+.\" Revision 3.0.1.4 1994/05/06 13:54:17 ram
+.\" patch23: extended copyright notice to 1994
+.\" patch23: new script kitpost
+.\"
+.\" Revision 3.0.1.3 1994/01/24 13:55:41 ram
+.\" patch16: documents profile and its components
+.\"
+.\" Revision 3.0.1.2 1993/11/10 17:31:03 ram
+.\" patch14: added mention for new confmagic.h file
+.\"
+.\" Revision 3.0.1.1 1993/08/24 12:12:00 ram
+.\" patch3: added entries for patnotify and patsnap
+.\"
+.\" Revision 3.0 1993/08/18 12:04:07 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.de Ex \" Start of Example
.sp
.in +5
diff --git a/jmake/jmake.man b/jmake/jmake.man
index 43fa694..1c5832a 100644
--- a/jmake/jmake.man
+++ b/jmake/jmake.man
@@ -1,28 +1,28 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: jmake.man,v $
-''' Revision 3.0.1.3 2004/08/22 09:01:55 ram
-''' patch71: renamed |test as |case as the construct has its syntax
-''' patch71: added |subst section to allow variable substitutions
-'''
-''' Revision 3.0.1.2 2004/08/21 23:19:52 ram
-''' patch71: added '|shell' section to emit verbatim code in Makefile.SH
-''' patch71: new '|test' to conditionally generate Makefile sections
-'''
-''' Revision 3.0.1.1 1995/05/12 11:57:58 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0 1993/08/18 12:04:18 ram
-''' Baseline for dist 3.0 netwide release.
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: jmake.man,v $
+.\" Revision 3.0.1.3 2004/08/22 09:01:55 ram
+.\" patch71: renamed |test as |case as the construct has its syntax
+.\" patch71: added |subst section to allow variable substitutions
+.\"
+.\" Revision 3.0.1.2 2004/08/21 23:19:52 ram
+.\" patch71: added '|shell' section to emit verbatim code in Makefile.SH
+.\" patch71: new '|test' to conditionally generate Makefile sections
+.\"
+.\" Revision 3.0.1.1 1995/05/12 11:57:58 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0 1993/08/18 12:04:18 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
.TH JMAKE 1 ram
.SH NAME
jmake \- a generic makefile builder
diff --git a/jmake/jmkmf.man b/jmake/jmkmf.man
index 0aec07b..767f257 100644
--- a/jmake/jmkmf.man
+++ b/jmake/jmkmf.man
@@ -1,20 +1,20 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: jmkmf.man,v $
-''' Revision 3.0.1.1 1995/05/12 11:58:03 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0 1993/08/18 12:04:20 ram
-''' Baseline for dist 3.0 netwide release.
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: jmkmf.man,v $
+.\" Revision 3.0.1.1 1995/05/12 11:58:03 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0 1993/08/18 12:04:20 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
.TH JMKMF 1 ram
.SH NAME
jmkmf \- runs jmake with the correct options
diff --git a/kit/kitpost.man b/kit/kitpost.man
index cd936ec..04e74f9 100644
--- a/kit/kitpost.man
+++ b/kit/kitpost.man
@@ -1,20 +1,20 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: kitpost.man,v $
-''' Revision 3.0.1.2 1995/05/12 11:58:09 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0.1.1 1994/05/06 13:55:01 ram
-''' patch23: created
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: kitpost.man,v $
+.\" Revision 3.0.1.2 1995/05/12 11:58:09 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0.1.1 1994/05/06 13:55:01 ram
+.\" patch23: created
+.\"
.TH KITSEND 1 ram
.SH NAME
kitpost \- posts distribution kits
diff --git a/kit/kitsend.man b/kit/kitsend.man
index 95101df..0e7f518 100644
--- a/kit/kitsend.man
+++ b/kit/kitsend.man
@@ -1,20 +1,20 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: kitsend.man,v $
-''' Revision 3.0.1.1 1994/05/06 14:00:11 ram
-''' patch23: documented new -V and -h options
-'''
-''' Revision 3.0 1993/08/18 12:04:26 ram
-''' Baseline for dist 3.0 netwide release.
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: kitsend.man,v $
+.\" Revision 3.0.1.1 1994/05/06 14:00:11 ram
+.\" patch23: documented new -V and -h options
+.\"
+.\" Revision 3.0 1993/08/18 12:04:26 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
.TH KITSEND 1 ram
.SH NAME
kitsend \- sends distribution kits
diff --git a/kit/makeSH.man b/kit/makeSH.man
index 1d30066..5e11ac3 100644
--- a/kit/makeSH.man
+++ b/kit/makeSH.man
@@ -1,18 +1,18 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: makeSH.man,v $
-''' Revision 3.0 1993/08/18 12:04:27 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: makeSH.man,v $
+.\" Revision 3.0 1993/08/18 12:04:27 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.TH MAKESH 1 LOCAL
.SH NAME
makeSH \- a .SH script maker
diff --git a/kit/makedist.SH b/kit/makedist.SH
index f40d5c5..ccc9566 100755
--- a/kit/makedist.SH
+++ b/kit/makedist.SH
@@ -114,7 +114,7 @@ sub kitbuild {
$list = $list[$kitnum];
$kit = sprintf("$package.kit" . $sp,$kitnum);
print "*** Making $kit ***\n";
- open(KIT,">$curdir/$kit") || do fatal("Can't create $curdir/$kit: $!");
+ open(KIT,">$curdir/$kit") || &fatal("Can't create $curdir/$kit: $!");
&kitleader;
@@ -202,7 +202,7 @@ sub kitlists {
}
# Build a file PACKNOTES to reconstruct split files
- if (defined %Chopped) {
+ if (%Chopped) {
open(PACKNOTES, ">$PACKNOTES") || &fatal("Can't create PACKNOTES: $!");
foreach (keys %Chopped) {
print PACKNOTES <<EOC;
@@ -248,9 +248,9 @@ EOC
# Read manifest file and initialize the %comment array.
sub maniread {
- do fatal("You don't have a $NEWMANI file. Run manifake")
+ &fatal("You don't have a $NEWMANI file. Run manifake")
unless -f "$NEWMANI";
- open(NEWMANI,$NEWMANI) || do fatal("Can't read $NEWMANI: $!");
+ open(NEWMANI,$NEWMANI) || &fatal("Can't read $NEWMANI: $!");
while (<NEWMANI>) {
($key,$val) = split(' ',$_,1) unless ($key,$val) = /^(\S+)\s+(.*)/;
$comment{$key} = $val;
@@ -266,7 +266,7 @@ sub manimake {
# Add built packlist
$comment{$PACKLIST} = 'Which files came with which kits';
- open(PACKLIST, ">$PACKLIST") || do fatal("Can't create $PACKLIST: $!");
+ open(PACKLIST, ">$PACKLIST") || &fatal("Can't create $PACKLIST: $!");
print PACKLIST
"After all the $package kits are run you should have the following files:
@@ -321,7 +321,7 @@ case \$todo in
'')
echo \"You have run all your kits.\"
EOM
- if (defined %Chopped) { # Some splitting occurred
+ if (%Chopped) { # Some splitting occurred
print KIT <<EOM;
if test -f $PACKNOTES; then
sh $PACKNOTES
diff --git a/kit/makedist.man b/kit/makedist.man
index 1b18a5c..d1584eb 100644
--- a/kit/makedist.man
+++ b/kit/makedist.man
@@ -1,25 +1,25 @@
.rn '' }`
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: makedist.man,v $
-''' Revision 3.0.1.2 1995/05/12 11:58:16 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0.1.1 1994/05/06 14:00:50 ram
-''' patch23: now mentions kitpost and kitsend
-'''
-''' Revision 3.0 1993/08/18 12:04:31 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: makedist.man,v $
+.\" Revision 3.0.1.2 1995/05/12 11:58:16 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0.1.1 1994/05/06 14:00:50 ram
+.\" patch23: now mentions kitpost and kitsend
+.\"
+.\" Revision 3.0 1993/08/18 12:04:31 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.de Sh
.br
.ne 5
diff --git a/kit/manifake.man b/kit/manifake.man
index b68e342..76b9dff 100644
--- a/kit/manifake.man
+++ b/kit/manifake.man
@@ -1,20 +1,20 @@
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: manifake.man,v $
-''' Revision 3.0.1.1 1995/05/12 11:58:21 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0 1993/08/18 12:04:33 ram
-''' Baseline for dist 3.0 netwide release.
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: manifake.man,v $
+.\" Revision 3.0.1.1 1995/05/12 11:58:21 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0 1993/08/18 12:04:33 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
.TH MANIFAKE 1 ram
.SH NAME
manifake \- creates a MANIFEST.new out of a MANIFEST file
diff --git a/mcon/U/Assert.U b/mcon/U/Assert.U
index 76de54d..1a38e49 100644
--- a/mcon/U/Assert.U
+++ b/mcon/U/Assert.U
@@ -20,7 +20,6 @@
?X: There is no need to link the file to spot the assertion failure.
?X:
$cat >static_assert.h <<'EOC'
-#define STATIC_ASSERT(expr) \
- do { switch (0) { case ((expr) ? 1 : 0): case 0: break; } } while(0)
+#define STATIC_ASSERT(expr) ((void) sizeof(char[1 - 2*!(expr)]))
EOC
diff --git a/mcon/U/Checkcc.U b/mcon/U/Checkcc.U
index 3cae05c..ce0dc62 100644
--- a/mcon/U/Checkcc.U
+++ b/mcon/U/Checkcc.U
@@ -37,10 +37,10 @@
?INIT:ccname=''
?INIT:ccversion=''
: generate the trygcc script for later perusal
-cat <<EOS >trygcc
+$cat <<EOS >trygcc
$startsh
EOS
-cat <<'EOSC' >>trygcc
+$cat <<'EOSC' >>trygcc
case "$cc" in
'') ;;
*) $rm -f try try.*
@@ -100,10 +100,10 @@ esac
EOSC
: generate the checkcc script for later perusal
-cat <<EOS >checkcc
+$cat <<EOS >checkcc
$startsh
EOS
-cat <<'EOSC' >>checkcc
+$cat <<'EOSC' >>checkcc
case "$cc" in
'') ;;
*) $rm -f try try.*
diff --git a/mcon/U/Config_sh.U b/mcon/U/Config_sh.U
index bb47b7b..1b3b0c6 100644
--- a/mcon/U/Config_sh.U
+++ b/mcon/U/Config_sh.U
@@ -32,7 +32,7 @@
?MAKE: -pick add.Config_sh $@ %<
?MAKE: -pick add $@ ./Obsol_sh
?MAKE: -pick close.Config_sh $@ %<
-?F:!config.over !config.arch
+?F:!config.over !config.arch config.sh
?T:file sfile xsed
?LINT:unclosed EOT
: back to where it started
diff --git a/mcon/U/Finish.U b/mcon/U/Finish.U
index cf5a364..51039c4 100644
--- a/mcon/U/Finish.U
+++ b/mcon/U/Finish.U
@@ -35,7 +35,7 @@
?X: SH files, which among other things produce config.h and (usually) Makefile.
?X: It offers to do a make depend if the Makefile contains that target.
?X:
-?MAKE:Finish: Chk_MANI Extract Myread Oldsym Magic_h cat rm contains \
+?MAKE:Finish: Chk_MANI Extract Specific Myread Oldsym Magic_h cat rm contains \
test package make
?MAKE: -pick add $@ %<
?F:!config.sh
diff --git a/mcon/U/Getfile.U b/mcon/U/Getfile.U
index f5cf49b..641ea30 100644
--- a/mcon/U/Getfile.U
+++ b/mcon/U/Getfile.U
@@ -48,7 +48,7 @@
?X: those are prefixes for the filename. Unless $gfpthkeep is set to 'y',
?X: gfpth is cleared on return from Getfile.
?X:
-?X: If is is followed by a ~, then ~name substitution will occur. Upon return,
+?X: If it is followed by a ~, then ~name substitution will occur. Upon return,
?X: $ans is set with the filename value. If a / is specified, then only a full
?X: path name is accepted (but ~ substitution occurs before, if needed). The
?X: expanded path name is returned in that case.
diff --git a/mcon/U/Head.U b/mcon/U/Head.U
index 933e489..0b8a98e 100644
--- a/mcon/U/Head.U
+++ b/mcon/U/Head.U
@@ -77,8 +77,8 @@
?X:
# Note: this Configure script was generated automatically. Rather than
# working with this copy of Configure, you may wish to get metaconfig.
-# The dist package (which contains metaconfig) is available via SVN:
-# svn co https://svn.code.sf.net/p/dist/code/trunk/dist
+# The dist package (which contains metaconfig) is available via git:
+# git clone git@github.com:rmanfredi/dist.git
?X:
?X: NOTA BENE:
?X: If you develop you own version of metaconfig based on this work,
diff --git a/mcon/U/Obsol_h.U b/mcon/U/Obsol_h.U
index fc59938..c19c5a4 100644
--- a/mcon/U/Obsol_h.U
+++ b/mcon/U/Obsol_h.U
@@ -20,7 +20,7 @@
?MAKE: -pick prepend $@ ./Obsol_h
?LINT:nocomment
/*
- * The following symbols are obsolete. They are mapped to the the new
+ * The following symbols are obsolete. They are mapped to the new
* symbols only to ease the transition process. The sources should be
* updated so as to use the new symbols only, as the support for these
* obsolete symbols may end without notice.
diff --git a/mcon/U/Obsol_sh.U b/mcon/U/Obsol_sh.U
index de1a1e1..3b3f0d6 100644
--- a/mcon/U/Obsol_sh.U
+++ b/mcon/U/Obsol_sh.U
@@ -20,7 +20,7 @@
?MAKE: -pick prepend $@ ./Obsol_sh
?LINT:nocomment
#
-# The following symbols are obsolete. They are mapped to the the new
+# The following symbols are obsolete. They are mapped to the new
# symbols only to ease the transition process. The sources should be
# updated so as to use the new symbols only, since supporting of those
# obsolete symbols may end without notice.
diff --git a/mcon/U/Specific.U b/mcon/U/Specific.U
new file mode 100644
index 0000000..feb189b
--- /dev/null
+++ b/mcon/U/Specific.U
@@ -0,0 +1,26 @@
+?RCS:
+?RCS: Copyright (c) 2018, Raphael Manfredi
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic License,
+?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 License; a copy of which may be found at the root
+?RCS: of the source tree for dist 4.0.
+?RCS:
+?X:
+?X: This unit is intended to be a project-specific hook.
+?X: By default, it is therefore empty, meant to be copied to your private
+?X: unit directory (U) and seasoned to taste.
+?X:
+?X: If you need specific code generation to happen once the configuration
+?X: is finished and config.sh was generated, but before the extraction of
+?X: the .SH files begins, then this is the place to put these special
+?X: code that the .SH files will require to run properly.
+?X:
+?X: When this unit triggers, Configure is back to the top directory.
+?X:
+?MAKE:Specific: Config_sh
+?MAKE: -pick add $@ %<
+?X:
+?X: Keep the above ?MAKE: lines and then append your specific code here.
+?X:
diff --git a/mcon/U/Trylink.U b/mcon/U/Trylink.U
index e38e0b2..9b2a380 100644
--- a/mcon/U/Trylink.U
+++ b/mcon/U/Trylink.U
@@ -74,7 +74,7 @@ case "$cyn" in
"") echo "--- $var ---" >> "$file";;
*)
echo " "; $echo $n "Checking $msg...$c" >&4;
- echo "--- $var --- ($msg)" >>"$file"
+ echo "--- $var --- ($msg)" >> "$file"
;;
esac;
$cat try.c >> "$file";
diff --git a/mcon/U/ccflags.U b/mcon/U/ccflags.U
index 942e462..b134f57 100644
--- a/mcon/U/ccflags.U
+++ b/mcon/U/ccflags.U
@@ -174,11 +174,11 @@ dflt=''
case "$hint" in
default|recommended)
case "$gccversion" in
- 1*) dflt='-fpcc-struct-return' ;;
+ 1) dflt='-fpcc-struct-return' ;;
esac
?X: check for POSIXized ISC
case "$gccversion" in
- 2*) if test -d /etc/conf/kconfig.d &&
+ 2) if test -d /etc/conf/kconfig.d &&
$contains _POSIX_VERSION $usrinc/sys/unistd.h >/dev/null 2>&1
then
dflt="$dflt -posix"
@@ -187,7 +187,7 @@ default|recommended)
esac
?X: turn warnings on if they're using gcc
case "$gccversion" in
- 1*|2*) dflt="$dflt -Wall";;
+ 1|2) dflt="$dflt -Wall";;
?X: starting with version 3, add "-W -Wall -Wformat=2 -Wshadow" by default
*) dflt="$dflt -W -Wall -Wformat=2 -Wshadow";;
esac
@@ -265,7 +265,7 @@ esac
: the following weeds options from ccflags that are of no interest to cpp
cppflags="$ccflags"
case "$gccversion" in
-1*) cppflags="$cppflags -D__GNUC__"
+1) cppflags="$cppflags -D__GNUC__"
esac
case "$mips_type" in
'');;
diff --git a/mcon/U/d_bfd_section.U b/mcon/U/d_bfd_section.U
new file mode 100644
index 0000000..d876541
--- /dev/null
+++ b/mcon/U/d_bfd_section.U
@@ -0,0 +1,49 @@
+?RCS: $Id$
+?RCS:
+?RCS: Copyright (c) 2020, Raphael Manfredi
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic License,
+?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 License; a copy of which may be found at the root
+?RCS: of the source tree for dist 4.0.
+?RCS:
+?MAKE:d_bfd_section: Trylink cat d_bfd_lib
+?MAKE: -pick add $@ %<
+?S:d_bfd_section:
+?S: This variable conditionally defines the HAS_BFD_SECTION_1ARG symbol,
+?S: which indicates to the C program that the bfd_section_xxx() accessors
+?S: from the BFD library exists and taks only one argument.
+?S:.
+?C:HAS_BFD_SECTION_1ARG:
+?C: This symbol, if defined, indicates that the bfd_section_xxx() accessors
+?C: from the BFD library takes only one argument, which is the new behaviour
+?C: starting from BFD 2.34.
+?C:.
+?H:#$d_bfd_section HAS_BFD_SECTION_1ARG /**/
+?H:.
+: see whether bfd_section_vma exists and takes 1 argument
+case "$d_bfd_lib" in
+$undef)
+ d_bfd_section=$undef
+ ;;
+*)
+ $cat >try.c <<EOC
+?X: See d_bfd_lib.U to understand why we have to define these symbols.
+#define PACKAGE
+#define PACKAGE_VERSION
+#include <bfd.h>
+int main(void)
+{
+ bfd *b = 0;
+ asection *sec = 0;
+
+ return 0 == bfd_section_vma(sec);
+}
+EOC
+ cyn="whether bfd_section_vma() takes 1 argument"
+ set d_bfd_section
+ eval $trylink
+ ;;
+esac
+
diff --git a/mcon/U/d_fast_assert.U b/mcon/U/d_fast_assert.U
deleted file mode 100644
index dba5132..0000000
--- a/mcon/U/d_fast_assert.U
+++ /dev/null
@@ -1,85 +0,0 @@
-?RCS: $Id$
-?RCS:
-?RCS: Copyright (c) 2006, Christian Biere
-?RCS:
-?RCS: You may redistribute only under the terms of the Artistic License,
-?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 License; a copy of which may be found at the root
-?RCS: of the source tree for dist 4.0.
-?RCS:
-?MAKE:d_fast_assert: Myread Setvar cat gccversion spackage \
- sed +ccflags +cc +ldflags +optimize
-?MAKE: -pick add $@ %<
-?S:d_fast_assert:
-?S: This variable conditionally defines FAST_ASSERTIONS.
-?S:.
-?C:FAST_ASSERTIONS:
-?C: This symbol, when defined, indicates that the program should make
-?C: use of its own asserting and failure reporting code, instead of
-?C: the one from GLib.
-?C:.
-?H:#$d_fast_assert FAST_ASSERTIONS /**/
-?H:.
-?F:!try.c !try
-?LINT:set d_fast_assert
-?LINT:change ccflags
-: determine whether to enable fast assertions
-echo " "
-case "$d_fast_assert" in
-"$undef")
- dflt=n;;
-*)
- dflt=y;;
-esac
-$cat <<EOM
-$spackage contains code called "fast assertions" which are lightweight
-assertions in terms of code space used. They use much less code than
-their GLib counterpart, and therefore should be more efficient.
-
-EOM
-rp='Shall I enable "fast assertions"'
-. ./myread
-case "$ans" in
-y) val="$define";;
-*) val="$undef";;
-esac
-set d_fast_assert
-eval $setvar
-?X: When gcc is used, see whether we can use -momit-leaf-frame-pointer
-?X: This is useful for tail routines containing assertions if they use
-?X: "fast assertions", given that the code is not calling any routine.
-case "$gccversion" in
-'') ;;
-*)
- case "$d_fast_assert" in
- "$define")
- $cat >try.c <<'EOC'
-int main()
-{
- return 0;
-}
-EOC
- if $cc $ccflags -momit-leaf-frame-pointer $ldflags -o try try.c >/dev/null 2>&1
- then
- case "$ccflags $optimize" in
- *-momit-leaf-frame-pointer*) ;;
- *-O0*) ;;
- *-O*)
- ccflags="-momit-leaf-frame-pointer $ccflags"
- echo "Added -momit-leaf-frame-pointer to the cc flags." >&4
- ;;
- esac
- else
- case "$ccflags" in
- *-momit-leaf-frame-pointer*)
- echo "Stripping -momit-leaf-frame-pointer from cc flags." >&4
- ccflags=`echo $ccflags | $sed 's/ *-momit-leaf-frame-pointer//'`
- ;;
- esac
- fi
- ;;
- esac
-;;
-esac
-
diff --git a/mcon/U/d_memrchr.U b/mcon/U/d_memrchr.U
new file mode 100644
index 0000000..c7b1c01
--- /dev/null
+++ b/mcon/U/d_memrchr.U
@@ -0,0 +1,40 @@
+?RCS:
+?RCS: Copyright (c) 2018 Raphael Manfredi
+?RCS:
+?RCS: You may redistribute only under the terms of the Artistic License,
+?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 License; a copy of which may be found at the root
+?RCS: of the source tree for dist 4.0.
+?RCS:
+?MAKE:d_memrchr: Trylink cat
+?MAKE: -pick add $@ %<
+?S:d_memrchr:
+?S: This variable conditionally defines the HAS_MEMRCHR symbol, which
+?S: indicates to the C program that the memrchr() routine is available
+?S: to scan a block of memory backwards for a character.
+?S:.
+?C:HAS_MEMRCHR:
+?C: This symbol, if defined, indicates that the memrchr routine is available
+?C: to scan a block of memory backwards for a character.
+?C: If undefined, roll your own.
+?C:.
+?H:#$d_memrchr HAS_MEMRCHR /**/
+?H:.
+?LINT:set d_memrchr
+: see if memrchr exists
+$cat >try.c <<EOC
+#include <string.h>
+int main(void)
+{
+ static char s[] = "xxx";
+ static size_t n = sizeof(s);
+ void *p;
+ p = memrchr(s, 'x', n);
+ return p ? 0 : 1;
+}
+EOC
+cyn=memrchr
+set d_memrchr
+eval $trylink
+
diff --git a/mcon/U/d_tminsys.U b/mcon/U/d_tminsys.U
index 60fc95a..548a014 100644
--- a/mcon/U/d_tminsys.U
+++ b/mcon/U/d_tminsys.U
@@ -20,7 +20,7 @@
?S:.
?C:TM_IN_SYS (TMINSYS):
?C: This symbol is defined if this system declares "struct tm" in
-?C: in <sys/time.h> rather than <time.h>. We can't just say
+?C: <sys/time.h> rather than <time.h>. We can't just say
?C: -I/usr/include/sys because some systems have both time files, and
?C: the -I trick gets the wrong one.
?C:.
diff --git a/mcon/U/gccvers.U b/mcon/U/gccvers.U
index 702a5e9..b5abb47 100644
--- a/mcon/U/gccvers.U
+++ b/mcon/U/gccvers.U
@@ -17,6 +17,9 @@
?S: If GNU cc (gcc) is used, this variable holds '1' or '3' (for instance)
?S: to indicate whether the compiler is version 1 or 3. This is used in
?S: setting some of the default cflags. It is set to '' if not gcc.
+?S: Note that it only contains the major version number, and, when using
+?S: case statements to do different things depending on the major, do not
+?S: use statements like "1*)" because it will match version 1, 10, 11, etc.
?S:.
?S:gccosandvers:
?S: If GNU cc (gcc) is used, this variable the operating system and
@@ -58,7 +61,7 @@ else
fi
$rm -f try try.*
case "$gccversion" in
-1*) cpp=`./loc gcc-cpp $cpp $pth` ;;
+1) cpp=`./loc gcc-cpp $cpp $pth` ;;
esac
case "$gccversion" in
'') gccosandvers='' ;;
@@ -99,7 +102,7 @@ esac
: gcc 3.1 complains about adding -Idirectories that it already knows about,
: so we will take those off from locincpth.
case "$gccversion" in
-3*)
+3)
echo "main(){}">try.c
for incdir in `$cc -v -c try.c 2>&1 | \
sed '1,/^#include <\.\.\.>/d;/^End of search list/,$d;s/^ //'` ; do
diff --git a/mcon/U/nis.U b/mcon/U/nis.U
index 7332545..06e4c47 100644
--- a/mcon/U/nis.U
+++ b/mcon/U/nis.U
@@ -165,16 +165,4 @@ case "$passcat" in
'') passcat=':'
$test -f /etc/passwd && passcat='cat /etc/passwd';;
esac
-case "$hostcat" in
-'') hostcat='cat /etc/hosts';;
-*) ;;
-esac
-case "$groupcat" in
-'') groupcat='cat /etc/group';;
-*) ;;
-esac
-case "$passcat" in
-'') passcat='cat /etc/passwd';;
-*) ;;
-esac
diff --git a/mcon/U/voidflags.U b/mcon/U/voidflags.U
index 0e0f49c..5db1db9 100644
--- a/mcon/U/voidflags.U
+++ b/mcon/U/voidflags.U
@@ -111,6 +111,8 @@ sub() {
hue = buf;
if (doit())
iptr = hue;
+?X: Avoid "variable set but not used" compilation warning
+ (void) iptr;
#endif
doit();
}
diff --git a/mcon/man/mconfig.SH b/mcon/man/mconfig.SH
index bf49fe9..1dd8a97 100755
--- a/mcon/man/mconfig.SH
+++ b/mcon/man/mconfig.SH
@@ -18,88 +18,88 @@ echo "Extracting mcon/man/metaconfig.$manext (with variable substitutions)"
$rm -f metaconfig.$manext
$spitshell >metaconfig.$manext <<!GROK!THIS!
.TH METACONFIG $manext "Version $VERSION PL$PATCHLEVEL"
-''' @(#) Manual page for metaconfig
-'''
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: mconfig.SH,v $
-''' Revision 3.0.1.17 1997/02/28 16:29:31 ram
-''' patch61: documents the runnning environment and the src.U unit
-''' patch61: added warnings for $_a and $_o, as well as "startsh"
-'''
-''' Revision 3.0.1.16 1995/09/25 09:17:48 ram
-''' patch59: documented new ?Y: directive
-''' patch59: fixed my e-mail address
-'''
-''' Revision 3.0.1.15 1995/07/25 14:18:24 ram
-''' patch56: added extra nroff escapes at line heads to keep leading dots
-''' patch56: documented new -G option
-''' patch56: extended description of the Csym.U unit
-''' patch56: now mentions what a compile-link test line should look like
-'''
-''' Revision 3.0.1.14 1995/05/12 12:25:02 ram
-''' patch54: documented new -K switch for knowledgeable users
-'''
-''' Revision 3.0.1.13 1995/01/30 14:46:39 ram
-''' patch49: documented new special units Prefixit.U and Prefixup.U
-'''
-''' Revision 3.0.1.12 1995/01/11 15:39:16 ram
-''' patch45: documents new -O option and new Getfile escape supports
-''' patch45: documents the & escape in Myread and the new cc symbol lookup
-'''
-''' Revision 3.0.1.11 1994/10/29 16:32:38 ram
-''' patch36: added nroff protection for lines beginning with '.'
-''' patch36: documents new ?F: line for file declarations
-''' patch36: added example showing how ./loc can be used
-'''
-''' Revision 3.0.1.10 1994/08/29 16:33:40 ram
-''' patch32: documented new Typedef.U unit for typedef lookup
-'''
-''' Revision 3.0.1.9 1994/06/20 07:10:14 ram
-''' patch30: added -L option for easier unit testing
-''' patch30: new -D and -U options supported by Configure
-'''
-''' Revision 3.0.1.8 1994/05/13 15:29:16 ram
-''' patch27: now understands macro definitions in ?H: lines
-'''
-''' Revision 3.0.1.7 1994/05/06 15:19:25 ram
-''' patch23: documented the new 'p' option in Getfile.U
-'''
-''' Revision 3.0.1.6 1994/01/24 14:19:47 ram
-''' patch16: symbols defined in a unit can be tagged "internal use only"
-''' patch16: documents new MailList.U special unit
-''' patch16: new general <\$variable> macro substitution
-'''
-''' Revision 3.0.1.5 1993/10/16 13:51:50 ram
-''' patch12: new option -M to activate ?M: lines
-''' patch12: documents new ?M: lines format
-''' patch12: new internal Makefile command cm_h_weed for ?M: support
-''' patch12: documents usage for new confmagic.h file
-'''
-''' Revision 3.0.1.4 1993/09/09 11:50:35 ram
-''' patch9: lots of typo fixes and abusive variable substitution problems
-'''
-''' Revision 3.0.1.3 1993/08/30 08:53:51 ram
-''' patch8: wrongly stated that patchlevel.h should not be part of MANIFEST.new
-'''
-''' Revision 3.0.1.2 1993/08/24 12:13:32 ram
-''' patch3: typo fixes
-'''
-''' Revision 3.0.1.1 1993/08/19 06:42:23 ram
-''' patch1: leading config.sh searching was not aborting properly
-'''
-''' Revision 3.0 1993/08/18 12:10:14 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" @(#) Manual page for metaconfig
+.\"
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: mconfig.SH,v $
+.\" Revision 3.0.1.17 1997/02/28 16:29:31 ram
+.\" patch61: documents the runnning environment and the src.U unit
+.\" patch61: added warnings for $_a and $_o, as well as "startsh"
+.\"
+.\" Revision 3.0.1.16 1995/09/25 09:17:48 ram
+.\" patch59: documented new ?Y: directive
+.\" patch59: fixed my e-mail address
+.\"
+.\" Revision 3.0.1.15 1995/07/25 14:18:24 ram
+.\" patch56: added extra nroff escapes at line heads to keep leading dots
+.\" patch56: documented new -G option
+.\" patch56: extended description of the Csym.U unit
+.\" patch56: now mentions what a compile-link test line should look like
+.\"
+.\" Revision 3.0.1.14 1995/05/12 12:25:02 ram
+.\" patch54: documented new -K switch for knowledgeable users
+.\"
+.\" Revision 3.0.1.13 1995/01/30 14:46:39 ram
+.\" patch49: documented new special units Prefixit.U and Prefixup.U
+.\"
+.\" Revision 3.0.1.12 1995/01/11 15:39:16 ram
+.\" patch45: documents new -O option and new Getfile escape supports
+.\" patch45: documents the & escape in Myread and the new cc symbol lookup
+.\"
+.\" Revision 3.0.1.11 1994/10/29 16:32:38 ram
+.\" patch36: added nroff protection for lines beginning with '.'
+.\" patch36: documents new ?F: line for file declarations
+.\" patch36: added example showing how ./loc can be used
+.\"
+.\" Revision 3.0.1.10 1994/08/29 16:33:40 ram
+.\" patch32: documented new Typedef.U unit for typedef lookup
+.\"
+.\" Revision 3.0.1.9 1994/06/20 07:10:14 ram
+.\" patch30: added -L option for easier unit testing
+.\" patch30: new -D and -U options supported by Configure
+.\"
+.\" Revision 3.0.1.8 1994/05/13 15:29:16 ram
+.\" patch27: now understands macro definitions in ?H: lines
+.\"
+.\" Revision 3.0.1.7 1994/05/06 15:19:25 ram
+.\" patch23: documented the new 'p' option in Getfile.U
+.\"
+.\" Revision 3.0.1.6 1994/01/24 14:19:47 ram
+.\" patch16: symbols defined in a unit can be tagged "internal use only"
+.\" patch16: documents new MailList.U special unit
+.\" patch16: new general <\$variable> macro substitution
+.\"
+.\" Revision 3.0.1.5 1993/10/16 13:51:50 ram
+.\" patch12: new option -M to activate ?M: lines
+.\" patch12: documents new ?M: lines format
+.\" patch12: new internal Makefile command cm_h_weed for ?M: support
+.\" patch12: documents usage for new confmagic.h file
+.\"
+.\" Revision 3.0.1.4 1993/09/09 11:50:35 ram
+.\" patch9: lots of typo fixes and abusive variable substitution problems
+.\"
+.\" Revision 3.0.1.3 1993/08/30 08:53:51 ram
+.\" patch8: wrongly stated that patchlevel.h should not be part of MANIFEST.new
+.\"
+.\" Revision 3.0.1.2 1993/08/24 12:13:32 ram
+.\" patch3: typo fixes
+.\"
+.\" Revision 3.0.1.1 1993/08/19 06:42:23 ram
+.\" patch1: leading config.sh searching was not aborting properly
+.\"
+.\" Revision 3.0 1993/08/18 12:10:14 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.de Ex \" Start of Example
.sp
.in +5
@@ -541,9 +541,9 @@ The \fIfile\fR can contain blank lines, comment lines introduced with '#', and
lines containing a single symbol.
If this option is not supplied, any \fI$exclusions_file\fR variable in
\fI.package\fR is honored instead.
-'''
-''' T u t o r i a l
-'''
+.\"
+.\" T u t o r i a l
+.\"
.SH TUTORIAL
This (long) section is an introduction to \fImetaconfig\fR, in which we will
learn all the basics. If you already know how to use \fImetaconfig\fR, you
@@ -1742,6 +1742,25 @@ before prompting via \fIgetfile\fR for instance. If the prefix does not
make use of ~name expanstion, then the above will be a no-op on the \fI$dflt\fR
variable, naturally.
.TP
+Specific.U
+This unit is empty by default. It is meant as a project-specific hook
+to have shell code executed by \fIConfigure\fR after \fIconfig.sh\fR was
+generated but before the extraction of .SH files.
+.sp
+Copy the unit to your project's \fIU/\fR directory and customize it.
+.sp
+Here is what the \fIdist\fR project uses it for (showing only the unit's code,
+not the full unit here):
+.Ex
+: project-specific code
+file=revision.h
+echo " "
+echo "Generating \$file..." >&4
+bin/svn-revision . \$file
+.Ef
+That shell code is executed when \fIConfigure\fR is back to the top directory
+of the source tree.
+.TP
Typedef.U
This unit produces the \fI\$typedef\fR shell variable, used internally by
\fIConfigure\fR to check whether a typedef exists or not. A typical
diff --git a/mcon/man/mlint.SH b/mcon/man/mlint.SH
index 4f4177a..bdf80c8 100755
--- a/mcon/man/mlint.SH
+++ b/mcon/man/mlint.SH
@@ -18,54 +18,54 @@ echo "Extracting mcon/man/metalint.$manext (with variable substitutions)"
$rm -f metalint.$manext
$spitshell >metalint.$manext <<!GROK!THIS!
.TH METALINT $manext "Version $VERSION PL$PATCHLEVEL"
-''' @(#) Manual page for metalint
-'''
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: mlint.SH,v $
-''' Revision 3.0.1.9 1997/02/28 16:30:25 ram
-''' patch61: new "create" and "empty" lint directives
-''' patch61: documented new messages
-'''
-''' Revision 3.0.1.8 1995/09/25 09:18:07 ram
-''' patch59: documented new ?Y: directive
-''' patch59: fixed my e-mail address
-'''
-''' Revision 3.0.1.7 1995/07/25 14:18:51 ram
-''' patch56: added two new warnings for : comments lines in Configure
-'''
-''' Revision 3.0.1.6 1994/10/29 16:33:56 ram
-''' patch36: documents new ?F: lines and the related metalint warnings
-''' patch36: removed statement in BUGS since all warnings may now be shut
-'''
-''' Revision 3.0.1.5 1994/05/06 15:20:30 ram
-''' patch23: added -L switch to override public unit repository path
-''' patch23: two new warnings concerning last unit lines
-'''
-''' Revision 3.0.1.4 1994/01/24 14:20:39 ram
-''' patch16: can now easily suppress warning about made "special units"
-'''
-''' Revision 3.0.1.3 1993/11/10 17:37:39 ram
-''' patch14: documents stale ?M: dependency check
-'''
-''' Revision 3.0.1.2 1993/10/16 13:52:23 ram
-''' patch12: added support for ?M: lines and fixed some typos
-'''
-''' Revision 3.0.1.1 1993/08/19 06:42:24 ram
-''' patch1: leading config.sh searching was not aborting properly
-'''
-''' Revision 3.0 1993/08/18 12:10:15 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" @(#) Manual page for metalint
+.\"
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: mlint.SH,v $
+.\" Revision 3.0.1.9 1997/02/28 16:30:25 ram
+.\" patch61: new "create" and "empty" lint directives
+.\" patch61: documented new messages
+.\"
+.\" Revision 3.0.1.8 1995/09/25 09:18:07 ram
+.\" patch59: documented new ?Y: directive
+.\" patch59: fixed my e-mail address
+.\"
+.\" Revision 3.0.1.7 1995/07/25 14:18:51 ram
+.\" patch56: added two new warnings for : comments lines in Configure
+.\"
+.\" Revision 3.0.1.6 1994/10/29 16:33:56 ram
+.\" patch36: documents new ?F: lines and the related metalint warnings
+.\" patch36: removed statement in BUGS since all warnings may now be shut
+.\"
+.\" Revision 3.0.1.5 1994/05/06 15:20:30 ram
+.\" patch23: added -L switch to override public unit repository path
+.\" patch23: two new warnings concerning last unit lines
+.\"
+.\" Revision 3.0.1.4 1994/01/24 14:20:39 ram
+.\" patch16: can now easily suppress warning about made "special units"
+.\"
+.\" Revision 3.0.1.3 1993/11/10 17:37:39 ram
+.\" patch14: documents stale ?M: dependency check
+.\"
+.\" Revision 3.0.1.2 1993/10/16 13:52:23 ram
+.\" patch12: added support for ?M: lines and fixed some typos
+.\"
+.\" Revision 3.0.1.1 1993/08/19 06:42:24 ram
+.\" patch1: leading config.sh searching was not aborting properly
+.\"
+.\" Revision 3.0 1993/08/18 12:10:15 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.SH NAME
metalint \- a metaconfig unit consistency checker
.SH SYNOPSIS
@@ -260,11 +260,20 @@ The file is listed more than once on the ?F: line, under the same name.
This does not appear when declaring both a private UU file and a public
file with the same name, for instance.
.TP
-"(?F) UU file $uufile in non-special unit ignored."
+"(?F) UU file 'xxx' in non-special unit ignored."
Private UU files (i.e. files like the \fImyread\fR script created for
later perusal by \fIConfigure\fR) may only be created in special units.
Exceptions allowed if the ?F: line is preceded by a proper ?LINT: hint.
.TP
+"(?F) file 'xxx' already exported by yyy.U."
+The listed file 'xxx' is already reported exported (listed likewise) in
+the other unit yyy.U and is conflicting. An exported file is a generated
+file above the UU directory.
+.TP
+"(?F) UU file 'xxx' already created by yyy.U."
+The listed file 'xxx' is already created in the UU directory by the other
+unit yyy.U. A created file is listed as ./xxx on the ?F: line.
+.TP
"(?T) temporary symbol '\$xxx' multiply declared."
Self explanatory.
.TP
diff --git a/mcon/man/mxref.SH b/mcon/man/mxref.SH
index 359f959..229341e 100755
--- a/mcon/man/mxref.SH
+++ b/mcon/man/mxref.SH
@@ -18,35 +18,35 @@ echo "Extracting mcon/man/metaxref.$manext (with variable substitutions)"
$rm -f metaxref.$manext
$spitshell >metaxref.$manext <<!GROK!THIS!
.TH METAXREF $manext "Version $VERSION PL$PATCHLEVEL"
-''' @(#) Manual page for metaxref
-'''
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: mxref.SH,v $
-''' Revision 3.0.1.4 1997/02/28 16:30:39 ram
-''' patch61: new -L option to match metaconfig and metalint
-'''
-''' Revision 3.0.1.3 1994/10/29 16:34:26 ram
-''' patch36: the leading .TH was referring to metaconfig
-'''
-''' Revision 3.0.1.2 1993/10/16 13:52:46 ram
-''' patch12: added BUGS section
-'''
-''' Revision 3.0.1.1 1993/08/19 06:42:25 ram
-''' patch1: leading config.sh searching was not aborting properly
-'''
-''' Revision 3.0 1993/08/18 12:10:15 ram
-''' Baseline for dist 3.0 netwide release.
-'''
-'''
+.\" @(#) Manual page for metaxref
+.\"
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: mxref.SH,v $
+.\" Revision 3.0.1.4 1997/02/28 16:30:39 ram
+.\" patch61: new -L option to match metaconfig and metalint
+.\"
+.\" Revision 3.0.1.3 1994/10/29 16:34:26 ram
+.\" patch36: the leading .TH was referring to metaconfig
+.\"
+.\" Revision 3.0.1.2 1993/10/16 13:52:46 ram
+.\" patch12: added BUGS section
+.\"
+.\" Revision 3.0.1.1 1993/08/19 06:42:25 ram
+.\" patch1: leading config.sh searching was not aborting properly
+.\"
+.\" Revision 3.0 1993/08/18 12:10:15 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
+.\"
.SH NAME
metaxref \- builds cross-reference file/unit/item information
.SH SYNOPSIS
diff --git a/mcon/mconfig.SH b/mcon/mconfig.SH
index 4917e43..42a3dc1 100755
--- a/mcon/mconfig.SH
+++ b/mcon/mconfig.SH
@@ -70,8 +70,6 @@ chop($date = `date`);
use Getopt::Std;
&usage unless getopts("dhkmostvwGMVL:X:");
-my %excluded_symbol;
-read_exclusions($opt_X);
$MC = $opt_L if $opt_L; # May override public library path
$MC = &tilda_expand($MC); # ~name expansion
chop($WD = `pwd`); # Working directory
@@ -93,6 +91,8 @@ unlink 'Wanted' unless $opt_w; # Wanted rebuilt if no -w
unlink 'Obsolete' unless $opt_w; # Obsolete file rebuilt if no -w
&readpackage; # Merely get the package's name
&init; # Various initializations
+my %excluded_symbol;
+read_exclusions($opt_X); # Load -X or .package equivalent
`mkdir .MT 2>&1` unless -d '.MT'; # For private temporary files
&locate_units; # Fill in @ARGV with a unit list
diff --git a/mcon/mxref.SH b/mcon/mxref.SH
index 3433edc..fa9e44e 100755
--- a/mcon/mxref.SH
+++ b/mcon/mxref.SH
@@ -64,8 +64,6 @@ use Getopt::Std;
chop($date = `date`);
chop($WD = `pwd`); # Working directory
-my %excluded_symbol;
-read_exclusions($opt_X);
$MC = $opt_L if $opt_L; # May override library path
$MC = &tilda_expand($MC); # ~name expansion
chdir $MC || die "Can't chdir to $MC: $!\n";
@@ -81,7 +79,10 @@ if ($opt_V) {
$NEWMANI = $opt_f || (-f 'MANIFEST.new' ? 'MANIFEST.new' : 'MANIFEST');
+&readpackage; # Merely get the package's name
&init; # Various initializations
+my %excluded_symbol;
+read_exclusions($opt_X); # Load -X or .package equivalent
`mkdir .MT 2>&1` unless -d '.MT'; # For private temporary files
unlink 'Obsolete'; # Obsolete file rebuilt
diff --git a/mcon/pl/lint.pl b/mcon/pl/lint.pl
index 0120c51..e73f0fd 100644
--- a/mcon/pl/lint.pl
+++ b/mcon/pl/lint.pl
@@ -78,6 +78,7 @@ sub init_extraction {
%filetmp = (); # Local temporary files in ?F: directives
%filesetin = (); # Lists units defining a temporary file
%filecreated = (); # Records files created in this unit
+ %filedefined = (); # Records units that export a given file
%prodfile = (); # Unit where a given file is said to be created
%defseen = (); # Symbol defintions claimed
%lintset = (); # Symbols declared set by a ?LINT: line
@@ -622,15 +623,30 @@ sub p_file {
}
$prodfile{$file} .= "$unit " if $fileseen{$file} == 1;
($uufile = $file) =~ s|^\./(\S+)$|$1|;
- next if $file eq $uufile; # Don't care about non-UU files
+ if ($file eq $uufile) {
+ # This is a non-UU files created and not a temporary file
+ # It is meant to be exported by Configure
+ if (exists $filedefined{$file}) {
+ my $other = $filedefined{$file};
+ warn "$where: file '$file' already exported by $other.U.\n";
+ } else {
+ $filedefined{$file} = $unit;
+ }
+ next;
+ }
unless ($is_special || $lintcreated{$uufile}) {
warn "$where: UU file '$uufile' in non-special unit ignored.\n";
delete $lintcreated{$uufile}; # Detect spurious LINT
next;
}
delete $lintcreated{$uufile} if !$is_special; # Detect spurious LINT
- $filemaster{$uufile} = $unit unless defined $filemaster{$uufile};
- $filecreated{$uufile} = 'a'; # Will be automagically incremented
+ if (exists $filemaster{$uufile}) {
+ my $other = $filemaster{$uufile};
+ warn "$where: UU file '$uufile' already created by $other.U.\n";
+ } else {
+ $filemaster{$uufile} = $unit;
+ $filecreated{$uufile} = 'a'; # Will be automagically incremented
+ }
}
}
@@ -1308,6 +1324,7 @@ sub sanity_checks {
undef %shspecial;
undef %shvisible;
undef %filemaster;
+ undef %filedefined;
# Spot multiply defined C symbols
foreach $sym (keys %cmaster) {
diff --git a/pat/pat.man b/pat/pat.man
index 48cd567..c5d29c4 100644
--- a/pat/pat.man
+++ b/pat/pat.man
@@ -1,42 +1,42 @@
.rn '' }`
-''' $Id$
-'''
-''' Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
-'''
-''' You may redistribute only under the terms of the Artistic Licence,
-''' as specified in the README file that comes with the distribution.
-''' You may reuse parts of this distribution only within the terms of
-''' that same Artistic Licence; a copy of which may be found at the root
-''' of the source tree for dist 4.0.
-'''
-''' $Log: pat.man,v $
-''' Revision 3.0.1.7 1997/02/28 16:32:45 ram
-''' patch61: documents contents of the message sent by patnotify
-'''
-''' Revision 3.0.1.6 1995/09/25 09:20:41 ram
-''' patch59: new -i option for patsend to add extra instructions
-'''
-''' Revision 3.0.1.5 1995/05/12 12:25:28 ram
-''' patch54: updated my e-mail address
-'''
-''' Revision 3.0.1.4 1994/10/29 16:38:31 ram
-''' patch36: documents new patlog script and the files it uses
-''' patch36: the RCS layer section has been extended slightly
-'''
-''' Revision 3.0.1.3 1993/08/27 14:40:19 ram
-''' patch7: random cleanup
-'''
-''' Revision 3.0.1.2 1993/08/25 14:05:02 ram
-''' patch6: new -q option for patsend and patnotify
-'''
-''' Revision 3.0.1.1 1993/08/24 12:15:42 ram
-''' patch3: added patnotify and patsnap
-''' patch3: patcol has a new -S option
-''' patch3: the users file built by mailagent is now listed under FILES
-'''
-''' Revision 3.0 1993/08/18 12:10:37 ram
-''' Baseline for dist 3.0 netwide release.
-'''
+.\" $Id$
+.\"
+.\" Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi
+.\"
+.\" You may redistribute only under the terms of the Artistic Licence,
+.\" as specified in the README file that comes with the distribution.
+.\" You may reuse parts of this distribution only within the terms of
+.\" that same Artistic Licence; a copy of which may be found at the root
+.\" of the source tree for dist 4.0.
+.\"
+.\" $Log: pat.man,v $
+.\" Revision 3.0.1.7 1997/02/28 16:32:45 ram
+.\" patch61: documents contents of the message sent by patnotify
+.\"
+.\" Revision 3.0.1.6 1995/09/25 09:20:41 ram
+.\" patch59: new -i option for patsend to add extra instructions
+.\"
+.\" Revision 3.0.1.5 1995/05/12 12:25:28 ram
+.\" patch54: updated my e-mail address
+.\"
+.\" Revision 3.0.1.4 1994/10/29 16:38:31 ram
+.\" patch36: documents new patlog script and the files it uses
+.\" patch36: the RCS layer section has been extended slightly
+.\"
+.\" Revision 3.0.1.3 1993/08/27 14:40:19 ram
+.\" patch7: random cleanup
+.\"
+.\" Revision 3.0.1.2 1993/08/25 14:05:02 ram
+.\" patch6: new -q option for patsend and patnotify
+.\"
+.\" Revision 3.0.1.1 1993/08/24 12:15:42 ram
+.\" patch3: added patnotify and patsnap
+.\" patch3: patcol has a new -S option
+.\" patch3: the users file built by mailagent is now listed under FILES
+.\"
+.\" Revision 3.0 1993/08/18 12:10:37 ram
+.\" Baseline for dist 3.0 netwide release.
+.\"
.de Sh
.br
.ne 5
diff --git a/pat/patcil.SH b/pat/patcil.SH
index a4fae23..642bac2 100755
--- a/pat/patcil.SH
+++ b/pat/patcil.SH
@@ -61,8 +61,6 @@ $startperl
!GROK!THIS!
cat >>patcil <<'!NO!SUBS!'
-use File::Temp qw/ tempfile tempdir /;
-
$progname = &profile; # Read ~/.dist_profile
require 'getopts.pl';
&usage unless $#ARGV >= 0;
@@ -506,12 +504,12 @@ x Toggle patch# prefix.
sub edit {
local($text) = join("\n", @_);
- my $tmp = File::Temp->new();
- print $tmp $text;
- close $tmp;
- system $EDITOR, "$tmp";
- $text = `cat "$tmp"`;
- unlink "$tmp";
+ open(TMP,">/tmp/cil$$") || die "Can't create /tmp/cil$$";
+ print TMP $text;
+ close TMP;
+ system $EDITOR, "/tmp/cil$$";
+ $text = `cat /tmp/cil$$`;
+ unlink "/tmp/cil$$";
$text;
}
diff --git a/pat/patdiff.SH b/pat/patdiff.SH
index ed4e97b..0c74c9a 100755
--- a/pat/patdiff.SH
+++ b/pat/patdiff.SH
@@ -49,8 +49,6 @@ $startperl
!GROK!THIS!
cat >>patdiff <<'!NO!SUBS!'
-use File::Temp qw/ tempfile tempdir /;
-
$RCSEXT = ',v' unless $RCSEXT;
$TOPDIR = ''; # We are at top-level directory
@@ -161,11 +159,9 @@ foreach $file (@ARGV) {
close DIFF;
system 'rcs', "-Nlastpat:$new", @files;
} else {
- my $tmpo = File::Temp->new();
- my $tmpn = File::Temp->new();
- &copyright'expand("co -p -rlastpat $file", "$tmpo");
- &copyright'expand("co -p -r$new $file", "$tmpn");
- open(DIFF, "$mydiff $tmpo $tmpn |") ||
+ &copyright'expand("co -p -rlastpat $file", "/tmp/pdo$$");
+ &copyright'expand("co -p -r$new $file", "/tmp/pdn$$");
+ open(DIFF, "$mydiff /tmp/pdo$$ /tmp/pdn$$ |") ||
die "Can't run $mydiff";
while (<DIFF>) { # Contextual or unified diff
if ($. == 1) {
@@ -181,7 +177,7 @@ foreach $file (@ARGV) {
}
close DIFF;
system 'rcs', "-Nlastpat:$new", @files;
- unlink "$tmpo", "$tmpn";
+ unlink "/tmp/pdn$$", "/tmp/pdo$$";
}
} else {
if ($mydiff eq '') {
@@ -195,11 +191,9 @@ foreach $file (@ARGV) {
}
close DIFF;
} else {
- my $tmpo = File::Temp->new();
- my $tmpn = File::Temp->new();
- system "co -p -rlastpat $files >$tmpo";
- system "cp $file $tmpn";
- open(DIFF, "$mydiff $tmpo $tmpn |") ||
+ system "co -p -rlastpat $files >/tmp/pdo$$";
+ system "cp $file /tmp/pdn$$";
+ open(DIFF, "$mydiff /tmp/pdo$$ /tmp/pdn$$ |") ||
die "$progname: can't fork $mydiff: $!\n";
while (<DIFF>) {
# Contextual or unified diff
@@ -215,7 +209,7 @@ foreach $file (@ARGV) {
print PATCH;
}
close DIFF;
- unlink "$tmpo", "$tmpn";
+ unlink "/tmp/pdn$$", "/tmp/pdo$$";
}
}
}
diff --git a/pat/patlog.SH b/pat/patlog.SH
index 1588af4..ff7a81f 100755
--- a/pat/patlog.SH
+++ b/pat/patlog.SH
@@ -252,7 +252,7 @@ system 'perl', '-S', 'patdiff', $changelog;
exit 0; # All done.
-# Returns true if .clog and .rlog (it it exists) are newer than .xlog.
+# Returns true if .clog and .rlog (if it exists) are newer than .xlog.
sub newertmp {
return 1 unless -f ".xlog$bnum"; # To force regeneration
return 1 if &newer(".clog$bnum", ".xlog$bnum") ||
diff --git a/pl/makedir.pl b/pl/makedir.pl
index a358deb..37b9253 100644
--- a/pl/makedir.pl
+++ b/pl/makedir.pl
@@ -22,7 +22,7 @@ sub makedir {
local($dir) = $_;
if (!-d && $_ ne '') {
# Make dirname first
- do makedir($_) if s|(.*)/.*|\1|;
+ &makedir($_) if s|(.*)/.*|\1|;
mkdir($dir, 0700) if ! -d $dir;
}
}
diff --git a/pl/rcsargs.pl b/pl/rcsargs.pl
index 8fdeab1..09a7cd9 100644
--- a/pl/rcsargs.pl
+++ b/pl/rcsargs.pl
@@ -19,11 +19,11 @@ sub rcsargs {
while ($_ = shift(@_)) {
if ($_ =~ /^-/) {
$result .= $_ . ' ';
- } elsif ($#_ >= 0 && do equiv($_,$_[0])) {
+ } elsif ($#_ >= 0 && &equiv($_,$_[0])) {
$result .= $_ . ' ' . $_[0] . ' ';
shift(@_);
} else {
- $result .= $_ . ' ' . do other($_) . ' ';
+ $result .= $_ . ' ' . &other($_) . ' ';
}
}
$result;