summaryrefslogtreecommitdiff
path: root/mcon/U
diff options
context:
space:
mode:
Diffstat (limited to 'mcon/U')
-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.U3
-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_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
17 files changed, 140 insertions, 34 deletions
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..13c970d 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
@@ -138,4 +138,3 @@ $rm -f kit*isdone ark*isdone
$rm -rf UU
: End of Configure
-
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_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();
}