xref: /freebsd/contrib/ee/create.make (revision 96b676e9)
172fcea8cSEd Schouten#!/bin/sh
272fcea8cSEd Schouten
372fcea8cSEd Schouten#
472fcea8cSEd Schouten#	This script will determine if the system is a System V or BSD based
572fcea8cSEd Schouten#	UNIX system and create a makefile for ee appropriate for the system.
672fcea8cSEd Schouten#
7*96b676e9SEd Schouten# $Header: /home/hugh/sources/old_ae/RCS/create.make,v 1.13 2002/09/23 04:18:13 hugh Exp $
872fcea8cSEd Schouten#
972fcea8cSEd Schouten
10*96b676e9SEd Schouten#set -x
11*96b676e9SEd Schouten
12*96b676e9SEd Schoutenname_string="`uname`"
13*96b676e9SEd Schouten
1472fcea8cSEd Schouten# test for existence of termcap (exists on both BSD and SysV systems)
1572fcea8cSEd Schouten
1672fcea8cSEd Schoutenif [ -f /etc/termcap -o -f /usr/share/lib/termcap -o -f /usr/share/misc/termcap ]
1772fcea8cSEd Schoutenthen
18*96b676e9SEd Schouten	if [ -f /usr/share/lib/termcap ]
19*96b676e9SEd Schouten	then
20*96b676e9SEd Schouten		termcap_exists="-DTERMCAP=\"\\\"/usr/share/lib/termcap\\\"\""
21*96b676e9SEd Schouten	elif [ -f /usr/share/misc/termcap ]
22*96b676e9SEd Schouten	then
23*96b676e9SEd Schouten		termcap_exists="-DTERMCAP=\"\\\"/usr/share/misc/termcap\\\"\""
24*96b676e9SEd Schouten	elif [ -f /etc/termcap ]
25*96b676e9SEd Schouten	then
26*96b676e9SEd Schouten		termcap_exists="-DTERMCAP=\"\\\"/etc/termcap\\\"\""
27*96b676e9SEd Schouten	fi
2872fcea8cSEd Schoutenelse
2972fcea8cSEd Schouten	termcap_exists=""
3072fcea8cSEd Schoutenfi
3172fcea8cSEd Schouten
3272fcea8cSEd Schouten# test for terminfo directory (exists on SysV systems)
3372fcea8cSEd Schouten
3472fcea8cSEd Schoutenif [ -d /usr/lib/terminfo -o -d /usr/share/lib/terminfo -o -d /usr/share/terminfo ]
3572fcea8cSEd Schoutenthen
3672fcea8cSEd Schouten	terminfo_exists=""
3772fcea8cSEd Schoutenelse
3872fcea8cSEd Schouten	terminfo_exists="-DCAP"
3972fcea8cSEd Schoutenfi
4072fcea8cSEd Schouten
4172fcea8cSEd Schouten# test for existence of termio header (on SysV systems)
4272fcea8cSEd Schouten
4372fcea8cSEd Schoutenif [ -f /usr/include/termio.h ]
4472fcea8cSEd Schoutenthen
4572fcea8cSEd Schouten	termio="-DSYS5"
4672fcea8cSEd Schoutenelse
4772fcea8cSEd Schouten	termio=""
4872fcea8cSEd Schoutenfi
4972fcea8cSEd Schouten
5072fcea8cSEd Schouten# test for sgtty header (on BSD systems)
5172fcea8cSEd Schouten
5272fcea8cSEd Schoutenif [ -f /usr/include/sgtty.h ]
5372fcea8cSEd Schoutenthen
5472fcea8cSEd Schouten	sgtty="TRUE"
5572fcea8cSEd Schoutenelse
5672fcea8cSEd Schouten	sgtty=""
5772fcea8cSEd Schoutenfi
5872fcea8cSEd Schouten
5972fcea8cSEd Schouten# look for select call in headers, make sure headers exist
6072fcea8cSEd Schouten
6172fcea8cSEd SchoutenHEADER_FILES=""
6272fcea8cSEd Schouten
6372fcea8cSEd Schoutenif [ -f /usr/include/sys/time.h ]
6472fcea8cSEd Schoutenthen
6572fcea8cSEd Schouten	HEADER_FILES="/usr/include/sys/time.h "
6672fcea8cSEd Schoutenfi
6772fcea8cSEd Schouten
6872fcea8cSEd Schoutenif [ -f /usr/include/sys/types.h ]
6972fcea8cSEd Schoutenthen
7072fcea8cSEd Schouten	HEADER_FILES="$HEADER_FILES /usr/include/sys/types.h"
7172fcea8cSEd Schoutenfi
7272fcea8cSEd Schouten
7372fcea8cSEd Schouten# check for unistd.h
7472fcea8cSEd Schouten
7572fcea8cSEd Schoutenif [ -f /usr/include/unistd.h ]
7672fcea8cSEd Schoutenthen
7772fcea8cSEd Schouten	HAS_UNISTD=-DHAS_UNISTD
7872fcea8cSEd Schouten	HEADER_FILES="$HEADER_FILES /usr/include/unistd.h"
7972fcea8cSEd Schoutenelse
8072fcea8cSEd Schouten	HAS_UNISTD=""
8172fcea8cSEd Schoutenfi
8272fcea8cSEd Schouten
8372fcea8cSEd Schoutenif [ -n "$HEADER_FILES" ]
8472fcea8cSEd Schoutenthen
8572fcea8cSEd Schouten	string="`grep select $HEADER_FILES`"
8672fcea8cSEd Schouten	if [ -n "$string" ]
8772fcea8cSEd Schouten	then
8872fcea8cSEd Schouten		BSD_SELECT="-DBSD_SELECT"
8972fcea8cSEd Schouten	else
9072fcea8cSEd Schouten		BSD_SELECT=""
9172fcea8cSEd Schouten	fi
9272fcea8cSEd Schoutenfi
9372fcea8cSEd Schouten
9472fcea8cSEd Schouten# check for existence of select.h (on AIX)
9572fcea8cSEd Schouten
9672fcea8cSEd Schoutenif [ -f /usr/include/sys/select.h ]
9772fcea8cSEd Schoutenthen
9872fcea8cSEd Schouten	select_hdr="-DSLCT_HDR"
9972fcea8cSEd Schoutenelse
10072fcea8cSEd Schouten	select_hdr=""
10172fcea8cSEd Schoutenfi
10272fcea8cSEd Schouten
10372fcea8cSEd Schouten# check for stdlib.h
10472fcea8cSEd Schouten
10572fcea8cSEd Schoutenif [ -f /usr/include/stdlib.h ]
10672fcea8cSEd Schoutenthen
10772fcea8cSEd Schouten	HAS_STDLIB=-DHAS_STDLIB
10872fcea8cSEd Schoutenelse
10972fcea8cSEd Schouten	HAS_STDLIB=""
11072fcea8cSEd Schoutenfi
11172fcea8cSEd Schouten
11272fcea8cSEd Schouten# check for stdarg.h
11372fcea8cSEd Schouten
11472fcea8cSEd Schoutenif [ -f /usr/include/stdarg.h ]
11572fcea8cSEd Schoutenthen
11672fcea8cSEd Schouten	HAS_STDARG=-DHAS_STDARG
11772fcea8cSEd Schoutenelse
11872fcea8cSEd Schouten	HAS_STDARG=""
11972fcea8cSEd Schoutenfi
12072fcea8cSEd Schouten
12172fcea8cSEd Schouten# check for ctype.h
12272fcea8cSEd Schouten
12372fcea8cSEd Schoutenif [ -f /usr/include/ctype.h ]
12472fcea8cSEd Schoutenthen
12572fcea8cSEd Schouten	HAS_CTYPE=-DHAS_CTYPE
12672fcea8cSEd Schoutenelse
12772fcea8cSEd Schouten	HAS_CTYPE=""
12872fcea8cSEd Schoutenfi
12972fcea8cSEd Schouten
13072fcea8cSEd Schouten# check for sys/ioctl.h
13172fcea8cSEd Schouten
13272fcea8cSEd Schoutenif [ -f /usr/include/sys/ioctl.h ]
13372fcea8cSEd Schoutenthen
13472fcea8cSEd Schouten	HAS_SYS_IOCTL=-DHAS_SYS_IOCTL
13572fcea8cSEd Schoutenelse
13672fcea8cSEd Schouten	HAS_SYS_IOCTL=""
13772fcea8cSEd Schoutenfi
13872fcea8cSEd Schouten
13972fcea8cSEd Schouten# check for sys/wait.h
14072fcea8cSEd Schouten
14172fcea8cSEd Schoutenif [ -f /usr/include/sys/wait.h ]
14272fcea8cSEd Schoutenthen
14372fcea8cSEd Schouten        HAS_SYS_WAIT=-DHAS_SYS_WAIT
14472fcea8cSEd Schoutenelse
14572fcea8cSEd Schouten        HAS_SYS_WAIT=""
14672fcea8cSEd Schoutenfi
14772fcea8cSEd Schouten
14872fcea8cSEd Schouten# check for localization headers
14972fcea8cSEd Schouten
15072fcea8cSEd Schoutenif [ -f /usr/include/locale.h -a -f /usr/include/nl_types.h ]
15172fcea8cSEd Schoutenthen
15272fcea8cSEd Schouten	catgets=""
15372fcea8cSEd Schoutenelse
15472fcea8cSEd Schouten	catgets="-DNO_CATGETS"
15572fcea8cSEd Schoutenfi
15672fcea8cSEd Schouten
15772fcea8cSEd Schouten# make decisions about use of new_curse.c (use of new_curse is recommended
15872fcea8cSEd Schouten# rather than local curses)
15972fcea8cSEd Schouten
16072fcea8cSEd Schoutenif [ -n "$terminfo_exists" -a -z "$termcap_exists" ]
16172fcea8cSEd Schoutenthen
16272fcea8cSEd Schouten	echo "Neither terminfo or termcap are on this system!  "
16372fcea8cSEd Schouten	if [ -f /usr/include/curses.h ]
16472fcea8cSEd Schouten	then
16572fcea8cSEd Schouten		echo "Relying on local curses implementation."
16672fcea8cSEd Schouten	else
16772fcea8cSEd Schouten		cat <<-EOF
16872fcea8cSEd Schouten		Don't know where to find curses, you'll need to modify 
16972fcea8cSEd Schouten		source code to be able to build!
17072fcea8cSEd Schouten		
17172fcea8cSEd Schouten		Modify the file make.default and build ee by typing:
17272fcea8cSEd Schouten		
17372fcea8cSEd Schouten		make -f make.default
17472fcea8cSEd Schouten		
17572fcea8cSEd Schouten		EOF
17672fcea8cSEd Schouten
17772fcea8cSEd Schouten		exit 1
17872fcea8cSEd Schouten	fi
17972fcea8cSEd Schouten
18072fcea8cSEd Schouten	TARGET="curses"
18172fcea8cSEd Schouten	curses=""
18272fcea8cSEd Schoutenelse
18372fcea8cSEd Schouten	curses="-DNCURSE"
18472fcea8cSEd Schouten	TARGET="ee"
18572fcea8cSEd Schoutenfi
18672fcea8cSEd Schouten
18772fcea8cSEd Schoutenif [ -z "$termio" -a -z "$sgtty" ]
18872fcea8cSEd Schoutenthen
18972fcea8cSEd Schouten	echo "Neither termio.h or sgtty.h are on this system!  "
19072fcea8cSEd Schouten	if [ -f /usr/include/curses.h ]
19172fcea8cSEd Schouten	then
19272fcea8cSEd Schouten		echo "Relying on local curses implementation."
19372fcea8cSEd Schouten	else
19472fcea8cSEd Schouten		cat <<-EOF
19572fcea8cSEd Schouten		Don't know where to find curses, you'll need to modify 
19672fcea8cSEd Schouten		source code to be able to build!
19772fcea8cSEd Schouten		
19872fcea8cSEd Schouten		Modify the file make.default and build ee by typing:
19972fcea8cSEd Schouten		
20072fcea8cSEd Schouten		make -f make.default
20172fcea8cSEd Schouten		
20272fcea8cSEd Schouten		EOF
20372fcea8cSEd Schouten
20472fcea8cSEd Schouten		exit 1
20572fcea8cSEd Schouten	fi
20672fcea8cSEd Schouten
20772fcea8cSEd Schouten	TARGET="curses"
20872fcea8cSEd Schouten	curses=""
20972fcea8cSEd Schoutenfi
21072fcea8cSEd Schouten
21172fcea8cSEd Schouten# check if this is a SunOS system
21272fcea8cSEd Schouten
21372fcea8cSEd Schoutenif [ -d /usr/5include ]
21472fcea8cSEd Schoutenthen
21572fcea8cSEd Schouten	five_include="-I/usr/5include"
21672fcea8cSEd Schoutenelse
21772fcea8cSEd Schouten	five_include=""
21872fcea8cSEd Schoutenfi
21972fcea8cSEd Schouten
22072fcea8cSEd Schoutenif [ -d /usr/5lib ]
22172fcea8cSEd Schoutenthen
22272fcea8cSEd Schouten	five_lib="-L/usr/5lib"
22372fcea8cSEd Schoutenelse
22472fcea8cSEd Schouten	five_lib=""
22572fcea8cSEd Schoutenfi
22672fcea8cSEd Schouten
22772fcea8cSEd Schouten
228*96b676e9SEd Schoutenif [ "$name_string" = "Darwin" ]
229*96b676e9SEd Schoutenthen
230*96b676e9SEd Schouten	if [ -n "$CFLAGS" ]
231*96b676e9SEd Schouten	then
232*96b676e9SEd Schouten		other_cflags="${CFLAGS} -DNO_CATGETS"
233*96b676e9SEd Schouten	else
234*96b676e9SEd Schouten		other_cflags="-DNO_CATGETS"
235*96b676e9SEd Schouten	fi
236*96b676e9SEd Schoutenelse
237*96b676e9SEd Schouten
23872fcea8cSEd Schouten	if [ -n "$CFLAGS" ]
23972fcea8cSEd Schouten	then
24072fcea8cSEd Schouten		if [ -z "`echo $CFLAGS | grep '[-]g'`" ]
24172fcea8cSEd Schouten		then
24272fcea8cSEd Schouten			other_cflags="${CFLAGS} -s"
24372fcea8cSEd Schouten		else
24472fcea8cSEd Schouten			other_cflags="${CFLAGS}"
24572fcea8cSEd Schouten		fi
24672fcea8cSEd Schouten	else
24772fcea8cSEd Schouten		other_cflags="-s"
24872fcea8cSEd Schouten	fi
249*96b676e9SEd Schoutenfi
25072fcea8cSEd Schouten
25172fcea8cSEd Schouten# time to write the makefile
25272fcea8cSEd Schouten
25372fcea8cSEd Schoutenecho "Generating make.local"
25472fcea8cSEd Schouten
25572fcea8cSEd Schoutenif [ -f make.local ]
25672fcea8cSEd Schoutenthen
25772fcea8cSEd Schouten	mv make.local make.lcl.old
25872fcea8cSEd Schoutenfi
25972fcea8cSEd Schouten
26072fcea8cSEd Schoutenecho "DEFINES =	$termio $terminfo_exists $BSD_SELECT $catgets $select $curses " > make.local
26172fcea8cSEd Schoutenecho "" >> make.local
262*96b676e9SEd Schoutenecho "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
26372fcea8cSEd Schoutenecho "" >> make.local
26472fcea8cSEd Schoutenecho "" >> make.local
26572fcea8cSEd Schoutenecho "all :	$TARGET" >> make.local
26672fcea8cSEd Schouten
26772fcea8cSEd Schoutencat  >> make.local << EOF
26872fcea8cSEd Schouten
26972fcea8cSEd Schoutencurses :	ee.c
27072fcea8cSEd Schouten	cc ee.c -o ee \$(CFLAGS) -lcurses 
27172fcea8cSEd Schouten
27272fcea8cSEd Schoutenee :	ee.o new_curse.o
27372fcea8cSEd Schouten	cc -o ee ee.o new_curse.o \$(CFLAGS) 
27472fcea8cSEd Schouten
27572fcea8cSEd Schoutenee.o :	ee.c new_curse.h
27672fcea8cSEd Schouten	cc -c ee.c \$(DEFINES) \$(CFLAGS) 
27772fcea8cSEd Schouten
27872fcea8cSEd Schoutennew_curse.o :	new_curse.c new_curse.h
27972fcea8cSEd Schouten	cc new_curse.c -c \$(DEFINES) \$(CFLAGS)
28072fcea8cSEd Schouten
28172fcea8cSEd SchoutenEOF
28272fcea8cSEd Schouten
28372fcea8cSEd Schoutenif [ -f make.lcl.old ]
28472fcea8cSEd Schoutenthen
28572fcea8cSEd Schouten	diffs="`cmp make.lcl.old make.local`"
28672fcea8cSEd Schouten	if [ -n "${diffs}" ]
28772fcea8cSEd Schouten	then
28872fcea8cSEd Schouten		rm -f ee.o new_curse.o ee
28972fcea8cSEd Schouten	fi
29072fcea8cSEd Schouten	rm -f make.lcl.old
29172fcea8cSEd Schoutenfi
29272fcea8cSEd Schouten
293