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 12name_string="`uname`" 13 14# test for existence of termcap (exists on both BSD and SysV systems) 15 16if [ -f /etc/termcap -o -f /usr/share/lib/termcap -o -f /usr/share/misc/termcap ] 17then 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 28else 29 termcap_exists="" 30fi 31 32# test for terminfo directory (exists on SysV systems) 33 34if [ -d /usr/lib/terminfo -o -d /usr/share/lib/terminfo -o -d /usr/share/terminfo ] 35then 36 terminfo_exists="" 37else 38 terminfo_exists="-DCAP" 39fi 40 41# test for existence of termio header (on SysV systems) 42 43if [ -f /usr/include/termio.h ] 44then 45 termio="-DSYS5" 46else 47 termio="" 48fi 49 50# test for sgtty header (on BSD systems) 51 52if [ -f /usr/include/sgtty.h ] 53then 54 sgtty="TRUE" 55else 56 sgtty="" 57fi 58 59# look for select call in headers, make sure headers exist 60 61HEADER_FILES="" 62 63if [ -f /usr/include/sys/time.h ] 64then 65 HEADER_FILES="/usr/include/sys/time.h " 66fi 67 68if [ -f /usr/include/sys/types.h ] 69then 70 HEADER_FILES="$HEADER_FILES /usr/include/sys/types.h" 71fi 72 73# check for unistd.h 74 75if [ -f /usr/include/unistd.h ] 76then 77 HAS_UNISTD=-DHAS_UNISTD 78 HEADER_FILES="$HEADER_FILES /usr/include/unistd.h" 79else 80 HAS_UNISTD="" 81fi 82 83if [ -n "$HEADER_FILES" ] 84then 85 string="`grep select $HEADER_FILES`" 86 if [ -n "$string" ] 87 then 88 BSD_SELECT="-DBSD_SELECT" 89 else 90 BSD_SELECT="" 91 fi 92fi 93 94# check for existence of select.h (on AIX) 95 96if [ -f /usr/include/sys/select.h ] 97then 98 select_hdr="-DSLCT_HDR" 99else 100 select_hdr="" 101fi 102 103# check for stdlib.h 104 105if [ -f /usr/include/stdlib.h ] 106then 107 HAS_STDLIB=-DHAS_STDLIB 108else 109 HAS_STDLIB="" 110fi 111 112# check for stdarg.h 113 114if [ -f /usr/include/stdarg.h ] 115then 116 HAS_STDARG=-DHAS_STDARG 117else 118 HAS_STDARG="" 119fi 120 121# check for ctype.h 122 123if [ -f /usr/include/ctype.h ] 124then 125 HAS_CTYPE=-DHAS_CTYPE 126else 127 HAS_CTYPE="" 128fi 129 130# check for sys/ioctl.h 131 132if [ -f /usr/include/sys/ioctl.h ] 133then 134 HAS_SYS_IOCTL=-DHAS_SYS_IOCTL 135else 136 HAS_SYS_IOCTL="" 137fi 138 139# check for sys/wait.h 140 141if [ -f /usr/include/sys/wait.h ] 142then 143 HAS_SYS_WAIT=-DHAS_SYS_WAIT 144else 145 HAS_SYS_WAIT="" 146fi 147 148# check for localization headers 149 150if [ -f /usr/include/locale.h -a -f /usr/include/nl_types.h ] 151then 152 catgets="" 153else 154 catgets="-DNO_CATGETS" 155fi 156 157# make decisions about use of new_curse.c (use of new_curse is recommended 158# rather than local curses) 159 160if [ -n "$terminfo_exists" -a -z "$termcap_exists" ] 161then 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="" 182else 183 curses="-DNCURSE" 184 TARGET="ee" 185fi 186 187if [ -z "$termio" -a -z "$sgtty" ] 188then 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="" 209fi 210 211# check if this is a SunOS system 212 213if [ -d /usr/5include ] 214then 215 five_include="-I/usr/5include" 216else 217 five_include="" 218fi 219 220if [ -d /usr/5lib ] 221then 222 five_lib="-L/usr/5lib" 223else 224 five_lib="" 225fi 226 227 228if [ "$name_string" = "Darwin" ] 229then 230 if [ -n "$CFLAGS" ] 231 then 232 other_cflags="${CFLAGS} -DNO_CATGETS" 233 else 234 other_cflags="-DNO_CATGETS" 235 fi 236else 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 249fi 250 251# time to write the makefile 252 253echo "Generating make.local" 254 255if [ -f make.local ] 256then 257 mv make.local make.lcl.old 258fi 259 260echo "DEFINES = $termio $terminfo_exists $BSD_SELECT $catgets $select $curses " > make.local 261echo "" >> make.local 262echo "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 263echo "" >> make.local 264echo "" >> make.local 265echo "all : $TARGET" >> make.local 266 267cat >> make.local << EOF 268 269curses : ee.c 270 cc ee.c -o ee \$(CFLAGS) -lcurses 271 272ee : ee.o new_curse.o 273 cc -o ee ee.o new_curse.o \$(CFLAGS) 274 275ee.o : ee.c new_curse.h 276 cc -c ee.c \$(DEFINES) \$(CFLAGS) 277 278new_curse.o : new_curse.c new_curse.h 279 cc new_curse.c -c \$(DEFINES) \$(CFLAGS) 280 281EOF 282 283if [ -f make.lcl.old ] 284then 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 291fi 292 293