1192830Sed#!/bin/sh
2192830Sed
3192830Sed#
4192830Sed#	This script will determine if the system is a System V or BSD based
5192830Sed#	UNIX system and create a makefile for ee appropriate for the system.
6192830Sed#
7192914Sed# $Header: /home/hugh/sources/old_ae/RCS/create.make,v 1.13 2002/09/23 04:18:13 hugh Exp $
8192830Sed#
9192830Sed
10192914Sed#set -x
11192914Sed
12192914Sedname_string="`uname`"
13192914Sed
14192830Sed# test for existence of termcap (exists on both BSD and SysV systems)
15192830Sed
16192830Sedif [ -f /etc/termcap -o -f /usr/share/lib/termcap -o -f /usr/share/misc/termcap ]
17192830Sedthen
18192914Sed	if [ -f /usr/share/lib/termcap ]
19192914Sed	then
20192914Sed		termcap_exists="-DTERMCAP=\"\\\"/usr/share/lib/termcap\\\"\""
21192914Sed	elif [ -f /usr/share/misc/termcap ]
22192914Sed	then
23192914Sed		termcap_exists="-DTERMCAP=\"\\\"/usr/share/misc/termcap\\\"\""
24192914Sed	elif [ -f /etc/termcap ]
25192914Sed	then
26192914Sed		termcap_exists="-DTERMCAP=\"\\\"/etc/termcap\\\"\""
27192914Sed	fi
28192830Sedelse
29192830Sed	termcap_exists=""
30192830Sedfi
31192830Sed
32192830Sed# test for terminfo directory (exists on SysV systems)
33192830Sed
34192830Sedif [ -d /usr/lib/terminfo -o -d /usr/share/lib/terminfo -o -d /usr/share/terminfo ]
35192830Sedthen
36192830Sed	terminfo_exists=""
37192830Sedelse
38192830Sed	terminfo_exists="-DCAP"
39192830Sedfi
40192830Sed
41192830Sed# test for existence of termio header (on SysV systems)
42192830Sed
43192830Sedif [ -f /usr/include/termio.h ]
44192830Sedthen
45192830Sed	termio="-DSYS5"
46192830Sedelse
47192830Sed	termio=""
48192830Sedfi
49192830Sed
50192830Sed# test for sgtty header (on BSD systems)
51192830Sed
52192830Sedif [ -f /usr/include/sgtty.h ]
53192830Sedthen
54192830Sed	sgtty="TRUE"
55192830Sedelse
56192830Sed	sgtty=""
57192830Sedfi
58192830Sed
59192830Sed# look for select call in headers, make sure headers exist
60192830Sed
61192830SedHEADER_FILES=""
62192830Sed
63192830Sedif [ -f /usr/include/sys/time.h ]
64192830Sedthen
65192830Sed	HEADER_FILES="/usr/include/sys/time.h "
66192830Sedfi
67192830Sed
68192830Sedif [ -f /usr/include/sys/types.h ]
69192830Sedthen
70192830Sed	HEADER_FILES="$HEADER_FILES /usr/include/sys/types.h"
71192830Sedfi
72192830Sed
73192830Sed# check for unistd.h
74192830Sed
75192830Sedif [ -f /usr/include/unistd.h ]
76192830Sedthen
77192830Sed	HAS_UNISTD=-DHAS_UNISTD
78192830Sed	HEADER_FILES="$HEADER_FILES /usr/include/unistd.h"
79192830Sedelse
80192830Sed	HAS_UNISTD=""
81192830Sedfi
82192830Sed
83192830Sedif [ -n "$HEADER_FILES" ]
84192830Sedthen
85192830Sed	string="`grep select $HEADER_FILES`"
86192830Sed	if [ -n "$string" ]
87192830Sed	then
88192830Sed		BSD_SELECT="-DBSD_SELECT"
89192830Sed	else
90192830Sed		BSD_SELECT=""
91192830Sed	fi
92192830Sedfi
93192830Sed
94192830Sed# check for existence of select.h (on AIX)
95192830Sed
96192830Sedif [ -f /usr/include/sys/select.h ]
97192830Sedthen
98192830Sed	select_hdr="-DSLCT_HDR"
99192830Sedelse
100192830Sed	select_hdr=""
101192830Sedfi
102192830Sed
103192830Sed# check for stdlib.h
104192830Sed
105192830Sedif [ -f /usr/include/stdlib.h ]
106192830Sedthen
107192830Sed	HAS_STDLIB=-DHAS_STDLIB
108192830Sedelse
109192830Sed	HAS_STDLIB=""
110192830Sedfi
111192830Sed
112192830Sed# check for stdarg.h
113192830Sed
114192830Sedif [ -f /usr/include/stdarg.h ]
115192830Sedthen
116192830Sed	HAS_STDARG=-DHAS_STDARG
117192830Sedelse
118192830Sed	HAS_STDARG=""
119192830Sedfi
120192830Sed
121192830Sed# check for ctype.h
122192830Sed
123192830Sedif [ -f /usr/include/ctype.h ]
124192830Sedthen
125192830Sed	HAS_CTYPE=-DHAS_CTYPE
126192830Sedelse
127192830Sed	HAS_CTYPE=""
128192830Sedfi
129192830Sed
130192830Sed# check for sys/ioctl.h
131192830Sed
132192830Sedif [ -f /usr/include/sys/ioctl.h ]
133192830Sedthen
134192830Sed	HAS_SYS_IOCTL=-DHAS_SYS_IOCTL
135192830Sedelse
136192830Sed	HAS_SYS_IOCTL=""
137192830Sedfi
138192830Sed
139192830Sed# check for sys/wait.h
140192830Sed
141192830Sedif [ -f /usr/include/sys/wait.h ]
142192830Sedthen
143192830Sed        HAS_SYS_WAIT=-DHAS_SYS_WAIT
144192830Sedelse
145192830Sed        HAS_SYS_WAIT=""
146192830Sedfi
147192830Sed
148192830Sed# check for localization headers
149192830Sed
150192830Sedif [ -f /usr/include/locale.h -a -f /usr/include/nl_types.h ]
151192830Sedthen
152192830Sed	catgets=""
153192830Sedelse
154192830Sed	catgets="-DNO_CATGETS"
155192830Sedfi
156192830Sed
157192830Sed# make decisions about use of new_curse.c (use of new_curse is recommended 
158192830Sed# rather than local curses)
159192830Sed
160192830Sedif [ -n "$terminfo_exists" -a -z "$termcap_exists" ]
161192830Sedthen
162192830Sed	echo "Neither terminfo or termcap are on this system!  "
163192830Sed	if [ -f /usr/include/curses.h ]
164192830Sed	then
165192830Sed		echo "Relying on local curses implementation."
166192830Sed	else
167192830Sed		cat <<-EOF
168192830Sed		Don't know where to find curses, you'll need to modify 
169192830Sed		source code to be able to build!
170192830Sed		
171192830Sed		Modify the file make.default and build ee by typing:
172192830Sed		
173192830Sed		make -f make.default
174192830Sed		
175192830Sed		EOF
176192830Sed
177192830Sed		exit 1
178192830Sed	fi
179192830Sed	
180192830Sed	TARGET="curses"
181192830Sed	curses=""
182192830Sedelse
183192830Sed	curses="-DNCURSE"
184192830Sed	TARGET="ee"
185192830Sedfi
186192830Sed
187192830Sedif [ -z "$termio" -a -z "$sgtty" ]
188192830Sedthen
189192830Sed	echo "Neither termio.h or sgtty.h are on this system!  "
190192830Sed	if [ -f /usr/include/curses.h ]
191192830Sed	then
192192830Sed		echo "Relying on local curses implementation."
193192830Sed	else
194192830Sed		cat <<-EOF
195192830Sed		Don't know where to find curses, you'll need to modify 
196192830Sed		source code to be able to build!
197192830Sed		
198192830Sed		Modify the file make.default and build ee by typing:
199192830Sed		
200192830Sed		make -f make.default
201192830Sed		
202192830Sed		EOF
203192830Sed
204192830Sed		exit 1
205192830Sed	fi
206192830Sed	
207192830Sed	TARGET="curses"
208192830Sed	curses=""
209192830Sedfi
210192830Sed
211192830Sed# check if this is a SunOS system
212192830Sed
213192830Sedif [ -d /usr/5include ]
214192830Sedthen
215192830Sed	five_include="-I/usr/5include"
216192830Sedelse
217192830Sed	five_include=""
218192830Sedfi
219192830Sed
220192830Sedif [ -d /usr/5lib ]
221192830Sedthen
222192830Sed	five_lib="-L/usr/5lib"
223192830Sedelse
224192830Sed	five_lib=""
225192830Sedfi
226192830Sed
227192830Sed
228192914Sedif [ "$name_string" = "Darwin" ]
229192830Sedthen
230192914Sed	if [ -n "$CFLAGS" ]
231192830Sed	then
232192914Sed		other_cflags="${CFLAGS} -DNO_CATGETS"
233192830Sed	else
234192914Sed		other_cflags="-DNO_CATGETS"
235192830Sed	fi
236192830Sedelse
237192914Sed
238192914Sed	if [ -n "$CFLAGS" ]
239192914Sed	then
240192914Sed		if [ -z "`echo $CFLAGS | grep '[-]g'`" ]
241192914Sed		then
242192914Sed			other_cflags="${CFLAGS} -s"
243192914Sed		else
244192914Sed			other_cflags="${CFLAGS}"
245192914Sed		fi
246192914Sed	else
247192914Sed		other_cflags="-s"
248192914Sed	fi
249192830Sedfi
250192830Sed
251192830Sed# time to write the makefile
252192830Sed
253192830Sedecho "Generating make.local"
254192830Sed
255192830Sedif [ -f make.local ]
256192830Sedthen
257192830Sed	mv make.local make.lcl.old
258192830Sedfi
259192830Sed
260192830Sedecho "DEFINES =	$termio $terminfo_exists $BSD_SELECT $catgets $select $curses " > make.local
261192830Sedecho "" >> make.local
262192914Sedecho "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
263192830Sedecho "" >> make.local
264192830Sedecho "" >> make.local
265192830Sedecho "all :	$TARGET" >> make.local
266192830Sed
267192830Sedcat  >> make.local << EOF
268192830Sed
269192830Sedcurses :	ee.c
270192830Sed	cc ee.c -o ee \$(CFLAGS) -lcurses 
271192830Sed
272192830Sedee :	ee.o new_curse.o
273192830Sed	cc -o ee ee.o new_curse.o \$(CFLAGS) 
274192830Sed
275192830Sedee.o :	ee.c new_curse.h
276192830Sed	cc -c ee.c \$(DEFINES) \$(CFLAGS) 
277192830Sed
278192830Sednew_curse.o :	new_curse.c new_curse.h
279192830Sed	cc new_curse.c -c \$(DEFINES) \$(CFLAGS)
280192830Sed
281192830SedEOF
282192830Sed
283192830Sedif [ -f make.lcl.old ]
284192830Sedthen
285192830Sed	diffs="`cmp make.lcl.old make.local`"
286192830Sed	if [ -n "${diffs}" ]
287192830Sed	then
288192830Sed		rm -f ee.o new_curse.o ee 
289192830Sed	fi
290192830Sed	rm -f make.lcl.old
291192830Sedfi
292192830Sed
293