summaryrefslogtreecommitdiff
path: root/U/mallocsrc.U
blob: 9fd5382533a34e4594faf24d6d0fb49a9aa6a9a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
?RCS: $Id: mallocsrc.U,v 3.0 1993/08/18 12:09:12 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: mallocsrc.U,v $
?RCS: Revision 3.0  1993/08/18  12:09:12  ram
?RCS: Baseline for dist 3.0 netwide release.
?RCS:
?MAKE:mallocsrc mallocobj usemymalloc malloctype d_mymalloc: Myread Oldconfig package \
	Guess Setvar test rm cat +cc +ccflags Findhdr
?MAKE:	-pick add $@ %<
?S:usemymalloc:
?S:	This variable contains y if the malloc that comes with this package
?S:	is desired over the system's version of malloc.  People often include
?S:	special versions of malloc for effiency, but such versions are often
?S:	less portable.  See also mallocsrc and mallocobj.
?S:.
?S:mallocsrc:
?S:	This variable contains the name of the malloc.c that comes with
?S:	the package, if that malloc.c is preferred over the system malloc.
?S:	Otherwise the value is null.  This variable is intended for generating
?S:	Makefiles.
?S:.
?S:d_mymalloc:
?S:	This variable conditionally defines MYMALLOC in case other parts
?S:	of the source want to take special action if MYMALLOC is used.
?S:	This may include different sorts of profiling or error detection.
?S:.
?S:mallocobj:
?S:	This variable contains the name of the malloc.o that this package
?S:	generates, if that malloc.o is preferred over the system malloc.
?S:	Otherwise the value is null.  This variable is intended for generating
?S:	Makefiles.  See mallocsrc.
?S:.
?S:malloctype:
?S:	This variable contains the kind of ptr returned by malloc and realloc.
?S:.
?C:Malloc_t (MALLOCPTRTYPE):
?C:	This symbol is the type of pointer returned by malloc and realloc.
?C:.
?H:#define Malloc_t $malloctype			/**/
?H:.
?C:MYMALLOC:
?C:	This symbol, if defined, indicates that we're using our own malloc.
?C:.
?H:#$d_mymalloc MYMALLOC			/**/
?H:.
?X: Cannot test for mallocsrc; it is the unit's name and there is a bug in
?X: the interpreter which defines all the names, even though they are not used.
@if mallocobj
: determine which malloc to compile in
:  Old versions had dflt='y' only for bsd or v7.
echo " "
case "$usemymalloc" in
'')
	if bsd || v7; then
		dflt='y'
	else
		dflt='y'
	fi
	;;
*)  dflt="$usemymalloc"
	;;
esac
rp="Do you wish to attempt to use the malloc that comes with $package?"
. ./myread
usemymalloc="$ans"
case "$ans" in
y*) mallocsrc='malloc.c'
    mallocobj='malloc.o'
    d_mymalloc="$define"
    ;;
*) mallocsrc=''
   mallocobj=''
   d_mymalloc="$undef"
   ;;
esac
@end

@if MALLOCPTRTYPE || Malloc_t
: compute the type returned by malloc
echo " "
case "$malloctype" in
'')
	if $test `./findhdr malloc.h`; then
		echo "#include <malloc.h>" > malloc.c
	fi
#include <malloc.h>
	$cat >>malloc.c <<'END'
void *malloc();
END
	if $cc $ccflags -c malloc.c >/dev/null 2>&1; then
		malloctype='void *'
	else
		malloctype='char *'
	fi
	$rm -f malloc.[co]
	;;
esac
echo "Your system wants malloc to return '$malloctype', it would seem." >&4

@end