diff options
author | rmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d> | 2006-08-24 12:32:52 +0000 |
---|---|---|
committer | rmanfredi <rmanfredi@2592e710-e01b-42a5-8df0-11608a6cc53d> | 2006-08-24 12:32:52 +0000 |
commit | 0e57f0c510b7d7eb688695359048a1f0a585e26a (patch) | |
tree | dee05e98bc53766d609ef2a3a07a5672627d812c /mcon/U/intsize.U |
Moving project to sourceforge.
git-svn-id: svn://svn.code.sf.net/p/dist/code/trunk/dist@1 2592e710-e01b-42a5-8df0-11608a6cc53d
Diffstat (limited to 'mcon/U/intsize.U')
-rw-r--r-- | mcon/U/intsize.U | 124 |
1 files changed, 124 insertions, 0 deletions
diff --git a/mcon/U/intsize.U b/mcon/U/intsize.U new file mode 100644 index 0000000..38c5414 --- /dev/null +++ b/mcon/U/intsize.U @@ -0,0 +1,124 @@ +?RCS: $Id$ +?RCS: +?RCS: Copyright (c) 1991-1997, 2004-2006, Raphael Manfredi +?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 4.0. +?RCS: +?RCS: $Log: intsize.U,v $ +?RCS: Revision 3.0.1.2 1997/02/28 15:55:26 ram +?RCS: patch61: avoid prompting the user if the test runs ok +?RCS: patch61: moved code from longsize.U into there +?RCS: patch61: new tests for shortsize as well +?RCS: +?RCS: Revision 3.0.1.1 1994/10/29 16:21:06 ram +?RCS: patch36: added ?F: line for metalint file checking +?RCS: +?RCS: Revision 3.0 1993/08/18 12:08:52 ram +?RCS: Baseline for dist 3.0 netwide release. +?RCS: +?MAKE:intsize longsize shortsize: \ + Myread cat rm +cc +optimize +ccflags +ldflags +libs +?MAKE: -pick add $@ %< +?S:intsize: +?S: This variable contains the value of the INTSIZE symbol, which +?S: indicates to the C program how many bytes there are in an int. +?S:. +?S:longsize: +?S: This variable contains the value of the LONGSIZE symbol, which +?S: indicates to the C program how many bytes there are in a long. +?S:. +?S:shortsize: +?S: This variable contains the value of the SHORTSIZE symbol which +?S: indicates to the C program how many bytes there are in a short. +?S:. +?C:INTSIZE: +?C: This symbol contains the value of sizeof(int) so that the C +?C: preprocessor can make decisions based on it. +?C:. +?C:LONGSIZE: +?C: This symbol contains the value of sizeof(long) so that the C +?C: preprocessor can make decisions based on it. +?C:. +?C:SHORTSIZE: +?C: This symbol contains the value of sizeof(short) so that the C +?C: preprocessor can make decisions based on it. +?C:. +?H:#define INTSIZE $intsize /**/ +?H:#define LONGSIZE $longsize /**/ +?H:#define SHORTSIZE $shortsize /**/ +?H:. +?F:!intsize.out !intsize +: check for lengths of integral types +echo " " +case "$intsize" in +'') + echo "Checking to see how big your integers are..." >&4 + $cat >intsize.c <<'EOCP' +#include <stdio.h> +int main() +{ +@if INTSIZE || intsize + printf("intsize=%d;\n", sizeof(int)); +@end +@if LONGSIZE || longsize + printf("longsize=%d;\n", sizeof(long)); +@end +@if SHORTSIZE || shortsize + printf("shortsize=%d;\n", sizeof(short)); +@end + fflush(stdout); + exit(0); +} +EOCP +# If $libs contains -lsfio, and sfio is mis-configured, then it +# sometimes (apparently) runs and exits with a 0 status, but with no +# output!. Thus we check with test -s whether we actually got any +# output. I think it has to do with sfio's use of _exit vs. exit, +# but I don't know for sure. --Andy Dougherty 1/27/97. + if $cc $optimize $ccflags $ldflags -o intsize intsize.c $libs >/dev/null 2>&1 && + ./intsize > intsize.out 2>/dev/null && test -s intsize.out ; then + eval `$cat intsize.out` +@if INTSIZE || intsize + echo "Your integers are $intsize bytes long." +@end +@if LONGSIZE || longsize + echo "Your long integers are $longsize bytes long." +@end +@if SHORTSIZE || shortsize + echo "Your short integers are $shortsize bytes long." +@end + else + $cat >&4 <<EOM +! +Help! I can't compile and run the intsize test program: please enlighten me! +(This is probably a misconfiguration in your system or libraries, and +you really ought to fix it. Still, I'll try anyway.) +! +EOM +@if INTSIZE || intsize + dflt=4 + rp="What is the size of an integer (in bytes)?" + . ./myread + intsize="$ans" +@end +@if LONGSIZE || longsize + dflt=$intsize + rp="What is the size of a long integer (in bytes)?" + . ./myread + longsize="$ans" +@end +@if SHORTSIZE || shortsize + dflt=2 + rp="What is the size of a short integer (in bytes)?" + . ./myread + shortsize="$ans" +@end + fi + ;; +esac +$rm -f intsize intsize.[co] intsize.out + |