summaryrefslogtreecommitdiff
path: root/usr/src/contrib/ast/lib/package/ast-ksh.pkg
blob: 6f2fec866f6530c96d622b346fe6b7277ffa0069 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
ast-ksh :PACKAGE: ksh93 libast libcmd libcoshell libsum libdll

:COVERS: ksh

:LICENSE: *.open

:CATEGORY: shells

:INDEX: ksh and support libraries

:DESCRIPTION:
	The AT&T Software Technology ast-ksh package from AT&T Research
	contains ksh and support libraries. This is the minimal set of
	components needed to build ksh.

:DETAILS: cyg
	:README:
		This package installs a standalone ksh93 executable ksh93.exe
		and its man page ksh93.1.  If /bin/ksh.exe does not exist then
		these symlinks
			/bin/ksh.exe => ksh93.exe
			/usr/share/man/man1/ksh93.1 => ksh.1
		are created.  This allows alternative ksh impelementations,
		e.g., /bin/pdksh.exe, to be selected by changing the ksh.exe
		and ksh.1 symbolic links.  In addition, ksh and ksh93 paths are
		added to /etc/shells if not already present.
		$()
		Each builtin or special command accepts the --man and --html
		options to list the man page on the standard error. The --???
		option describes the self documenting options available to all
		builtin and special commands.
		$()
		The stanadlone ksh is statically linked with the ast libcmd
		library which provides several builtin versions of /bin
		commands. "builtin | grep /opt/ast/bin" lists the libcmd
		builtins on the standard output. /opt/ast/bin/FOO accesses
		the FOO builtin, whether the /opt/ast/bin directory exists
		or not. "builtin FOO" allows /opt/ast/bin/FOO to be accessed
		as FOO, bypassing the $PATH setting. To enable all libcmd
		builtins do one of the following:
		  (a) create the directory /opt/ast/bin and the file
		      /opt/ast/bin/.paths with this line
		      	BUILTIN_LIB=.
		      and place /opt/ast/bin before /bin and /usr/bin in $PATH
		      (this will affect all ksh subshells and scripts)
		  (b) run "builtin $( builtin | sed -e '/\//!d' -e 's,.*/,,' )"
		      (this will affect only the current shell)
		Some scripts may run significantly faster with libcmd builtins
		enabled.
		$()
		The ast library checks the DOSPATHVARS environment variable
		for variable path values to convert to and from native windows
		format when cross-executing between cygwin and non-cygwin
		programs. The value is a space separated list of environment
		variables to convert. PATH is handled by cygwin so it is not
		converted by the ast library.
		$()
		The astksh cygwin source package provides a bootstrap build
		environment that is not suited for an edit/build/debug cycle.
		If you want to explore and modify the source then you should
		install the (non-cygwinized) ast-base package which includes
		AT&T nmake. With ast-base you will also be able to regenerate
		the astksh cygwin source and binary packages.
		$()
		For more information on ksh and other AT&T ast tools see
		   http://www.research.att.com/sw/download/
	:EXPORT:
		SHOPT_CMDLIB_DIR=1
	bin/ksh93.exe :INSTALL: bin/ksh.exe
	share/man/man1/ksh93.1 :INSTALL: man/man1/sh.1
	:POSTINSTALL:
		if	[ ! -e /bin/ksh.exe ]
		then	ln -fs ksh93.exe /bin/ksh.exe
			ln -fs ksh93.1 /usr/share/man/man1/ksh.1
		else	echo "/bin/ksh.exe already exists"
		fi
		if [ -f /etc/shells ]
		then	for i in /bin/ksh93 /bin/ksh /usr/bin/ksh93 /usr/bin/ksh
			do	if	grep $i /etc/shells >/dev/null 2>&1
				then	echo "$i already in /etc/shells"
				else	echo $i >> /etc/shells
					echo "$i added to /etc/shells"
				fi
			done
		else	echo "no /etc/shells file"
		fi
		exit 0
	:TEST: bin/ksh
		KSH=$<; cd src/cmd/ksh93/tests; CYGWIN="$$CYGWIN ntsec binmode" SHELL=$$KSH $$KSH shtests