?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: alignbytes.U,v $ ?RCS: Revision 3.0.1.2 1994/10/29 16:02:28 ram ?RCS: patch36: added ?F: line for metalint file checking ?RCS: ?RCS: Revision 3.0.1.1 1994/05/06 14:25:20 ram ?RCS: patch23: avoid ALIGNBYTES, since it conflicts on NetBSD ?RCS: ?RCS: Revision 3.0 1993/08/18 12:05:23 ram ?RCS: Baseline for dist 3.0 netwide release. ?RCS: ?MAKE:alignbytes: Myread cat cc ccflags rm ?MAKE: -pick add $@ %< ?S:alignbytes: ?S: This variable holds the number of bytes required to align a ?S: double. Usual values are 2, 4 and 8. ?S:. ?X: This used to be called ALIGNBYTES, but that conflicts with ?X: in NetBSD. ?C:MEM_ALIGNBYTES (ALIGNBYTES): ?C: This symbol contains the number of bytes required to align a ?C: double. Usual values are 2, 4 and 8. ?C:. ?H:#define MEM_ALIGNBYTES $alignbytes /**/ ?H:. ?F:!try : check for alignment requirements echo " " case "$alignbytes" in '') echo "Checking alignment constraints..." >&4 $cat >try.c <<'EOCP' struct foobar { char foo; double bar; } try; int main() { printf("%d\n", (char *)&try.bar - (char *)&try.foo); } EOCP if $cc $ccflags try.c -o try >/dev/null 2>&1; then dflt=`./try` else dflt='8' echo "(I can't seem to compile the test program...)" fi ;; *) dflt="$alignbytes" ;; esac rp="Doubles must be aligned on a how-many-byte boundary?" . ./myread alignbytes="$ans" $rm -f try.c try