#	START NEW ARIX SCCS HEADER
#
#	@(#) config: version 1.2 created on 12/1/89 at 11:45:48
#
#	Copyright (c) 1988 by Arix Corporation
#	All Rights Reserved
#
#	@(#)config	1.2	12/1/89 Copyright (c) 1988 by Arix Corporation
#
#	END NEW ARIX SCCS HEADER
#
Install=${1-install}
Inc=${Inc-/usr/include}
echo "
#ifndef _sh_config_
#define	_sh_config_	1
/*
 * This has been generated from install/config
 * The information is based on the compile time environment.
 * It may be necessary to change values of some parameters for cross
 *  development environments.
 */

#include	<sys/types.h>
"
: default CC to /bin/cc on sun, cc otherwise
if	test -f /bin/sun && /bin/sun
then	CC=${CC-/bin/cc}
else	CC=${CC-cc}
fi
CC="$CC $CFLAGS"
LIB= ENV=
: make sure all the files are here
for i in bcopy data fastfork ftime getgroups getppid getrlimit int16 ispipe \
	hz killpg lstat nfile opendir path pgroup rand select setjmp sigrelse\
	sigrestart setreuid strchr token wait3 vlimit void xmalloc yellowp
do	if	test ! -r $Install/$i.c
	then	echo "$Install/$i.c: file missing or not readable" >&2
		exit 1
	fi
done
for i in acct acctdef bsdtty dirent execargs fcntl file filio ioctl \
	jioctl locale mnttab nttyio ptem sigaction stream sgtty time times \
	termio termios wait unistd utsname
do	echo "#include <$i.h>" > dummy.c
	if	$CC -E dummy.c > /dev/null 2>&1
	then	echo "#define _${i}_ 1"
	fi
	echo "#include <sys/$i.h>" > dummy.c
	if	$CC -E dummy.c > /dev/null 2>&1
	then	echo "#define _sys_${i}_	1"
	fi
done
: Note, should use -x, but not all tests have it
if	test -d /usr/ucb
then	echo "#define _usr_ucb_	1"
fi
if	test -f /bin/grep
then	echo "#define _bin_grep_	1"
fi
if	test -f /usr/bin/lpr
then	echo "#define _usr_bin_lpr_	1"
fi
if	test -f /usr/bin/lp
then	echo "#define _usr_bin_lp_	1"
fi
if	test -f /usr/bin/vi
then	echo "#define _usr_bin_vi_	1"
fi
if	test -f /bin/newgrp
then	echo "#define _bin_newgrp_	1"
fi
echo "#include <sys/resource.h>" > dummy.c
if	$CC -E dummy.c > /dev/null 2>&1
then	SYS_RESOURCE=1
fi
echo "#include <sys/vlimit.h>" > dummy.c
if	$CC -E dummy.c > /dev/null 2>&1
then	SYS_VLIMIT=1
fi
if	test  "$SYS_RESOURCE" || test  "$SYS_VLIMIT"
then	if	test  "$SYS_RESOURCE" && 
			$CC $Install/getrlimit.c $LIB > /dev/null 2>&1  &&
			./a.out 2> /dev/null
	then	echo "#define _sys_resource_	1"
	elif	$CC $Install/vlimit.c $LIB > /dev/null 2>&1
	then	./a.out 2> /dev/null
	fi
fi
: some systems have termio but it does not work
echo "#include <termio.h>" > dummy.c
if	$CC -E dummy.c > /dev/null 2>&1
then	_TERMIO=1
fi
echo "#include <sys/ioctl.h>" > dummy.c
if	$CC -E dummy.c > /dev/null 2>&1
then	SYS_IOCTL=1
fi
if	test  "$_TERMIO" && test  "$SYS_IOCTL"
then	if	$CC $Install/ioctl.c $LIB > /dev/null 2>&1
	then	./a.out 2> /dev/null
	fi
fi
: compile and run a program that uses const
if	$CC $Install/data.c $LIB > /dev/null 2>&1 && ./a.out 1
then	:
else	echo "#define const /* empty */"
fi
if	{ grep  SIG_IGN $Inc/sys/signal.h | grep -c void;} 2> /dev/null >&2
then	echo "#define VOID	void"
else	echo "#define VOID	int"
fi	
if	$CC $Install/ftime.c $LIB > /dev/null 2>&1
then	./a.out 2> /dev/null
fi
DIRLIB=
if	test -r /usr/lib/dir.a
then	DIRLIB=/usr/lib/dir.a
fi
: make sure that there is an a.out file before running $Install/opendir.c
> a.out
for i in dirent ndir
do	if	$CC -D_${i}_ $Install/opendir.c $LIB > /dev/null 2>&1 && 
		  ./a.out 2> /dev/null
	then	break
	elif	test "$DIRLIB" &&
		  $CC -D_${i}_ $Install/opendir.c $DIRLIB $LIB > /dev/null 2>&1 && 
		  ./a.out 2> /dev/null
	then	echo "/* requires $DIRLIB */"
		break
	else	echo "#undef _${i}_"
	fi
done
if	test -r $Inc/sys/file.h
then	if	grep -c 'define.*LOCK_EX[^_A-Za-z$]' $Inc/sys/file.h > /dev/null 2>&1  ||
		grep -c 'define.*O_CREAT' $Inc/sys/file.h > /dev/null 2>&1 
	then	:
	else	echo "#undef _sys_file_"
	fi
fi
JOBLIB=
if	test -r /lib/libjobs.a
then	JOBLIB=/lib/libjobs.a
elif	test -r /usr/lib/libjobs.a
then	JOBLIB=/usr/lib/libjobs.a
fi
if	$CC -Dsignal=sigset $Install/sigrestart.c $JOBLIB $LIB > /dev/null 2>&1 &&
		./a.out 2> /dev/null
then	echo "#define signal	sigset"
	echo "extern VOID (*sigset())();"
	sigdef=sigset
elif	$CC $Install/sigrestart.c $JOBLIB $LIB > /dev/null 2>&1 &&
		./a.out 2> /dev/null
then	:
else	echo "/*** Warning SIG_NORESTART may have to be set ***/"
	warn=1
fi
if      $CC -Dsigrelse=' ' ${sigdef+-Dsignal=sigset} $Install/sigrelse.c $JOBLIB $LIB > /dev/null 2>&1  && ./a.out 2> /dev/null
then	:
elif        $CC -DSIGBLOCK ${sigdef+-Dsignal=sigset} $Install/sigrelse.c $JOBLIB $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then    :
elif      $CC ${sigdef+-Dsignal=sigset} $Install/sigrelse.c $JOBLIB $LIB > /dev/null 2>&1  && ./a.out 2> /dev/null
then	:
else	echo "#define sigrelease(s)"
	echo "#define sig_begin()"
fi
if	$CC $Install/wait3.c $JOBLIB $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	echo "#define waitpid(a,b,c)	wait3(b,c,0)"
elif	$CC -Dwaitpid $Install/wait3.c $JOBLIB $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	:
else	echo "#define waitpid(a,b,c)	wait(b)"
	echo "#define WAIT1ARG	1"
fi
if	$CC -Dgetpgrp=getpgid -Dsetpgrp=setpgid $Install/pgroup.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	:	
elif	$CC -Dgetpgrp=getpgrp2 -Dsetpgrp=setpgrp2 $Install/pgroup.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	echo "#define setpgid(a,b)	setpgrp2(a,b)"
	echo "#define getpgid(a)	getpgrp2(a)"
elif	$CC -Dgetpgrp=BSDgetpgrp -Dsetpgrp=BSDsetpgrp $Install/pgroup.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	echo "#define setpgid(a,b)	BSDsetpgrp(a,b)"
	echo "#define getpgid(a)	BSDgetpgrp(a)"
elif	$CC $Install/pgroup.c $LIB > /dev/null 2>&1
then	./a.out
else	echo "/*** Warning setpgrp and getpgrp not found ***/"
fi
if	$CC $Install/killpg.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	:
else	echo "#define killpg(a,b)	kill(-(a),b)"
fi
if	$CC $Install/nfile.c $LIB > /dev/null 2>&1
then	./a.out 2> /dev/null
fi
if	$CC $Install/int16.c $LIB > /dev/null 2>&1
then	./a.out
else	echo "/*** Warning INT16 may have to be set ***/"
	warn=1
fi
if	$CC $Install/rand.c $LIB > /dev/null 2>&1
then	./a.out
else	echo "/*** Warning need to redefine random number function ***/"
	echo "#define sh_rand()"
	warn=1
fi
if	$CC $Install/ispipe.c $LIB > /dev/null 2>&1
then	./a.out
else	echo "/*** Warning PIPE_ERR not set ***/"
	warn=1
fi
if	$CC $Install/void.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then 	if	$CC $Install/proto.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
	then	echo "#define PROTO	1"
	fi
else	echo "#define void	int"
fi
if	$CC $Install/xmalloc.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	:
else	echo "#define malloc	mymalloc"
	echo "#define free	myfree"
fi
if	$CC $Install/setjmp.c $LIB > /dev/null 2>&1
then	./a.out 2> /dev/null
fi
: check for yellow pages service
if	$CC $Install/yellowp.c $LIB > /dev/null 2>&1
then	./a.out 2> /dev/null
fi
if	$CC $Install/getgroups.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	grep 'define.*NGROUPS[^_A-Za-z$]' $Inc/sys/param.h 2> /dev/null ||
	grep 'define.*NGROUPS[^_A-Za-z$]' $Inc/param.h 2> /dev/null
fi
if	$Install/shellmagic > /dev/null
then	echo "#define SHELLMAGIC	1"
fi
if	test -r $Inc/fcntl.h
then	d=-D_fcntl_
else	d=
fi
if	$CC $d $Install/fcntl.c $LIB > /dev/null 2>&1
then	./a.out 2> /dev/null
else	echo "#define NOFCNTL	1"
fi
if	grep 'R_OK' $Inc/sys/file.h > /tmp/conf$$.1 2>/dev/null
then	grep 'R_OK' $Inc/fcntl.h > /tmp/conf$$.2 2>/dev/null
	if	diff /tmp/conf$$.[12] >/dev/null 2>&1
	then	echo "#define R_OK_file_h	1"
	fi
	rm -f /tmp/conf$$.[12]
fi
if	grep 'define.*PATH_MAX[^_A-Za-z$]' $Inc/limits.h > /dev/null 2>&1
then	$CC -DLIM $Install/path.c $LIB > /dev/null 2>&1 && ./a.out
elif	grep 'define.*PATH_MAX[^_A-Za-z$]' $Inc/sys/param.h > /dev/null 2>&1
then	$CC  $Install/path.c $LIB > /dev/null 2>&1 && ./a.out
else	echo '#define PATH_MAX	1024'
fi
if	grep 'define.*HZ[^_A-Za-z$]' $Inc/sys/param.h > /dev/null 2>&1
then	$CC  $Install/hz.c $LIB > /dev/null 2>&1 && ./a.out
fi
grep 'define.*LOCK_EX[^_A-Za-z$]' $Inc/sys/file.h 2> /dev/null ||
	grep 'define.*F_SETLK[^_A-Za-z$]' $Inc/fcntl.h 2> /dev/null
grep 'define.*TIOCLBIC[^_A-Za-z$]' $Inc/sys/ioctl.h 2> /dev/null ||
	grep 'define.*TIOCLBIC[^_A-Za-z$]' $Inc/sys/nttyio.h 2> /dev/null
grep 'define.*TIOCGETD[^_A-Za-z$]' $Inc/sys/ioctl.h 2> /dev/null ||
	grep 'define.*TIOCGETD[^_A-Za-z$]' $Inc/sys/nttyio.h 2> /dev/null
grep 'define.*FIOLOOKLD[^_A-Za-z$]' $Inc/sys/ioctl.h 2> /dev/null ||
	grep 'define.*FIOLOOKLD[^_A-Za-z$]' $Inc/sys/filio.h 2> /dev/null
grep 'define.*FIONREAD[^_A-Za-z$]' $Inc/sys/ioctl.h 2> /dev/null ||
	grep 'define.*FIONREAD[^_A-Za-z$]' $Inc/sys/filio.h 2> /dev/null
if	$CC $Install/token.c $LIB > /dev/null 2>&1 && ./a.out /dev/null 2> /dev/null
then	if ./a.out ./a.out | grep _sibuf > /dev/null 2>&1
	then	:
	else echo "#define NOBUF	1"
	fi
else	echo "/*** Warning NOBUF may have to be set ***/"
fi
if	$CC $Install/setreuid.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	echo "#define SETREUID	1"
fi
if	$CC $Install/getppid.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	: 'The function getppid() is in the library'
else	echo "#define getppid()	1"
fi
if	$CC $Install/lstat.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	echo "#define LSTAT	1"
fi
if	$CC $Install/syscall.c $LIB > /dev/null 2>&1
then	./a.out 2> /dev/null
fi
if	$CC $Install/strchr.c $LIB > /dev/null 2>&1 && ./a.out 2>/dev/null
then	:
else	if	$CC -Dstrchr=index $Install/strchr.c $LIB > /dev/null 2>&1 && 
		./a.out 2>/dev/null
	then	echo "#define strchr	index"
		echo "#define strrchr	rindex"
	else	echo "/*** Warning strchr and strrchr may have to be set ***/"
	fi
fi
: create types for uids, pids, and time, if they do not already exist
grep -c uid_t $Inc/sys/types.h > /dev/null 2>&1 || echo "typedef int uid_t;"
grep -c gid_t $Inc/sys/types.h > /dev/null 2>&1 || echo "typedef int gid_t;"
grep -c pid_t $Inc/sys/types.h > /dev/null 2>&1 || echo "typedef int pid_t;"
grep -c time_t $Inc/sys/types.h > /dev/null 2>&1 || echo "typedef long time_t;"
grep -c clock_t $Inc/sys/types.h > /dev/null 2>&1 || 
	if	grep -c clock_t $Inc/sys/time.h > /dev/null 2>&1 
	then	echo "#include 	<sys/time.h>"
		echo "#undef _sys_time_"
	elif	grep -c clock_t $Inc/sys/types.h > /dev/null 2>&1
	then	echo "#include 	<time.h>"
		echo "#undef _time_"
	else	echo "typedef long clock_t;"
	fi
grep -c off_t $Inc/sys/types.h > /dev/null 2>&1 || echo "typedef long off_t;"
if	test -d /dev/fd
then	echo "#define DEVFD	1"
fi
: Check for VPIX
if	test -f /usr/bin/vpix
then	echo "#define VPIX	1"
fi
: Check for yellow pages
if	test -d /etc/yp || test -d /var/yp
then	echo "#define YELLOWP	1"
fi
: Check for file needed for RDS
if	test -r /etc/mnttab
then	echo "#define MNTTAB	\"/etc/mnttab\""
fi
: Check behavior of /bin/echo
if	test -f /bin/echo
then	if	test X"`/bin/echo -n`" = X
	then	echo "#define ECHO_N	1"
	fi
	if	test X"`/bin/echo '\c'`" = X'\c'
	then	echo "#define ECHO_RAW	1"
	else	if	test X"`/bin/echo -`" = X
		then	echo "#define ECHOPRINT	1"
		fi
	fi
fi
if	$CC $Install/fastfork.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
then	echo "#define VFORK	1"
	if	$CC $Install/bcopy.c $LIB > /dev/null 2>&1 && ./a.out 2> /dev/null
	then	: 'The function bcopy is in the library'
	else	echo "#define NOBCOPY	1"
	fi
fi
if	grep SIGCLD $Inc/signal.h >/dev/null 2>&1 ||
	grep SIGCLD $Inc/sys/signal.h >/dev/null 2>&1 ||
	grep SIGCHLD $Inc/signal.h >/dev/null 2>&1 ||
	grep SIGCHLD $Inc/sys/signal.h >/dev/null 2>&1
then	echo "#define JOBS	1"
fi	
if	grep VEOL2 $Inc/sys/termio.h >/dev/null 2>&1 ||
	grep VEOL2 $Inc/sys/termios.h >/dev/null 2>&1 ||
	grep VEOL2 $Inc/termios.h >/dev/null 2>&1 ||
	grep VEOL2 $Inc/sys/sgtty.h >/dev/null 2>&1 ||
	grep LCTLECH $Inc/sys/ioctl.h >/dev/null 2>&1
then	:
else	echo "#define RAWONLY	1"
fi
if	grep 'struct[ 	]*winsize'  $Inc/sys/termio.h >/dev/null 2>&1 ||
	grep 'struct[ 	]*winsize'  $Inc/sys/ioctl.h >/dev/null 2>&1 ||
	grep 'struct[ 	]*winsize'  $Inc/termios.h >/dev/null 2>&1 ||
	grep 'struct[ 	]*winsize'  $Inc/sys/termios.h >/dev/null 2>&1 ||
	grep 'struct[ 	]*winsize'  $Inc/sys/ptem.h >/dev/null 2>&1 ||
	grep 'struct[ 	]*winsize'  $Inc/sys/stream.h >/dev/null 2>&1 ||
	grep 'struct[ 	]*winsize'  $Inc/sys/sgtty.h >/dev/null 2>&1
then	echo "#define WINSIZE	1"
fi
if	test -f /usr/lib/dic/euc.dic
then	echo "#define MULTIBYTE	1"
fi
rm -f dummy.c
. ./OPTIONS
for i in ACCT BRACEPAT ECHOPRINT ESH ESHPLUS FLOAT FS_3D IODELAY JOBS \
	MULTIBYTE NEWTEST OLDTEST P_UID PDU POSIX RDS RAWONLY SEVENBIT \
	SUID_EXEC TIMEOUT VSH
do	: This could be done with eval, but eval broken in some shells
	j=0
	case $i in
	ACCT)		j=$ACCT;;
	BRACEPAT)	j=$BRACEPAT;;
	ECHOPRINT)	j=$ECHOPRINT;;
	ESH)		j=$ESH;;
	ESHPLUS)	j=$ESHPLUS;;
	FLOAT)		j=$FLOAT;;
	FS_3D)		j=$FS_3D;;
	JOBS)		j=$JOBS;;
	IODELAY)	j=$IODELAY
			if	test 0 -ne "$j" -a -r $Inc/sys/time.h && 
				$CC $Install/select.c > /dev/null 2>&1
			then	./a.out 2> /dev/null
			fi;;
	MULTIBYTE)	j=$MULTIBYTE;;
	NEWTEST)	j=$NEWTEST;;
	OLDTEST)	j=$OLDTEST;;
	P_UID)		j=$P_UID;;
	PDU)		j=$PDU
			if	test 0 -ne "$j" -a -f /usr/pdu/bin/pwd
			then	echo "#define PDUBIN	1"
			fi;;
	POSIX)		j=$POSIX;;
	RAWONLY)	j=$RAWONLY;;
	RDS)		j=$RDS;;
	SEVENBIT)	j=$SEVENBIT;;
	SUID_EXEC)	j=$SUID_EXEC;;
	TIMEOUT)	j=$TIMEOUT;;
	VSH)		j=$VSH;;
	esac
	case $j in
	0)	;;
	*)	echo "#define $i	$j" ;;
	esac
done
echo '#endif'
