?RCS: $Id: ptrsize.U,v 3.0.1.1 1994/10/29 16:28:19 ram Exp $
?RCS:
?RCS: Copyright (c) 1991-1993, 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 3.0.
?RCS:
?RCS: $Log: ptrsize.U,v $
?RCS: Revision 3.0.1.1  1994/10/29  16:28:19  ram
?RCS: patch36: added ?F: line for metalint file checking
?RCS:
?RCS: Revision 3.0  1993/08/18  12:09:37  ram
?RCS: Baseline for dist 3.0 netwide release.
?RCS:
?MAKE:ptrsize: cat rm_try Myread Compile run use64bitall i_stdlib d_quad
?MAKE:	-pick add $@ %<
?S:ptrsize:
?S:	This variable contains the value of the PTRSIZE symbol, which
?S:	indicates to the C program how many bytes there are in a pointer.
?S:.
?C:PTRSIZE:
?C:	This symbol contains the size of a pointer, so that the C preprocessor
?C:	can make decisions based on it.  It will be sizeof(void *) if
?C:	the compiler supports (void *); otherwise it will be
?C:	sizeof(char *).
?C:.
?H:#define PTRSIZE $ptrsize		/**/
?H:.
?F:!try
?LINT:extern use64bitint
: check for length of pointer
echo " "
case "$ptrsize" in
'')
	echo "Checking to see how big your pointers are..." >&4
	$cat >try.c <<EOCP
#include <stdio.h>
#$i_stdlib I_STDLIB
#ifdef I_STDLIB
#include <stdlib.h>
#endif
int main()
{
    printf("%d\n", (int)sizeof(void *));
    exit(0);
}
EOCP
	set try
	if eval $compile_ok; then
		ptrsize=`$run ./try`
		echo "Your pointers are $ptrsize bytes long."
	else
		dflt='4'
		echo "(I can't seem to compile the test program.  Guessing...)" >&4
		rp="What is the size of a pointer (in bytes)?"
		. ./myread
		ptrsize="$ans"
	fi
	;;
esac
$rm_try
case "$use64bitall" in
"$define"|true|[yY]*)
	case "$ptrsize" in
	4)	cat <<EOM >&4

*** You have chosen a maximally 64-bit build,
*** but your pointers are only 4 bytes wide.
*** Please rerun Configure without -Duse64bitall.
EOM
		case "$d_quad" in
		define)
			cat <<EOM >&4
*** Since you have quads, you could possibly try with -Duse64bitint.
EOM
			;;
		esac
		cat <<EOM >&4
*** Cannot continue, aborting.

EOM

		exit 1
		;;
	esac
	;;
esac

