Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/ee/create.make
39475 views
1
#!/bin/sh
2
3
#
4
# This script will determine if the system is a System V or BSD based
5
# UNIX system and create a makefile for ee appropriate for the system.
6
#
7
# $Header: /home/hugh/sources/old_ae/RCS/create.make,v 1.13 2002/09/23 04:18:13 hugh Exp $
8
#
9
10
#set -x
11
12
name_string="`uname`"
13
14
# test for existence of termcap (exists on both BSD and SysV systems)
15
16
if [ -f /etc/termcap -o -f /usr/share/lib/termcap -o -f /usr/share/misc/termcap ]
17
then
18
if [ -f /usr/share/lib/termcap ]
19
then
20
termcap_exists="-DTERMCAP=\"\\\"/usr/share/lib/termcap\\\"\""
21
elif [ -f /usr/share/misc/termcap ]
22
then
23
termcap_exists="-DTERMCAP=\"\\\"/usr/share/misc/termcap\\\"\""
24
elif [ -f /etc/termcap ]
25
then
26
termcap_exists="-DTERMCAP=\"\\\"/etc/termcap\\\"\""
27
fi
28
else
29
termcap_exists=""
30
fi
31
32
# test for terminfo directory (exists on SysV systems)
33
34
if [ -d /usr/lib/terminfo -o -d /usr/share/lib/terminfo -o -d /usr/share/terminfo ]
35
then
36
terminfo_exists=""
37
else
38
terminfo_exists="-DCAP"
39
fi
40
41
# test for existence of termio header (on SysV systems)
42
43
if [ -f /usr/include/termio.h ]
44
then
45
termio="-DSYS5"
46
else
47
termio=""
48
fi
49
50
# test for sgtty header (on BSD systems)
51
52
if [ -f /usr/include/sgtty.h ]
53
then
54
sgtty="TRUE"
55
else
56
sgtty=""
57
fi
58
59
# look for select call in headers, make sure headers exist
60
61
HEADER_FILES=""
62
63
if [ -f /usr/include/sys/time.h ]
64
then
65
HEADER_FILES="/usr/include/sys/time.h "
66
fi
67
68
if [ -f /usr/include/sys/types.h ]
69
then
70
HEADER_FILES="$HEADER_FILES /usr/include/sys/types.h"
71
fi
72
73
# check for unistd.h
74
75
if [ -f /usr/include/unistd.h ]
76
then
77
HAS_UNISTD=-DHAS_UNISTD
78
HEADER_FILES="$HEADER_FILES /usr/include/unistd.h"
79
else
80
HAS_UNISTD=""
81
fi
82
83
if [ -n "$HEADER_FILES" ]
84
then
85
string="`grep select $HEADER_FILES`"
86
if [ -n "$string" ]
87
then
88
BSD_SELECT="-DBSD_SELECT"
89
else
90
BSD_SELECT=""
91
fi
92
fi
93
94
# check for existence of select.h (on AIX)
95
96
if [ -f /usr/include/sys/select.h ]
97
then
98
select_hdr="-DSLCT_HDR"
99
else
100
select_hdr=""
101
fi
102
103
# check for stdlib.h
104
105
if [ -f /usr/include/stdlib.h ]
106
then
107
HAS_STDLIB=-DHAS_STDLIB
108
else
109
HAS_STDLIB=""
110
fi
111
112
# check for stdarg.h
113
114
if [ -f /usr/include/stdarg.h ]
115
then
116
HAS_STDARG=-DHAS_STDARG
117
else
118
HAS_STDARG=""
119
fi
120
121
# check for ctype.h
122
123
if [ -f /usr/include/ctype.h ]
124
then
125
HAS_CTYPE=-DHAS_CTYPE
126
else
127
HAS_CTYPE=""
128
fi
129
130
# check for sys/ioctl.h
131
132
if [ -f /usr/include/sys/ioctl.h ]
133
then
134
HAS_SYS_IOCTL=-DHAS_SYS_IOCTL
135
else
136
HAS_SYS_IOCTL=""
137
fi
138
139
# check for sys/wait.h
140
141
if [ -f /usr/include/sys/wait.h ]
142
then
143
HAS_SYS_WAIT=-DHAS_SYS_WAIT
144
else
145
HAS_SYS_WAIT=""
146
fi
147
148
# check for localization headers
149
150
if [ -f /usr/include/locale.h -a -f /usr/include/nl_types.h ]
151
then
152
catgets=""
153
else
154
catgets="-DNO_CATGETS"
155
fi
156
157
# make decisions about use of new_curse.c (use of new_curse is recommended
158
# rather than local curses)
159
160
if [ -n "$terminfo_exists" -a -z "$termcap_exists" ]
161
then
162
echo "Neither terminfo or termcap are on this system! "
163
if [ -f /usr/include/curses.h ]
164
then
165
echo "Relying on local curses implementation."
166
else
167
cat <<-EOF
168
Don't know where to find curses, you'll need to modify
169
source code to be able to build!
170
171
Modify the file make.default and build ee by typing:
172
173
make -f make.default
174
175
EOF
176
177
exit 1
178
fi
179
180
TARGET="curses"
181
curses=""
182
else
183
curses="-DNCURSE"
184
TARGET="ee"
185
fi
186
187
if [ -z "$termio" -a -z "$sgtty" ]
188
then
189
echo "Neither termio.h or sgtty.h are on this system! "
190
if [ -f /usr/include/curses.h ]
191
then
192
echo "Relying on local curses implementation."
193
else
194
cat <<-EOF
195
Don't know where to find curses, you'll need to modify
196
source code to be able to build!
197
198
Modify the file make.default and build ee by typing:
199
200
make -f make.default
201
202
EOF
203
204
exit 1
205
fi
206
207
TARGET="curses"
208
curses=""
209
fi
210
211
# check if this is a SunOS system
212
213
if [ -d /usr/5include ]
214
then
215
five_include="-I/usr/5include"
216
else
217
five_include=""
218
fi
219
220
if [ -d /usr/5lib ]
221
then
222
five_lib="-L/usr/5lib"
223
else
224
five_lib=""
225
fi
226
227
228
if [ "$name_string" = "Darwin" ]
229
then
230
if [ -n "$CFLAGS" ]
231
then
232
other_cflags="${CFLAGS} -DNO_CATGETS"
233
else
234
other_cflags="-DNO_CATGETS"
235
fi
236
else
237
238
if [ -n "$CFLAGS" ]
239
then
240
if [ -z "`echo $CFLAGS | grep '[-]g'`" ]
241
then
242
other_cflags="${CFLAGS} -s"
243
else
244
other_cflags="${CFLAGS}"
245
fi
246
else
247
other_cflags="-s"
248
fi
249
fi
250
251
# time to write the makefile
252
253
echo "Generating make.local"
254
255
if [ -f make.local ]
256
then
257
mv make.local make.lcl.old
258
fi
259
260
echo "DEFINES = $termio $terminfo_exists $BSD_SELECT $catgets $select $curses " > make.local
261
echo "" >> make.local
262
echo "CFLAGS = $HAS_UNISTD $HAS_STDARG $HAS_STDLIB $HAS_CTYPE $HAS_SYS_IOCTL $HAS_SYS_WAIT $five_lib $five_include $select_hdr $other_cflags $termcap_exists" >> make.local
263
echo "" >> make.local
264
echo "" >> make.local
265
echo "all : $TARGET" >> make.local
266
267
cat >> make.local << EOF
268
269
curses : ee.c
270
cc ee.c -o ee \$(CFLAGS) -lcurses
271
272
ee : ee.o new_curse.o
273
cc -o ee ee.o new_curse.o \$(CFLAGS)
274
275
ee.o : ee.c new_curse.h
276
cc -c ee.c \$(DEFINES) \$(CFLAGS)
277
278
new_curse.o : new_curse.c new_curse.h
279
cc new_curse.c -c \$(DEFINES) \$(CFLAGS)
280
281
EOF
282
283
if [ -f make.lcl.old ]
284
then
285
diffs="`cmp make.lcl.old make.local`"
286
if [ -n "${diffs}" ]
287
then
288
rm -f ee.o new_curse.o ee
289
fi
290
rm -f make.lcl.old
291
fi
292
293
294