?RCS: $Id: intsize.U,v 3.0.1.2 1997/02/28 15:55:26 ram Exp $ ?RCS: ?RCS: Copyright (c) 1991-1993, 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 3.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 : 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 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 <