#!/bin/sh # # This script will determine if the system is a System V or BSD based # UNIX system and create a makefile for ee appropriate for the system. # # $Header: /home/hugh/sources/old_ae/RCS/create.make,v 1.13 2002/09/23 04:18:13 hugh Exp $ # #set -x name_string="`uname`" # test for existence of termcap (exists on both BSD and SysV systems) if [ -f /etc/termcap -o -f /usr/share/lib/termcap -o -f /usr/share/misc/termcap ] then if [ -f /usr/share/lib/termcap ] then termcap_exists="-DTERMCAP=\"\\\"/usr/share/lib/termcap\\\"\"" elif [ -f /usr/share/misc/termcap ] then termcap_exists="-DTERMCAP=\"\\\"/usr/share/misc/termcap\\\"\"" elif [ -f /etc/termcap ] then termcap_exists="-DTERMCAP=\"\\\"/etc/termcap\\\"\"" fi else termcap_exists="" fi # test for terminfo directory (exists on SysV systems) if [ -d /usr/lib/terminfo -o -d /usr/share/lib/terminfo -o -d /usr/share/terminfo ] then terminfo_exists="" else terminfo_exists="-DCAP" fi # test for existence of termio header (on SysV systems) if [ -f /usr/include/termio.h ] then termio="-DSYS5" else termio="" fi # test for sgtty header (on BSD systems) if [ -f /usr/include/sgtty.h ] then sgtty="TRUE" else sgtty="" fi # look for select call in headers, make sure headers exist HEADER_FILES="" if [ -f /usr/include/sys/time.h ] then HEADER_FILES="/usr/include/sys/time.h " fi if [ -f /usr/include/sys/types.h ] then HEADER_FILES="$HEADER_FILES /usr/include/sys/types.h" fi # check for unistd.h if [ -f /usr/include/unistd.h ] then HAS_UNISTD=-DHAS_UNISTD HEADER_FILES="$HEADER_FILES /usr/include/unistd.h" else HAS_UNISTD="" fi if [ -n "$HEADER_FILES" ] then string="`grep select $HEADER_FILES`" if [ -n "$string" ] then BSD_SELECT="-DBSD_SELECT" else BSD_SELECT="" fi fi # check for existence of select.h (on AIX) if [ -f /usr/include/sys/select.h ] then select_hdr="-DSLCT_HDR" else select_hdr="" fi # check for stdlib.h if [ -f /usr/include/stdlib.h ] then HAS_STDLIB=-DHAS_STDLIB else HAS_STDLIB="" fi # check for stdarg.h if [ -f /usr/include/stdarg.h ] then HAS_STDARG=-DHAS_STDARG else HAS_STDARG="" fi # check for ctype.h if [ -f /usr/include/ctype.h ] then HAS_CTYPE=-DHAS_CTYPE else HAS_CTYPE="" fi # check for sys/ioctl.h if [ -f /usr/include/sys/ioctl.h ] then HAS_SYS_IOCTL=-DHAS_SYS_IOCTL else HAS_SYS_IOCTL="" fi # check for sys/wait.h if [ -f /usr/include/sys/wait.h ] then HAS_SYS_WAIT=-DHAS_SYS_WAIT else HAS_SYS_WAIT="" fi # check for localization headers if [ -f /usr/include/locale.h -a -f /usr/include/nl_types.h ] then catgets="" else catgets="-DNO_CATGETS" fi # make decisions about use of new_curse.c (use of new_curse is recommended # rather than local curses) if [ -n "$terminfo_exists" -a -z "$termcap_exists" ] then echo "Neither terminfo or termcap are on this system! " if [ -f /usr/include/curses.h ] then echo "Relying on local curses implementation." else cat <<-EOF Don't know where to find curses, you'll need to modify source code to be able to build! Modify the file make.default and build ee by typing: make -f make.default EOF exit 1 fi TARGET="curses" curses="" else curses="-DNCURSE" TARGET="ee" fi if [ -z "$termio" -a -z "$sgtty" ] then echo "Neither termio.h or sgtty.h are on this system! " if [ -f /usr/include/curses.h ] then echo "Relying on local curses implementation." else cat <<-EOF Don't know where to find curses, you'll need to modify source code to be able to build! Modify the file make.default and build ee by typing: make -f make.default EOF exit 1 fi TARGET="curses" curses="" fi # check if this is a SunOS system if [ -d /usr/5include ] then five_include="-I/usr/5include" else five_include="" fi if [ -d /usr/5lib ] then five_lib="-L/usr/5lib" else five_lib="" fi if [ "$name_string" = "Darwin" ] then if [ -n "$CFLAGS" ] then other_cflags="${CFLAGS} -DNO_CATGETS" else other_cflags="-DNO_CATGETS" fi else if [ -n "$CFLAGS" ] then if [ -z "`echo $CFLAGS | grep '[-]g'`" ] then other_cflags="${CFLAGS} -s" else other_cflags="${CFLAGS}" fi else other_cflags="-s" fi fi # time to write the makefile echo "Generating make.local" if [ -f make.local ] then mv make.local make.lcl.old fi echo "DEFINES = $termio $terminfo_exists $BSD_SELECT $catgets $select $curses " > make.local echo "" >> make.local 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 echo "" >> make.local echo "" >> make.local echo "all : $TARGET" >> make.local cat >> make.local << EOF curses : ee.c cc ee.c -o ee \$(CFLAGS) -lcurses ee : ee.o new_curse.o cc -o ee ee.o new_curse.o \$(CFLAGS) ee.o : ee.c new_curse.h cc -c ee.c \$(DEFINES) \$(CFLAGS) new_curse.o : new_curse.c new_curse.h cc new_curse.c -c \$(DEFINES) \$(CFLAGS) EOF if [ -f make.lcl.old ] then diffs="`cmp make.lcl.old make.local`" if [ -n "${diffs}" ] then rm -f ee.o new_curse.o ee fi rm -f make.lcl.old fi