dtksh: Upgrade ksh93 to 1.0.0-beta.2 2021-12-28

Patch from current ksh93 maintainer <https://github.com/ksh93/ksh>.

cde/programs/dtksh/ksh93/**:
- Upgraded. A load of bugs fixed, some minor features added.
  See NEWS from 2021-02-01 upwards.

cde/programs/dtksh/Makefile.am:
- Don't cd into ksh93 any more to invoke the package or shtests
  scripts; they now automatically find their directories.
- Pass $(CFLAGS) to build ksh with optimisation.
- Remove -D_std_malloc flag as vmalloc is now deprecated and disabled
  by default.
- Add a 'make check' target to Makefile.am that runs the ksh93
  regression tests on dtksh to make sure the additions don't interfere
  with anything. It skips running the tests with shcomp because CDE
  doesn't use that. The tests all pass here on Slackware 14.2. :-)

cde/programs/dtksh/init.patch:
- Removed; I've upstreamed it. It was the only one that wasn't upstreamed
  yet, and more code cleanups are coming, breaking downstream patches. If
  something needs updating, just email me a diff.

cde/programs/dtksh/dtkcmds.h:
- Update the ADDBUILTIN macro to remove the __PROTO__ macro use. The
  proto(1) tool, responsible for all such pre-C89 K&R C compatibility
  voodoo, has been removed, so that macro is no longer defined.

cde/programs/dtksh/setup.sh:
- Workaround script removed. I rewrote 'bin/package flat make' in a way
  that works correctly and changed Makefile.am to use that instead.

Hope this helps. Happy new year.
This commit is contained in:
Martijn Dekker
2022-01-02 14:34:46 +01:00
committed by Jon Trulson
parent d5e651ecf3
commit bf00d3b274
1179 changed files with 22005 additions and 45914 deletions

View File

@@ -1,260 +0,0 @@
/*
* {automake|configure} => {nmake|iffe} conversion support
*
* The first command line target overrides the default original source
* directory name $(MAKEFILE:D). The hard work is in the makefile using
* these assertions, since it must (manually) provide the nmake makefiles
* and config equivalent iffe scripts. The conversion makefile is typically
* named lib/package/PACKAGE.cvt in an ast package $PACKAGEROOT directory,
* and the conversion is run from the $PACKAGEROOT directory, e.g.:
*
* nmake -I lib/package -f PACKAGE-VERSION/PACKAGE.cvt
*
* The conversion requires the ast nmake, pax and tw commands.
*
* After the conversion you will be liberated from ./configure, *.in,
* *.am, automake, autom4te, libtool, make depend, and makefile
* recursion ordering. You can build from $PACKAGEROOT using the ast
* package(1) (which sets up the { HOSTTYPE PATH VPATH } environment):
*
* package make
*
* or cd into any arch/$HOSTTYPE/src subdirectory and rebuild that portion
* of the hierarchy with the ast nmake(1) (after setting PATH and VPATH):
*
* nmake
*
* The conversion assertions are:
*
* package :CONVERT: file ...
*
* files in the original source directory are copied
* and converted into the ./src and ./lib subdirectories
* the default original source directory is ./original
*
* package package name
* file original source file that must exist
*
* :OMIT: pattern
*
* files matching pattern are not copied into the converted
* directory
*
* pattern ksh pattern of files to omit
*
* :COPY: from to [ file ... ]
*
* files in the from directory are copied to the to directory
* the action may contain :MOVE: exceptions to the copy
*
* from original directory subdirectory
* . names the original directory
* .. names the
* to converted subdirectory
* libNAME => src/lib/libNAME
* NAME => src/cmd/NAME
* file files or files in subdirectories to be copied;
* explicit files are copied to the to directory;
* if no files are specified then the from hierarchy
* is recursively copied to the converted directory
*
* :MOVE: to file ...
*
* :COPY: assertion exceptions placed in the assertion's action
*
* to files or subdirectory files are copied to this directory
* file file or files in subdirectories to be copied
*
* :FILE: to file <<!
* contents
* !
*
* the :FILE: action is copied to the named file in the to directory
* the :FILE: action is usually specified using the here syntax to
* avoid make comment, quote and variable expansion
*
* :EDIT: to file ... | - pattern <<!
* edit script
* !
*
* the :EDIT: action is an ed(1) script applied to each file in the
* to directory after it has been copied from the original source
* directory; if to is - then the :EDIT: action is a sed(1) script
* that is applied to all files matching the file pattern during the
* copy from the original source directory; a file may be subject to
* both a sed(1) and ed(1) :EDIT:; the :EDIT: action is usually
* specified using the here syntax to avoid make comment, quote and
* variable expansion
*/
.CONVERT.ID. = "@(#)$Id: CONVERT (AT&T Research) 2004-03-19 $"
set nojobs noscan nowriteobject writestate=$$(MAKEFILE).ms
package = $(PWD:B)
here = !-=-=-=-=-!
hierarchy = src src/cmd src/lib
omit = .*|*.?(l)[ao]
original = $(MAKEFILE:D)
showedit = $(-debug:?p??)
CPFLAGS = -u
PAXFLAGS = -u -v
STDEDFLAGS = -
TW = tw
TWFLAGS = -CP
all : .VIRTUAL file
file : .VIRTUAL edit
edit : .VIRTUAL copy
copy : .VIRTUAL init
init : .VIRTUAL
.MAKEINIT : .cvt.init
.cvt.init : .MAKE .VIRTUAL .FORCE
local D
if D = "$(~.ARGS:O=1)"
if "$(D:T>FD)"
original := $(D)
.ARGS : .CLEAR $(~.ARGS:O>1)
end
end
.cvt.filter =
.cvt.package =
.cvt.atom : .FUNCTION
local N V
V := $(%:O=1)
let .cvt.$(V) = .cvt.$(V) + 1
return .cvt.$(V).$(.cvt.$(V))
.cvt.omit : .FUNCTION
return -s',^\(\(?K)?(*/)($(omit))?(/*))$,,$(showedit)'
.cvt.to : .FUNCTION
if "$(%)" == "."
return src
end
if "$(%)" == "*/*"
return src/$(%)
end
if "$(%)" == "lib*"
return src/lib/$(%)
end
return src/cmd/$(%)
":CONVERT:" : .MAKE .OPERATOR
local I
package := $(<)
I := $(hierarchy:C,$,/Makefile)
init : .cvt.verify $(I)
$(I) : .ACCEPT
test -d $(<:D) || $(MKDIR) -p $(<:D)
echo :MAKE: > $(<)
.cvt.verify : .MAKE .FORCE .REPEAT
local I
if I = "$(.cvt.package:T!=F)"
error 3 $(original): not a $(package) source directory: missing $(I)
end
.cvt.package := $(>:C,^,$$(original)/,)
":COPY:" : .MAKE .OPERATOR
local F T I A
F := $(>:O=1)
T := $(.cvt.to $(>:O=2))
A := $(.cvt.atom copy)
copy : $(A)
$(A) : .VIRTUAL
if F == "."
$(A) : $(T)
$(T) :
test -d $(<) || $(MKDIR) -p $(<)
for I $(>:O>2)
eval
$$(A) : $(I:D=$(T):B:S)
$(I:D=$(T):B:S) : $$(original)/$(I)
$$(CP) $$(CPFLAGS) $$(*) $$(<)
end
end
elif "$(F:T=FF)" || "$(F:N=*.(pax|t[bg]z))"
eval
$$(A) : $$(F)
test -d $(T) || $$(MKDIR) -p $(T)
cd $(T)
$$(PAX) $$(PAXFLAGS) -rf $$(*:P=A) -s ',^$(>:O=2)/*,,' $(.cvt.omit) $(.cvt.filter)
end
else
F := $$(original)/$(F)
if ! "$(@:V)"
eval
$$(A) : .FORCE
test -d $(T) || $$(MKDIR) -p $(T)
cd $(F:V)
$$(TW) $$(TWFLAGS) | $$(PAX) $$(PAXFLAGS) -rw $(.cvt.omit) $(.cvt.filter) $(T:P=A)
end
else
.cvt.move =
: $(@:V:@R)
eval
$$(A) : .FORCE
test -d $(T) || $$(MKDIR) -p $(T)
cd $(F:V)
$$(TW) $$(TWFLAGS) | $$(PAX) $$(PAXFLAGS) -rw $(.cvt.omit) $(.cvt.move) $(.cvt.filter) $(T:P=A)
end
end
end
":EDIT:" : .MAKE .OPERATOR
local A D F
D := $(>:O=1)
if D == "-"
A := ^$(>:O=2)^$$(SED) -e $(@:Q:/'\n'/ -e /G)
.cvt.filter += --action=$(A:@Q)
else
D := $(.cvt.to $(D))
F := $(>:O>1:C,^,$(D)/,)
edit : $(F)
eval
$$(F) :
$$(STDED) $$(STDEDFLAGS) $$(<) <<'$(here)'
$(@:V)
w
q
$(here)
end
end
":FILE:" : .MAKE .OPERATOR
local ( D F ) $(>)
local A
A := $(.cvt.atom file)
$(A) := $(@:V)
D := $(.cvt.to $(D))
file : $(D)/$(F)
eval
$$(D)/$$(F) :
test -d $$(<:D) || $$(MKDIR) -p $$(<:D)
cat > $$(<) <<'$(here)'
$$($(A):V)
$(here)
end
":MOVE:" : .MAKE .OPERATOR
local T I
T := ../../../$(.cvt.to $(>:O=1))
for I $(>:O>1)
if I == "*/"
.cvt.move += -s',^\(\(?K)$(I)),$(T)/,$(showedit)'
.cvt.move += -s',^\(\(?K)$(I:C%/$%%))$,,$(showedit)'
else
.cvt.move += -s',^\(\(?K)$(I))$,$(T)/$(I:B:S),$(showedit)'
end
end
":OMIT:" : .MAKE .OPERATOR
local P
for P $(>)
omit := $(omit)|$(P)
end

View File

@@ -1,45 +0,0 @@
/*
* normalize local -l* library conventions
*
* L [ [ G11 ... G1n ] ... [ Gg1 ... Ggn ] ] :MAPLIB: T1.c ... Tn.c
*
* if Giji not specified then G11 == L
* the first Ti.c that compiles/links with group -lGi1 ... -lGin
* but does not compile/link with no libraries maps
* -lL to require -lGi1 ... -lGin
* otherwise -lL is not required and maps to "no library required"
*/
":MAPLIB:" : .MAKE .OPERATOR
local L P
L := $(<:B:O=1)
if ! ( P = "$(<:B:O>1)" )
P := $(L)
end
$(LIBDIR)/lib/$(L) :INSTALL: $(L).req
eval
$(L).req : (CC) $$(>)
set -
r='-'
for i in $$(*)
do if $$(CC) -c $i > /dev/null
then g=
for p in $(P) -
do case $p in
-) if $$(CC) -o $$(<:B:S=.exe) $i $g > /dev/null 2>&1
then $$(CC) -o $$(<:B:S=.exe) $i > /dev/null 2>&1 || {
r="$g"
break 2
}
fi
g=
;;
*) g="$g -l$p"
;;
esac
done
fi
done 2>/dev/null
echo " $r" > $$(<)
rm -f $$(<:B:S=.exe) $$(*:B:S=$$(CC.SUFFIX.OBJECT))
end

View File

@@ -1,2 +0,0 @@
/* stub for pre-2000-05-01 nmake */
":MSGFUN:" : .MAKE .OPERATOR

View File

@@ -1,2 +0,0 @@
/* stub for pre-2000-05-01 nmake */
":MSGKEY:" : .MAKE .OPERATOR

View File

@@ -10,88 +10,19 @@ note * http://web.archive.org/web/20041227143022/http://www2.research.att.com/~g
note *
setv INSTALLROOT ../../..
setv PACKAGEROOT ../../../../..
setv AR ${mam_cc_AR} ${mam_cc_AR_ARFLAGS}
setv ARFLAGS rc
setv AS as
setv ASFLAGS
setv CC cc
setv mam_cc_FLAGS
setv KSH_RELFLAGS
setv CCFLAGS ${-debug-symbols?1?${mam_cc_DEBUG} -D_BLD_DEBUG?${mam_cc_OPTIMIZE}?}
setv CCLDFLAGS ${-strip-symbols?1?${mam_cc_LD_STRIP}??}
setv COTEMP $$
setv CPIO cpio
setv CPIOFLAGS
setv CPP "${CC} -E"
setv F77 f77
setv HOSTCC ${CC}
setv IGNORE
setv LD ld
setv LDFLAGS
setv LEX lex
setv LEXFLAGS
setv LPR lpr
setv LPRFLAGS
setv M4FLAGS
setv NMAKE nmake
setv NMAKEFLAGS
setv PR pr
setv PRFLAGS
setv SHELL /bin/sh
setv SILENT
setv TAR tar
setv YACC yacc
setv YACCFLAGS -d
make ${PACKAGEROOT}/lib/package/ast.lic
done ${PACKAGEROOT}/lib/package/ast.lic
make install
make hurl
make hurl.sh
done hurl.sh
meta hurl %.sh>% hurl.sh hurl
prev hurl.sh
setv LICENSE -DLICENSE="since=2003,author=gsf"
exec - case static,port:$OPTIND:$RANDOM in
exec - ?*:*:*|*::*|*:*:$RANDOM)
exec - ;;
exec - *) if ENV= LC_ALL=C x= $SHELL -nc '[[ a || b ]] && : ${list[level]} !(pattern)' 2>/dev/null
exec - then if grep '### .*archaic.* ###' >/dev/null
exec - then : hurl contains archaic constructs :
exec - else ENV= LC_ALL=C $SHELL -n hurl.sh
exec - fi
exec - fi
exec - ;;
exec - esac
exec - case '${mam_cc_SHELLMAGIC}' in
exec - "") case 184 in
exec - 0) cp hurl.sh hurl
exec - ;;
exec - *) {
exec - i=`(read x; echo $x) < hurl.sh`
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - hurl.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 2003-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - } > hurl
exec - ;;
exec - esac
exec - ;;
exec - *) cat - hurl.sh > hurl <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 2003-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
exec - test -w hurl -a -x hurl || chmod u+w,+x hurl
done hurl generated
make iffe
make iffe.sh
done iffe.sh
meta iffe %.sh>% iffe.sh iffe
prev iffe.sh
setv LICENSE -DLICENSE="since=1994,author=gsf+kpv"
exec - case static,port:$OPTIND:$RANDOM in
exec - ?*:*:*|*::*|*:*:$RANDOM)
exec - ;;
@@ -112,16 +43,13 @@ make install
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - iffe.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-author?Phong Vo <kpv@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - cat iffe.sh
exec - } > iffe
exec - ;;
exec - esac
exec - ;;
exec - *) cat - iffe.sh > iffe <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-author?Phong Vo <kpv@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
@@ -132,7 +60,6 @@ make install
done mktest.sh
meta mktest %.sh>% mktest.sh mktest
prev mktest.sh
setv LICENSE -DLICENSE="since=2005,author=gsf"
exec - case static,port:$OPTIND:$RANDOM in
exec - ?*:*:*|*::*|*:*:$RANDOM)
exec - ;;
@@ -153,16 +80,13 @@ make install
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - mktest.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 2005-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - cat mktest.sh
exec - } > mktest
exec - ;;
exec - esac
exec - ;;
exec - *) cat - mktest.sh > mktest <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 2005-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
@@ -193,16 +117,13 @@ make install
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - package.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - cat package.sh
exec - } > package
exec - ;;
exec - esac
exec - ;;
exec - *) cat - package.sh > package <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
@@ -213,7 +134,6 @@ make install
done regress.sh
meta regress %.sh>% regress.sh regress
prev regress.sh
setv LICENSE -DLICENSE="since=1995,author=gsf"
exec - case static,port:$OPTIND:$RANDOM in
exec - ?*:*:*|*::*|*:*:$RANDOM)
exec - ;;
@@ -234,16 +154,13 @@ make install
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - regress.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1995-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - cat regress.sh
exec - } > regress
exec - ;;
exec - esac
exec - ;;
exec - *) cat - regress.sh > regress <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1995-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
@@ -254,7 +171,6 @@ make install
done rt.sh
meta rt %.sh>% rt.sh rt
prev rt.sh
setv LICENSE -DLICENSE="since=2005,author=gsf"
exec - case static,port:$OPTIND:$RANDOM in
exec - ?*:*:*|*::*|*:*:$RANDOM)
exec - ;;
@@ -275,16 +191,13 @@ make install
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - rt.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 2005-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - cat rt.sh
exec - } > rt
exec - ;;
exec - esac
exec - ;;
exec - *) cat - rt.sh > rt <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 2005-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
@@ -315,68 +228,23 @@ make install
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - crossexec.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - cat crossexec.sh
exec - } > crossexec
exec - ;;
exec - esac
exec - ;;
exec - *) cat - crossexec.sh > crossexec <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
exec - test -w crossexec -a -x crossexec || chmod u+w,+x crossexec
done crossexec generated
make ditto
make ditto.sh
done ditto.sh
meta ditto %.sh>% ditto.sh ditto
prev ditto.sh
setv LICENSE -DLICENSE="since=2001,author=gsf+ek"
exec - case static,port:$OPTIND:$RANDOM in
exec - ?*:*:*|*::*|*:*:$RANDOM)
exec - ;;
exec - *) if ENV= LC_ALL=C x= $SHELL -nc '[[ a || b ]] && : ${list[level]} !(pattern)' 2>/dev/null
exec - then if grep '### .*archaic.* ###' >/dev/null
exec - then : ditto contains archaic constructs :
exec - else ENV= LC_ALL=C $SHELL -n ditto.sh
exec - fi
exec - fi
exec - ;;
exec - esac
exec - case '${mam_cc_SHELLMAGIC}' in
exec - "") case 232 in
exec - 0) cp ditto.sh ditto
exec - ;;
exec - *) {
exec - i=`(read x; echo $x) < ditto.sh`
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - ditto.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-author?Lefty Koutsofios <ek@research.att.com>][-copyright?Copyright (c) 2001-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - } > ditto
exec - ;;
exec - esac
exec - ;;
exec - *) cat - ditto.sh > ditto <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-author?Lefty Koutsofios <ek@research.att.com>][-copyright?Copyright (c) 2001-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
exec - test -w ditto -a -x ditto || chmod u+w,+x ditto
done ditto generated
make execrate
make execrate.sh
done execrate.sh
meta execrate %.sh>% execrate.sh execrate
prev execrate.sh
setv LICENSE -DLICENSE="since=2002,author=gsf"
exec - case static,port:$OPTIND:$RANDOM in
exec - ?*:*:*|*::*|*:*:$RANDOM)
exec - ;;
@@ -397,16 +265,13 @@ make install
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - execrate.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 2002-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - cat execrate.sh
exec - } > execrate
exec - ;;
exec - esac
exec - ;;
exec - *) cat - execrate.sh > execrate <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 2002-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
@@ -437,16 +302,13 @@ make install
exec - case $i in
exec - '#!'*|*'||'*|':'*|'":"'*|"':'"*) echo "$i" ;;
exec - esac
exec - cat - filter.sh <<'!'
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - cat filter.sh
exec - } > filter
exec - ;;
exec - esac
exec - ;;
exec - *) cat - filter.sh > filter <<'!'
exec - ${mam_cc_SHELLMAGIC}
exec - USAGE_LICENSE="[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"
exec - !
exec - ;;
exec - esac
@@ -542,56 +404,10 @@ make install
done mamake.c
meta mamake.o %.c>%.o mamake.c mamake
prev mamake.c
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -DUSAGE_LICENSE=\""[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"\" -c mamake.c
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -c mamake.c
done mamake.o generated
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o mamake mamake.o
done mamake generated
make proto
make proto.o
make proto.c
done proto.c
meta proto.o %.c>%.o proto.c proto
prev proto.c
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -c proto.c
done proto.o generated
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o proto proto.o
done proto generated
make ratz
make ratz.o
make ratz.c
make unix.h implicit
done unix.h dontcare virtual
make alloc.h implicit
done alloc.h dontcare virtual
make unixio.h implicit
done unixio.h dontcare virtual
make ast_std.h implicit
done ast_std.h dontcare virtual
make windows.h implicit
done windows.h dontcare virtual
make io.h implicit
done io.h dontcare virtual
make direct.h implicit
done direct.h dontcare virtual
prev ast.h implicit
done ratz.c
meta ratz.o %.c>%.o ratz.c ratz
prev ratz.c
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -c ratz.c
done ratz.o generated
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o ratz ratz.o
done ratz generated
make release
make release.o
make release.c
prev ast.h implicit
done release.c
meta release.o %.c>%.o release.c release
prev release.c
exec - ${CC} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} -DUSAGE_LICENSE=\""[-author?Glenn Fowler <gsf@research.att.com>][-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property][-license?http://www.eclipse.org/org/documents/epl-v10.html]"\" -c release.c
done release.o generated
exec - ${CC} ${CCLDFLAGS} ${mam_cc_FLAGS} ${KSH_RELFLAGS} ${CCFLAGS} ${LDFLAGS} -o release release.o
done release generated
make mprobe
make mprobe.sh
done mprobe.sh
@@ -682,11 +498,6 @@ make install
exec - then mkdir -p ${INSTALLROOT}/bin
exec - fi
done ${INSTALLROOT}/bin generated
make ${INSTALLROOT}/bin/hurl
prev ${INSTALLROOT}/bin
prev hurl
exec - test '' = 'hurl' || ${STDCMP} 2>/dev/null -s hurl ${INSTALLROOT}/bin/hurl || { ${STDMV} ${INSTALLROOT}/bin/hurl ${INSTALLROOT}/bin/hurl.old 2>/dev/null || true; ${STDCP} hurl ${INSTALLROOT}/bin/hurl ;}
done ${INSTALLROOT}/bin/hurl generated
make ${INSTALLROOT}/bin/iffe
prev iffe
exec - test '' = 'iffe' || ${STDCMP} 2>/dev/null -s iffe ${INSTALLROOT}/bin/iffe || { ${STDMV} ${INSTALLROOT}/bin/iffe ${INSTALLROOT}/bin/iffe.old 2>/dev/null || true; ${STDCP} iffe ${INSTALLROOT}/bin/iffe ;}
@@ -775,86 +586,24 @@ make install
prev crossexec
exec - test '' = 'crossexec' || ${STDCMP} 2>/dev/null -s crossexec ${INSTALLROOT}/bin/crossexec || { ${STDMV} ${INSTALLROOT}/bin/crossexec ${INSTALLROOT}/bin/crossexec.old 2>/dev/null || true; ${STDCP} crossexec ${INSTALLROOT}/bin/crossexec ;}
done ${INSTALLROOT}/bin/crossexec generated
make ${INSTALLROOT}/bin/ditto
prev ditto
exec - test '' = 'ditto' || ${STDCMP} 2>/dev/null -s ditto ${INSTALLROOT}/bin/ditto || { ${STDMV} ${INSTALLROOT}/bin/ditto ${INSTALLROOT}/bin/ditto.old 2>/dev/null || true; ${STDCP} ditto ${INSTALLROOT}/bin/ditto ;}
done ${INSTALLROOT}/bin/ditto generated
make ${INSTALLROOT}/bin/filter
prev filter
exec - test '' = 'filter' || ${STDCMP} 2>/dev/null -s filter ${INSTALLROOT}/bin/filter || { ${STDMV} ${INSTALLROOT}/bin/filter ${INSTALLROOT}/bin/filter.old 2>/dev/null || true; ${STDCP} filter ${INSTALLROOT}/bin/filter ;}
done ${INSTALLROOT}/bin/filter generated
make ${PACKAGEROOT}/lib/package
exec - if test ! -d ${PACKAGEROOT}/lib/package
exec - then mkdir -p ${PACKAGEROOT}/lib/package
exec - fi
done ${PACKAGEROOT}/lib/package generated
make ${PACKAGEROOT}/lib/package/package.mk
prev ${PACKAGEROOT}/lib/package
make package.mk
done package.mk
exec - test '' = 'package.mk' || ${STDCMP} 2>/dev/null -s package.mk ${PACKAGEROOT}/lib/package/package.mk || { ${STDMV} ${PACKAGEROOT}/lib/package/package.mk ${PACKAGEROOT}/lib/package/package.mk.old 2>/dev/null || true; ${STDCP} package.mk ${PACKAGEROOT}/lib/package/package.mk ;}
done ${PACKAGEROOT}/lib/package/package.mk generated
make ${PACKAGEROOT}/lib/package/CONVERT.mk
make CONVERT.mk
done CONVERT.mk
exec - test '' = 'CONVERT.mk' || ${STDCMP} 2>/dev/null -s CONVERT.mk ${PACKAGEROOT}/lib/package/CONVERT.mk || { ${STDMV} ${PACKAGEROOT}/lib/package/CONVERT.mk ${PACKAGEROOT}/lib/package/CONVERT.mk.old 2>/dev/null || true; ${STDCP} CONVERT.mk ${PACKAGEROOT}/lib/package/CONVERT.mk ;}
done ${PACKAGEROOT}/lib/package/CONVERT.mk generated
make ${INSTALLROOT}/lib/make
exec - if test ! -d ${INSTALLROOT}/lib/make
exec - then mkdir -p ${INSTALLROOT}/lib/make
exec - fi
done ${INSTALLROOT}/lib/make generated
make ${INSTALLROOT}/lib/make/package.mk
prev ${INSTALLROOT}/lib/make
prev package.mk
exec - test '' = 'package.mk' || ${STDCMP} 2>/dev/null -s package.mk ${INSTALLROOT}/lib/make/package.mk || { ${STDMV} ${INSTALLROOT}/lib/make/package.mk ${INSTALLROOT}/lib/make/package.mk.old 2>/dev/null || true; ${STDCP} package.mk ${INSTALLROOT}/lib/make/package.mk ;}
done ${INSTALLROOT}/lib/make/package.mk generated
make ${INSTALLROOT}/lib/make/PROBE.mk
make PROBE.mk
done PROBE.mk
exec - test '' = 'PROBE.mk' || ${STDCMP} 2>/dev/null -s PROBE.mk ${INSTALLROOT}/lib/make/PROBE.mk || { ${STDMV} ${INSTALLROOT}/lib/make/PROBE.mk ${INSTALLROOT}/lib/make/PROBE.mk.old 2>/dev/null || true; ${STDCP} PROBE.mk ${INSTALLROOT}/lib/make/PROBE.mk ;}
done ${INSTALLROOT}/lib/make/PROBE.mk generated
make ${INSTALLROOT}/lib/make/TEST.mk
make TEST.mk
done TEST.mk
exec - test '' = 'TEST.mk' || ${STDCMP} 2>/dev/null -s TEST.mk ${INSTALLROOT}/lib/make/TEST.mk || { ${STDMV} ${INSTALLROOT}/lib/make/TEST.mk ${INSTALLROOT}/lib/make/TEST.mk.old 2>/dev/null || true; ${STDCP} TEST.mk ${INSTALLROOT}/lib/make/TEST.mk ;}
done ${INSTALLROOT}/lib/make/TEST.mk generated
make ${INSTALLROOT}/lib/make/WWW.mk
make WWW.mk
done WWW.mk
exec - test '' = 'WWW.mk' || ${STDCMP} 2>/dev/null -s WWW.mk ${INSTALLROOT}/lib/make/WWW.mk || { ${STDMV} ${INSTALLROOT}/lib/make/WWW.mk ${INSTALLROOT}/lib/make/WWW.mk.old 2>/dev/null || true; ${STDCP} WWW.mk ${INSTALLROOT}/lib/make/WWW.mk ;}
done ${INSTALLROOT}/lib/make/WWW.mk generated
make ${INSTALLROOT}/lib/make/MSGFUN.mk
make MSGFUN.mk
done MSGFUN.mk
exec - test '' = 'MSGFUN.mk' || ${STDCMP} 2>/dev/null -s MSGFUN.mk ${INSTALLROOT}/lib/make/MSGFUN.mk || { ${STDMV} ${INSTALLROOT}/lib/make/MSGFUN.mk ${INSTALLROOT}/lib/make/MSGFUN.mk.old 2>/dev/null || true; ${STDCP} MSGFUN.mk ${INSTALLROOT}/lib/make/MSGFUN.mk ;}
done ${INSTALLROOT}/lib/make/MSGFUN.mk generated
make ${INSTALLROOT}/lib/make/MSGKEY.mk
make MSGKEY.mk
done MSGKEY.mk
exec - test '' = 'MSGKEY.mk' || ${STDCMP} 2>/dev/null -s MSGKEY.mk ${INSTALLROOT}/lib/make/MSGKEY.mk || { ${STDMV} ${INSTALLROOT}/lib/make/MSGKEY.mk ${INSTALLROOT}/lib/make/MSGKEY.mk.old 2>/dev/null || true; ${STDCP} MSGKEY.mk ${INSTALLROOT}/lib/make/MSGKEY.mk ;}
done ${INSTALLROOT}/lib/make/MSGKEY.mk generated
make ${INSTALLROOT}/lib/make/MAPLIB.mk
make MAPLIB.mk
done MAPLIB.mk
exec - test '' = 'MAPLIB.mk' || ${STDCMP} 2>/dev/null -s MAPLIB.mk ${INSTALLROOT}/lib/make/MAPLIB.mk || { ${STDMV} ${INSTALLROOT}/lib/make/MAPLIB.mk ${INSTALLROOT}/lib/make/MAPLIB.mk.old 2>/dev/null || true; ${STDCP} MAPLIB.mk ${INSTALLROOT}/lib/make/MAPLIB.mk ;}
done ${INSTALLROOT}/lib/make/MAPLIB.mk generated
make ${INSTALLROOT}/bin/mamake
prev mamake
exec - test '' = 'mamake' || ${STDCMP} 2>/dev/null -s mamake ${INSTALLROOT}/bin/mamake || { ${STDMV} ${INSTALLROOT}/bin/mamake ${INSTALLROOT}/bin/mamake.old 2>/dev/null || true; ${STDCP} mamake ${INSTALLROOT}/bin/mamake ;}
done ${INSTALLROOT}/bin/mamake generated
make ${INSTALLROOT}/bin/proto
prev proto
exec - test '' = 'proto' || ${STDCMP} 2>/dev/null -s proto ${INSTALLROOT}/bin/proto || { ${STDMV} ${INSTALLROOT}/bin/proto ${INSTALLROOT}/bin/proto.old 2>/dev/null || true; ${STDCP} proto ${INSTALLROOT}/bin/proto ;}
done ${INSTALLROOT}/bin/proto generated
make ${INSTALLROOT}/bin/ratz
prev ratz
exec - test '' = 'ratz' || ${STDCMP} 2>/dev/null -s ratz ${INSTALLROOT}/bin/ratz || { ${STDMV} ${INSTALLROOT}/bin/ratz ${INSTALLROOT}/bin/ratz.old 2>/dev/null || true; ${STDCP} ratz ${INSTALLROOT}/bin/ratz ;}
done ${INSTALLROOT}/bin/ratz generated
make ${INSTALLROOT}/bin/release
prev release
exec - test '' = 'release' || ${STDCMP} 2>/dev/null -s release ${INSTALLROOT}/bin/release || { ${STDMV} ${INSTALLROOT}/bin/release ${INSTALLROOT}/bin/release.old 2>/dev/null || true; ${STDCP} release ${INSTALLROOT}/bin/release ;}
done ${INSTALLROOT}/bin/release generated
make __proto_stub
note *
note * proto(1) has been removed, but install a backwards compatibility stub
note * that allows old Mamfiles containing proto commands to keep working.
note *
exec - src=${PACKAGEROOT}/src/cmd/INIT/proto.sh
exec - dst=${INSTALLROOT}/bin/proto
exec - ${STDCMP} 2>/dev/null -s $src $dst || { ${STDMV} $dst $dst.old 2>/dev/null || true; ${STDCP} $src $dst ;}
exec - test -w $dst && test -x $dst || chmod u+w,+x $dst
done __proto_stub dontcare virtual
make ${INSTALLROOT}/bin/mkdir
make mkdir.sh
done mkdir.sh
@@ -1089,18 +838,6 @@ make install
exec - then mkdir -p ${INSTALLROOT}/include/ast
exec - fi
done ${INSTALLROOT}/include/ast generated
make ${INSTALLROOT}/include/ast/prototyped.h
prev ${INSTALLROOT}/include/ast
make prototyped.h
prev ${INSTALLROOT}/bin/proto
exec - proto -f /dev/null > h.${COTEMP}.h
exec - if cmp 2>/dev/null -s h.${COTEMP}.h prototyped.h
exec - then rm -f h.${COTEMP}.h
exec - else mv h.${COTEMP}.h prototyped.h
exec - fi
done prototyped.h generated
exec - test '' = 'prototyped.h' || ${STDCMP} 2>/dev/null -s prototyped.h ${INSTALLROOT}/include/ast/prototyped.h || { ${STDMV} ${INSTALLROOT}/include/ast/prototyped.h ${INSTALLROOT}/include/ast/prototyped.h.old 2>/dev/null || true; ${STDCP} prototyped.h ${INSTALLROOT}/include/ast/prototyped.h ;}
done ${INSTALLROOT}/include/ast/prototyped.h generated
make ${INSTALLROOT}/lib/lib
exec - if test ! -d ${INSTALLROOT}/lib/lib
exec - then mkdir -p ${INSTALLROOT}/lib/lib

View File

@@ -1,13 +0,0 @@
/*
* @(#)probe (AT&T Bell Laboratories) 11/11/91
*
* <lang> <tool> :PROBE: *.probe *.sh *
*
* common probe script installation
* generates probe.sh and probe in .
*/
":PROBE:" : .MAKE .OPERATOR
probe.sh : $(LIBDIR)/probe/$(<:O=1)/probe $(>:N=*.(probe|sh))
cat $(*) > $(<)
$(LIBDIR)/probe/$(<:O=1)/$(<:O=2) :INSTALLDIR: probe $(>:N!=*.(probe|sh))

View File

@@ -8,7 +8,7 @@
12-06-06 iffe.sh: check for -l* in reverse and accumulative order (e.g., for -last & -lm)
12-06-04 package.sh: always check $INSTALLROOT/lib/package/profile
12-05-31 Makefile: ID=ast; $(INSTALLROOT)/prototyped.h => $(INSTALLROOT)/$(ID)/prototyped.h
12-05-28 iffe.sh: api foo YYYYMMDD => FOOAPI(rel) test macro
12-05-28 iffe.sh: API foo YYYYMMDD => FOOAPI(rel) test macro
12-05-24 package.sh: change admin.db comment => owner attributes
12-04-25 ratz.c: add sear -k option to keep installation tmp dir on exit
12-04-17 package.sh: skip sh version logic for ``use''
@@ -90,14 +90,14 @@
09-10-21 iffe.sh,Makefile: test -e is not in ksh88!
09-10-06 iffe.sh: handle cc -E #error with 0 exit status (sgi)
09-10-06 package.sh: stub in ar intercept checks -- not used yet
09-10-06 ar.ibm.risc: add ar intercept because some aix require -Xfoo first!!
09-10-06 ar.ibm.risc: add ar intercept because some AIX require -Xfoo first!!
09-09-24 regress.sh: fix UMASK logic to create test support files before umask
09-08-28 release.c: change docs to mention stdin if no file operands
09-08-24 package.sh: fix isascii() bug that failed on od(1) trailing space
09-08-20 make.probe: add CC.SHARED.NAME
09-08-20 regress.sh: add { JOB CONTINUE EXITED KILL FIFO }
09-08-11 package.sh: filter lines containing : for package results
09-07-31 make.probe: add CC.AR.ARFLAGS (for aix ar -xany)
09-07-31 make.probe: add CC.AR.ARFLAGS (for AIX ar -xany)
09-07-31 package.sh,cc.*: fix -dumpmachine to handle 32/64/* bit options
09-06-24 package.sh: fix admin.db output formatting
09-05-05 package.sh: export dll hackery environment vars
@@ -145,7 +145,7 @@
08-04-28 regress.sh: fix EXPORT quoting
08-04-28 regress.sh: fix UNIT set check args too
08-04-24 rt.sh: exit code > 256 => signal termination
08-04-10 C+probe: change probe_so order to check .so last (macos ld workaround)
08-04-10 C+probe: change probe_so order to check .so last (Mac OS X ld workaround)
08-04-01 package.sh: handle multiple admin HOSTTYPEs per HOST
08-03-28 C+probe: add C++ #include <iostream> (no extension) dir probes
08-03-17 regress.sh: fix trap on EXIT, add terminated note to final tally
@@ -153,8 +153,8 @@
08-02-02 make.probe: add CC.RUNPATH to match default -L order
08-01-31 package.sh: check lib64 for LD_LIBRARY_PATH
08-01-31 iffe.sh: tweak ancient /bin/sh workarounds
08-01-28 make.probe: darwin ld export dynamic is -force_flat_namespace
08-01-28 C+probe: handle sgi cc error message but exit 0 botch(es)
08-01-28 make.probe: Darwin ld export dynamic is -force_flat_namespace
08-01-28 C+probe: handle SGI cc error message but exit 0 botch(es)
08-01-23 package.sh: fix checksum doc typo
08-01-09 C+probe: add __FUNCTION__ to the undef (don't check) list
07-12-14 iffe.sh: add set nooptimize
@@ -222,8 +222,8 @@
06-03-05 make.probe: work around pedantic bash 3.1 mismatched " in `.`
06-02-14 package.sh: "results failed test" == "results test failed"
cc.sgi.*: add _AST_cc_OPTIONS parameterization, -OPT:Olimit=0
cc.linux.ia64-icc: add for intel cc
06-02-02 package.sh: freebsd stuck with os version for all arch
cc.linux.ia64-icc: add for Intel cc
06-02-02 package.sh: FreeBSD stuck with OS version for all arch
06-02-01 package.mk: fix locale logic (tw -d requires dir arg)
06-01-31 package.sh: require $CC only for make|test
06-01-30 package.sh,hurl.sh: use the backwards-compatible --http-passwd
@@ -233,9 +233,9 @@
hurl.sh: wget --http-pass => --http-password
06-01-11 package.mk: pass package.license.class to make --mam too
package.mk: variants=pattern => --variants=pattern
package.sh: darwin rel<=7 => darwin7.ppc
package.sh: freebsd rel<=4 => freebsd4
package.sh: freebsd rel<=5 => freebsd5
package.sh: Darwin rel<=7 => darwin7.ppc
package.sh: FreeBSD rel<=4 => freebsd4
package.sh: FreeBSD rel<=5 => freebsd5
05-12-07 iffe.sh: don't emit <stdio.h> if <sfio.h>|<ast.h> (XXX)
05-12-05 make.probe: disable readonly.exe core dump via ulimit -c 0
05-09-22 mktest.sh: add EXEC [ ++NOOUTPUT ++NOERROR ++NOEXIT ]
@@ -261,7 +261,7 @@
iffe.sh: fix 'op var - ... - ...' grouping logic
05-04-15 rt.sh: handle autom4ate style
05-04-11 regress.sh: fix unit name when command line unit also specified
rt.sh: handle all ast package test output formats
rt.sh: handle all AST package test output formats
package.sh: fix make docs for options passed to underlying make
05-04-08 package.sh: cp -p makerules.mo to $OK to preserve mtime
regress.sh: add "TITLE name" to change TEST output title
@@ -276,7 +276,7 @@
package.sh: admin action now properly resets sibling remote logs
package.mk: relax unknown/unwritten package messages to warnings
package.sh: handle space in command line name=value
make.probe: add mvs -Wc,dll,exportall,longname,rent to CC.DLL probe
make.probe: add MVS -Wc,dll,exportall,longname,rent to CC.DLL probe
05-02-24 package.sh: hosttype *.powerpc => *.ppc
cc.lynxos.ppc,ldd.lynxos.ppc: add
05-02-22 mamake.c: fix { -G --debug-symbols -S --strip-symbols } MAMAKEFLAGS bug
@@ -329,7 +329,7 @@
package.mk: add the runtime package type (no *.[ah])
iffe.sh: fix key test reports
04-08-26 Makefile: { add m2.c m3.c } -lm tests for { frexp[l] ldexp[l] }
04-08-11 package.mk: handle HOSTTYPE for solaris > 9
04-08-11 package.mk: handle HOSTTYPE for Solaris > 9
package.sh: add `checkaout proto' for { make view }
package.sh: check for { md5sum md5 }
iffe.sh: add {if|elif|else|endif} test ...
@@ -355,7 +355,7 @@
regress.sh: INPUT and OUTPUT handle -f for printf instead of print
04-06-11 package.sh: make sure $INSTALLROOT/bin is in front of $PATH
package.sh: skip nmake if older than 2000-10-31
04-05-20 package.sh: fix arg vs. package parse with - or '' to disambuguate
04-05-20 package.sh: fix arg vs. package parse with - or '' to disambiguate
04-05-11 package.sh: package verbose update lists closure for package setup
package.sh: add src/lib/libardir to nmake proto bootstrap
regress.sh: probe for rm -u vs. chmod -R u+rwx
@@ -387,7 +387,7 @@
04-03-18 iffe.sh: -d2 does not remove core dumps on exit
04-03-17 package.sh: fix make recurse arg/action order
04-02-29 package.sh: add regress action to compare current and previous tests
package.sh: fix sgi.mips[23] HOSTTYPE test for old irix cc
package.sh: fix sgi.mips[23] HOSTTYPE test for old IRIX cc
package.sh: add `export variable ...'
package.sh: admin action now handles host name with non-id chars
package.sh: non-numeric M T W in admin.db disables that action
@@ -423,7 +423,7 @@
03-09-23 ratz.c: fix tar header number parse bug that skipped to next number
regress.sh: rm cleanup now handles files matching -*
03-09-11 iffe.sh: add unnamed { ... } blocks
regress.sh: add COPY from to, like MOVE but comprison still done
regress.sh: add COPY from to, like MOVE but comparison still done
regress.sh: rm -rfu to handle test dirs w/o u+rwx
03-08-14 Makefile: add hello.c to the manifest
03-08-11 package.sh: fix `html binary' generation
@@ -447,9 +447,9 @@
03-06-04 make.probe: add +forceread +noforceread
03-05-11 hurl.sh: handle http://host:port/path
03-05-06 package.sh: fix setup action PACKAGEROOT and INIT logic
03-05-05 package.mk: fix cygwin tarball names
03-05-05 package.mk: fix Cygwin tarball names
03-04-30 package.sh: move (cc|ld|ldd).$HOSTTYPE updates from Makefile
03-04-27 make.probe: fix mvs CC.PREFIX.SHARED "lib" => ""
03-04-27 make.probe: fix MVS CC.PREFIX.SHARED "lib" => ""
make.probe: add CC.DLL.DIR = $(BINDIR) or $(LIBDIR)
make.probe: add { CC.LD.LAZY CC.LD.NOLAZY CC.LD.RECORD CC.LD.NORECORD }
probe.win32: sync with latest CC.*
@@ -467,7 +467,7 @@
03-04-11 package.mk: tidy up cyg tarballs
package.sh: fix old shell clash between get() and $get
03-04-05 package.mk: restore *.inx generation somehow lost during cyg additions
package.sh: add pthread_num_processors_np() last resort for cpu count
package.sh: add pthread_num_processors_np() last resort for CPU count
package.sh: use `make believe' to accept mamake generated files
package.sh: handle `make [make-flags] [target ...]'
mamake.c: ignore -e
@@ -475,14 +475,14 @@
package.sh: switch to `package setup' instructions
03-03-19 package.sh: add registry checks for `host cpu'
package.sh: `results failed' now lists core dump messages
03-03-17 package.sh: on cygwin verify 'ntsec binmode' in $CYGWIN or die
03-03-17 package.sh: on Cygwin verify 'ntsec binmode' in $CYGWIN or die
Makefile: install gcc wrapper if no cc
package.mk: add :DETAILS: { :README: :EXPORT: :INSTALL: :TEST: } ops
03-03-12 package.mk: add :DETAILS: for style-specific details
03-03-11 package.sh: add beta setup/update support
TEST.mk: add (TESTCC) prereq for .sh tests
03-03-07 hurl.sh: add
03-03-06 iffe.sh: fix lib win32 test cygwin vs native incompatibility
03-03-06 iffe.sh: fix lib Win32 test Cygwin vs native incompatibility
iffe.sh: change internal stdio.h guard to handle C++ inline vs. macro
03-03-03 package.sh: check for curl or wget for update
package.sh: add setup action == update read make
@@ -490,7 +490,7 @@
mamake.c: treat name+=value args like name=value
mamake.c: add ${var?*|value?match?no-match?}
mamake.c: fix archive vs. dynamic bind logic
03-02-28 package.sh: add the "cyg" (cygwin) package type
03-02-28 package.sh: add the "cyg" (Cygwin) package type
package.mk: add "cyg" stubs, :CATEGORY: for category name(s)
03-02-25 mamake.c: add -D4 system(3) debug trace
03-02-24 package.mk: change --mismatch to --corrupt=accept
@@ -522,12 +522,12 @@
make.probe: add CC.LD.STRIP for link time a.out strip
package.sh: fix package_use vs. PACKAGE_USE check
02-10-24 WWW.mk: fix bug that required a :WWWBIN: assertion to post
02-10-23 mamake.c: fix unuinitialized time in make()
02-10-23 mamake.c: fix uninitialized time in make()
ratz.c: fix meter buffer overflow
02-10-20 package.sh: fix lib/probe/C/make/probe update test
02-10-18 probe.win32: update for mingw
make.probe: add bash workaround to SHELLMAGIC test
package.sh: work around yet another cygwin hassle
package.sh: work around yet another Cygwin hassle
02-10-17 iffe.sh: short circuit id check for *[-+/\\]*
02-10-08 regress.sh: unset FIGNORE to avoid rm . errors
package.sh: unset FIGNORE to avoid rm . errors
@@ -543,7 +543,7 @@
iffe.sh: fix bug that didn't define mac variable on success
02-09-22 package.sh: handle admin_action=ditto
iffe.sh: --config sizeof(foo) macro is SIZEOF_foo
iffe.sh: fix long.long test so it doesn't defeat uwin "typ long.long"
iffe.sh: fix long.long test so it doesn't defeat UWIN "typ long.long"
mamprobe.sh: convert $("foo") nmake string constants
02-09-21 mamprobe.sh: "-" info-path writes probe info to stdout
02-09-11 make.probe: move from nmake src to be part of mamprobe.sh
@@ -564,7 +564,7 @@
Makefile: add LICENSE:.DONTCARE to workaround mam
02-08-11 iffe.sh: provide defaults for LD_* additions
02-08-07 ratz.c: change -m to use * instead of non-portable inverse video
02-07-17 mamprobe.sh: close tmp file in trap before rm for cygwin
02-07-17 mamprobe.sh: close tmp file in trap before rm for Cygwin
package.sh: fix "type" to handle i1586 (P4)
package.sh: add the view action
02-06-28 package.sh: handle multiple packages for release action
@@ -595,7 +595,7 @@
package.mk: add { :COVERS: :DESCRIPTION: :REQUIRES: }
package.sh: handle { :COVERS: :DESCRIPTION: :REQUIRES: }
Makefile: move proto.c generation to the proto component dir
02-02-02 execrate.sh: add for .exe challenged win32 systems/commands
02-02-02 execrate.sh: add for .exe challenged Win32 systems/commands
mamprobe.sh: add STD* commands/flags
mamake.c: update mamprobe info when older than mamprobe executable
package.sh: move ed/ex workaround to mamprobe.sh
@@ -604,7 +604,7 @@
package.sh: add check for { cc ar nm yacc/bison } before make
ratz.c: fix "rb" vs. "r" macro tests
iffe.sh: add nxt, similar to lcl but defines _nxt_foo for #include
iffe.sh,package.sh: remove vaibale from sccs,cvs ident strings -- duh
iffe.sh,package.sh: remove variable from sccs,cvs ident strings -- duh
02-01-24 C+probe: check CC.DYNAMIC to handle cc that accept but ignore -B*
iffe.sh: handle 'mem struct.a.b'
02-01-22 iffe.sh: cache (internal) `foo vs. struct foo' test results
@@ -680,14 +680,14 @@
01-04-25 package.mk: include non cc-g variants by default
package.sh: *[._]* => *?[_.]* for mvs.390 /bin/sh
01-04-24 TEST.mk: no tests for VARIANT=="DLL"
01-04-22 package.mk,package.sh: tarball text members are ascii encoded
01-04-22 package.mk,package.sh: tarball text members are ASCII encoded
01-04-18 package.mk: allow package name to be the same as one of its components
cc.mvs.390: handle .C .cpp .cxx
cc.mvs.390: compensate for -o that does not overwrite
01-04-01 regress: fix SAME that just skipped it -- we should regress regress!
iffe: fix bug that didn't emit _hdr_foo for internal hdr tests
iffe: fix lcl bug for cc -E that doesn't emit line syncs
ratz: add ascii=>ebcdic conversion for text archive members
ratz: add ASCII=>EBCDIC conversion for text archive members
mamake: fix buffer overlap bug that clobbered the probe file path
01-03-17 iffe: handle : separator as first arg
01-03-15 mamake.c,ratz.c,release.c: add <stdlib.h> and <string.h>
@@ -700,7 +700,7 @@
package.sh: fix INIT a.out updates for knr cc
package.sh: package list now handles large tgz dirs
package.sh: *-ok executables moved to ok/* for *.dll systems
iffe.sh: change "exec >&-" to "exec >/dev/null" else linux mkdir fails!
iffe.sh: change "exec >&-" to "exec >/dev/null" else Linux mkdir fails!
mamake: handle `bind -lx [dontcare]'
01-02-12 ratz.c: fix _PACKAGE_ast includes
package.sh: $HOSTTYPE env overrides if $PACKAGEROOT/arch/$HOSTTYPE/
@@ -713,13 +713,13 @@
01-02-02 package.sh: fix package use for $INSTALLROOT != */$HOSTTYPE
package.sh: create intermediate recursion makefiles when needed
package.sh: add $SECONDS to the DEBUG trace prompt
01-01-01 ratz.c: #ifdef for uwin ncc
01-01-01 ratz.c: #ifdef for UWIN ncc
iffe.sh,package.sh: check PACKAGE_PATH for local installations
package.sh: add psrinfo for osf.alpha host cpu
package.sh: change pax --meter probe; some hang on /dev/tty
package.sh: fix `install flat ARCH'
mamake: eliminate loops from scan order
C+probe: add probe_verbose -V for aix cc=xlc
C+probe: add probe_verbose -V for AIX cc=xlc
cc.ibm.risc,ldd.ibm.risc: add
package.mk: list refs to top-level licenses only
package.mk: add local link table to change log html
@@ -753,7 +753,7 @@
00-10-22 regress: fix VIEW to skip empty dirs
00-10-19 package.mk: $(PACKAGEROOT)/bin/nmake => $(PACKAGEROOT)/bin/manmake
iffe: validate #define identifiers
00-10-18 C+probe: mac os10 additions
00-10-18 C+probe: Mac OS X additions
package: add DYLD_LIBRARY_PATH initialization
add ldd.$(CC.HOSTTYPE)
00-10-01 iffe: handle -I* -L* options
@@ -800,7 +800,7 @@
package.mk: beef up source and binary help => html
00-02-08 package: mkdir man/man[138] in the new arch to cover MAM bug
00-01-28 package,release: add -rcount to release
package: fix linux "host cpu" and "host rating"
package: fix Linux "host cpu" and "host rating"
package: copy *.lic to $PACKAGEBIN for "make" and "write binary"
package: fix 'release change log' case match
00-01-24 package: add copyright action
@@ -851,11 +851,11 @@
98-10-01 hostinfo: add unixware.*
use: export PACKAGE_*
98-08-11 C.probe: add /usr/include check (for sco CC)
hostinfo: handle uwin uname update
hostinfo: handle UWIN uname update
98-05-01 regress: fix bug sometimes didn't list last test
98-04-01 hostinfo: add cc path arg
hostinfo: now works with /bin/sh
Makefile: strengthed -lm probe
Makefile: strengthen -lm probe
98-01-23 Makefile: check for -ldl -lm
C.probe: handle gcc -v -E phony include dirs
iffe: fix lcl by dropping sort -u -- we need the real first
@@ -885,15 +885,15 @@
mm2html: differentiate mm/man in some non-obvious cases
hostinfo: r5000 is not mips4
97-02-14 hostinfo: validate type with cc
96-12-25 C.probe: uwin tweaks
96-12-25 C.probe: UWIN tweaks
iffe: use `...` instead of $(...) for alpha /bin/sh
iffe: fix `typ' divide by 0
iffe: `lcl' now drops X: prefix
iffe: +l* -> -l*
iffe: eval around ${...#%...} for bsd /bin/sh
iffe: eval around ${...#%...} for BSD /bin/sh
use: add sgi.mips LD_LIBRARY<abi>_PATH variants
use: add -e to list exports
iffe: lcl leaves leading [a-zA-Z]: for dos
iffe: lcl leaves leading [a-zA-Z]: for DOS
iffe: fix no{link|output|execute} logic
C.probe: don't automatically add /usr/include for non-hosted compilers
C.probe: don't automatically place /usr/include last
@@ -904,10 +904,10 @@
hostinfo: fix ncr.i386 tests
96-10-31 iffe: work around old bsh here doc bug by running separate sh
96-10-11 iffe: *.iffe and *.iff for iffe src files
hostinfo: tighten sgi.mips cpu type check
hostinfo: tighten sgi.mips CPU type check
96-10-01 C.probe: add probe_libdir to catch alpha /usr/shlib
96-09-17 iffe: fix typ bug that failed for single id types!
96-08-31 hostinfo: handle recent sgi hinv cpu changes
96-08-31 hostinfo: handle recent SGI hinv CPU changes
96-07-17 make sure sizeof(long xxx)>sizeof(xxx) for typ long.xxx
96-05-09 C.probe: drop multiple / in stdinclude
96-02-29 use: package root must have bin and lib subdir
@@ -917,8 +917,8 @@
96-01-31 use: add pkg dir
hostinfo: add tandem
96-01-01 hostinfo: windows_nt|windows[0-9][0-9] -> win32
95-11-24 hostinfo: linux-aout.* for non-elf linux
95-11-11 use: add aix LIBPATH
95-11-24 hostinfo: linux-aout.* for non-ELF Linux
95-11-11 use: add AIX LIBPATH
95-10-11 hostinfo: no args prints type
95-08-11 use: add
95-05-09 save original PATH in _probe_PATH
@@ -926,7 +926,7 @@
95-04-01 use c source suffix if it still preserves the dialect
add hostinfo
add lib/hostinfo/typemap user type map
add sol.sun4 cpu count
add sol.sun4 CPU count
fix C.probe to properly handle C/C++ combined compiler drivers
add NeXT to hostinfo
bummer: mach has /usr/bin/hostinfo

View File

@@ -1,197 +0,0 @@
/*
* regression test support
*
* @(#)TEST.mk (AT&T Research) 2010-05-19
*
* test management is still in the design phase
*/
/*
* three forms for :TEST:
*
* :TEST: xxx yyy ...
*
* $(REGRESS) $(REGRESSFLAGS) xxx.tst
* $(REGRESS) $(REGRESSFLAGS) yyy.tst
*
* :TEST: xxx.tst yyy ...
*
* $(REGRESS) $(REGRESSFLAGS) xxx.tst yyy ...
*
* :TEST: xxx.c [ :: test-prereq ... :: ] [ args [ : args ... ] ]
*
* :TEST: xxx.sh [ :: test-prereq ... :: ] [ args [ : args ... ] ]
*
* xxx :TEST: prereq ...
* [ action ]
*
* $(*) if no action
*/
":TEST:" : .MAKE .OPERATOR
local B G P S T
test : .INSERT .TESTINIT
if "$("tests":T=FD)"
.SOURCE : tests
end
P := $(>:O=1)
if "$(P:N=*.tst)" && ! "$(@:V)"
B := $(P:B)
if ! ( T = "$(<:V)" )
T := $(B)
end
test : - test.$(T)
eval
test.$$(T) : $$(B).tst
$$(REGRESS) $$(REGRESSFLAGS) $$(*) $(>:V:O>1)
:SAVE: $$(B).tst
end
elif "$(P:N=*@(.sh|$(.SUFFIX.c:/ /|/G)|$(.SUFFIX.C:/ /|/G)))"
B := $(P:B)
if ! ( T = "$(<:V)" )
T := $(B)
end
:INSTALLDIR: $(B)
$(B) :: $(P) $(*:-l*|*$(CC.SUFFIX.ARCHIVE))
if "$(P:N=*.sh)"
TESTCC == $(CC)
$(B) : (TESTCC)
end
test : - test.$(T)
if "$(@:V)"
eval
test.$$(T) : $$(B) $(>:V:O>1)
set +x; (ulimit -c 0) >/dev/null 2>&1 && ulimit -c 0; set -x
$(@:V)
end
elif "$(>:V:O>1)"
local I A V X S R=0
for A $(>:V:O>1)
if A == "::"
let R = !R
elif A == ":"
let I = I + 1
test.$(T).$(I) := $(V:V)
V =
X := $(X:V)$(S)$$(*) $$(test.$(T).$(I):T=*)
S = $("\n")
elif A != "-l*|*$(CC.SUFFIX.ARCHIVE)"
if R
test.$(A) : .VIRTUAL .FORCE
test.$(T) : test.$(A)
else
V += $(A:V)
end
end
end
if V
let I = I + 1
test.$(T).$(I) := $(V:V)
X := $(X:V)$(S)$$(*) $$(test.$(T).$(I):T=*)
end
eval
test.$$(T) : $$(B)
set +x; (ulimit -c 0) >/dev/null 2>&1 && ulimit -c 0; set -x
$(X:V)
end
else
eval
test.$$(T) : $$(B)
set +x; (ulimit -c 0) >/dev/null 2>&1 && ulimit -c 0; set -x
$$(*)
end
end
elif ! "$(<:V)"
G = 1
for B $(>)
if B == "-|--"
let G = !G
else
if ! G
T =
elif ! ( T = "$(B:A=.COMMAND)" ) && ! "$(B:A=.TARGET)"
for S .c .sh
if "$(B:B:S=$(S):T=F)"
:INSTALLDIR: $(B)
$(B) :: $(B:B:S=$(S))
T := $(B)
break
end
end
end
test : - test.$(B)
test.$(B) : $(T) - $(B).tst
$(REGRESS) $(REGRESSFLAGS) $(*:N=*.tst) $(*:N!=*.tst)
:SAVE: $(B).tst
end
end
else
if "$(>:V)" || "$(@:V)"
P := $(>)
T := $(P:O=1)
B := $(T:B)
if "$(T)" != "$(B)" && "$(T:G=$(B))"
:INSTALLDIR: $(B)
$(B) :: $(T) $(P:O>1:N=-*)
T := $(B)
P := $(B) $(P:O>1:N!=-*)
end
if "$(<:V)"
T := $(<:V)
end
test : - test.$(T)
if "$(@:V)"
eval
test.$$(T) : $$(P) $(>:V:O>1)
set +x; (ulimit -c 0) >/dev/null 2>&1 && ulimit -c 0; set -x
$(@:V)
end
else
test.$(T) : $(P)
set +x; (ulimit -c 0) >/dev/null 2>&1 && ulimit -c 0; set -x
$(*)
end
else
test : - test.$(<)
test.$(<) : $(<).tst $(<:A=.COMMAND)
$(REGRESS) $(REGRESSFLAGS) $(*)
end
end
.TESTINIT : .MAKE .VIRTUAL .FORCE .REPEAT
if VARIANT == "DLL"
error 1 :DLL: tests skipped
exit 0
end
set keepgoing
REGRESSFLAGS &= $(TESTS:@/ /|/G:/.*/--test=&/:@Q)
.SCAN.tst : .SCAN
$(@.SCAN.sh)
I| INCLUDE@ % |
.ATTRIBUTE.%.tst : .SCAN.tst
MKTEST = mktest
MKTESTFLAGS = --style=regress
/*
* test scripts are only regenerated from *.rt when --force
* is specified or the .rt file is newer than the script
* otherwise the script is accepted if it exists
*
* this avoids the case where a fresh build with no state
* would regenerate the test script and capture current
* behavior instead of expected behavior
*/
%.tst : %.rt
if [[ "$(-force)" || "$(>)" -nt "$(^|<)" ]]
then $(MKTEST) $(MKTESTFLAGS) $(>) > $(<)
fi
test%.sh test%.out : %.rt
if [[ "$(-force)" || "$(>)" -nt "$(^|<:O=1)" ]]
then $(MKTEST) --style=shell $(>) > $(<:N=*.sh)
$(SHELL) $(<:N=*.sh) --accept > $(<:N=*.out)
fi

View File

@@ -1,450 +0,0 @@
/*
* post stuff to WWWDIR for web access
* index generated from *.mm
*/
WWWDIR = wwwfiles public_html
WWWSAVE =
WWWSTYLE =
WWWTYPES =
.WWW.semaphore : .SEMAPHORE
.EXPORT : WWWSTYLE WWWTYPES
/*
* item :WWW: [style=frame] [save=pattern] file ...
*
* `item'.mm generates index.html
* other files copied to $(WWWDIR)/`item'
* sets up www.bin
*/
":WWW:" : .MAKE .OPERATOR
local A B D I J L X E P R M
.WWW.LOCAL .WWW.REMOTE : .DO.NOTHING
WWWDIR := $(HOME:X=$(WWWDIR):T=F:O=1)
B := $(*:N=*.mm::O=1:B)
D := $(WWWDIR)/$(B)
M := $(WWWDIR)/man/man1
R := $(>:N!=*=*)
for I $(>:N=*=*)
A := WWW$(I:/=.*//:F=%(upper)s)
$(A) := $(I:/.*=//)
end
(html_info) : $$(MM2HTMLINFO) $$(MM2HTMLINIT)
if WWWSTYLE == "frame"
%.html %-index.html : %.mm (html_info)
$(MM2HTML) $(MM2HTMLFLAGS) $(%:N=faq.*:?> $(<:O=1)?-f $(%) -x?) -o WWWTYPES=$(WWWTYPES:@Q:@Q) $(WWWSOURCE.$(%)) $(>)
else
%.html : %.mm (html_info)
$(MM2HTML) $(MM2HTMLFLAGS) -o WWWTYPES=$(WWWTYPES:@Q:@Q) $(>) $(WWWSOURCE.$(%)) > $(<)
end
%.html : %.1 (html_info)
$(MM2HTML) $(MM2HTMLFLAGS) $(>) $(WWWSOURCE.$(%)) > $(<)
%-man.html : $(BINDIR)/% (html_info)
ignore $(>) --html 2> $(<)
.DO.WWW.MAN : .USE
if { test '' = '$(*)' || { strings $(*) | egrep -q '\[\+NAME\?|libcmd\.|cmd[0-9][0-9]\.' ;} ;} && [[ "$( $(<:B) '--???html' -- 2>&1 )" == version=[1-9]* ]]
then ( $(<:B) '--??html' -- 2>$(<) ) || true
fi
if 0
$(M)/%.html : .DONTCARE $(INSTALLROOT)/bin/%
$(@.DO.WWW.MAN)
end
if "$(<)"
D := $(<)
elif ! "$(R)"
return
end
.WWW .WWW.BIN : $(D) $(M) -
$(D) $(M) :
$(SILENT) test -d $(<) || mkdir $(<)
if ( J = "$(R:N=*.mm)" )
for I $(J:G=%.html)
if I == "*-index.html"
O := $(D)/index.html
else
O := $(I:D=$(D):B:S)
end
.WWW : $(O)
$(O) :COPY: $(I)
end
end
.WWW.req : .FUNCTION
return $(*$(%:T=SR):N=-l*:T=F:P=B:N!=-l*|/*)
A = 0
for I $(R:N!=*.mm)
if I == "-"
let A = ! A
elif I == "-l*"
L := $(I:/-l//)
if J = "$(.DLL.NAME. $(L) $($(L).VERSION):T=F)"
X += $(J)
end
elif A || "$(I:A=.COMMAND|.ARCHIVE)" || "$(I:D:D:N=$(INSTALLROOT))" || "$(I:N=*-www)"
X += $(I)
if "$(I:A=.COMMAND)"
X += $$(.WWW.req $(I))
J := $(I:/-www$//)
eval
.WWW : $(J:D=$(M):B:S=.html)
$(J:D=$(M):B:S=.html) : $(I) $(I:B:S=.1:T=F:?$(I:B:S=.1)??)
if strings $$(*:O=1) | egrep -q '\[\+NAME\?|libcmd\.|cmd[0-9][0-9]\.'
then $$(IGNORE) $$(*:O=1) '--??html' -- 2>&1
elif test '' != '$$(*:N=*.1)'
then $$(MM2HTML) $$(*:N=*.1)
fi > $$(<)
end
end
else
if I == "*.html"
$(I) : .TERMINAL
end
.WWW : $(D)/$(I)
$(D)/$(I) :COPY: $(I)
end
end
if "$(X:V)"
.WWW.EDIT. : .FUNCTION
local E I J
for I $(.INSTALL.LIST.:C,^$(INSTALLROOT)/,,:N!=lib/lib/*)
for J $(%)
if "$(I:B:S)" == "$(J:B:S)"
E += -s ',^$(J)$,$(I),'
end
end
end
return $(E)
.WWW.LIST. : .FUNCTION
local E I J
for I $(.INSTALL.LIST.:C,^$(INSTALLROOT)/,,:N!=lib/lib/*)
for J $(%)
if "$(I:B:S)" == "$(J:B:S)"
E += $(I)
end
end
end
return $(E)
.WWW .WWW.BIN : $(D)/$(B)-$(CC.HOSTTYPE).tgz
$(D)/$(B)-$(CC.HOSTTYPE).tgz : $(X:V)
cat > X.$(tmp).X <<!
This archive contains $(CC.HOSTTYPE) binaries for
$(.WWW.LIST. $(*))
Add the bin directory to PATH and the lib directory
to LD_LIBRARY_PATH or its equivalent for your system.
Use the --?help and --man options for online help,
documentation and contact info.
!
$(PAX) -wvf $(<) -x tar:gzip -s "/X.$(tmp).X/README/" $(.WWW.EDIT. $(*)) -s ',\(.*\)-www$,bin/\1,' -s ',.*/lib/,lib/,' X.$(tmp).X $(*:N!=-l*)
$(RM) -f X.$(tmp).X
end
/*
* item ... :WWWBIN: index.mm file ... host:arch ...
*
* home page control
* `host' of type `arch' for www.bin files
*/
":WWWBIN:" : .MAKE .OPERATOR
local HOST ITEM ARCH BINS DIRS G
.WWW.NOMAN. += $(<)
for HOST $(>)
TYPE := $(HOST:/.*://)
HOST := $(HOST:/:.*//)
WWWTYPES += $(TYPE)
ARCH := $(PWD:D:C,/$(CC.HOSTTYPE)/,/$(TYPE)/)
BINS :=
DIRS :=
for ITEM $(<)
if TYPE == "$(CC.HOSTTYPE)"
G := $("index.mm":G=%.html:D=$(WWWDIR)/$(ITEM):B:S)
.WWW.LOCAL : $(G)
eval
$(G) : .JOINT $(ARCH)/$(ITEM)/$(ITEM).mm (html_info) .WWW.semaphore .FORCE
cd $$(*:D)
$$(MAKE) $$(-) $$(=) www
end
else
BINS += $(WWWDIR)/$(ITEM)/$(ITEM)-$(TYPE).tgz
DIRS += $(ARCH)/$(ITEM)
end
end
.WWW.REMOTE : $(BINS)
ARCH := $(ARCH:C,/src/.*,,)
eval
$(BINS) :JOINT: .FORCE .WWW.semaphore
rsh $(HOST) "
eval \"\`bin/package debug use\`\"
PATH=\$PATH:$(PATH):/usr/ccs/bin
umask 022
for dir in $(DIRS)
do cd \$dir
$(MAKE) $(-) $(=) --errorid=\$dir www.bin
done
"
end
end
/*
* :WWWPOST: [ host [ dir [ tmp ] ] ]
*
* post local $(WWWDIR) to host:dir putting archives in host:tmp/www-*.pax
* defaults: host=www dir=$(WWWDIR) tmp=tmp
*/
":WWWPOST:" : .MAKE .OPERATOR
local ( host dir tmp ignore ... ) $(>) www $(WWWDIR:B:S) tmp ignore
:ALL: delta.pax
.WWW.ALL : .WWW.REMOTE - .WWW.LOCAL
eval
.POST : .VIRTUAL base.pax delta.pax
case "$$(>)" in
'') ;;
*) $$(>:C,.*,rcp & $(host):$(tmp)/$(dir)-&;,)
rsh $(host) '
umask 022
PATH=$HOME/bin:$PATH
cd $(dir)
pax -rvf $HOME/$(tmp)/$(dir)-delta.pax -z $HOME/$(tmp)/$(dir)-base.pax
'
;;
esac
end
base.pax :
cd $(WWWDIR)
pax -wvf $(<:P=A) .
.base.list. : .FUNCTION
local X
X := $(sh pax -f $(%:N=*.pax):C,\n, ,G:C,^,$$(WWWDIR)/,)
$(X) : .DONTCARE
return $(X)
delta.pax : .WWW.ALL base.pax $$(.base.list. $$(*))
cd $(WWWDIR)
pax -wvf $(<:P=A) -z $(*:N=*.pax:P=A) .
.WWW.FAQ : .USE
{
set -o noglob
print .xx title=\"$(<:B:/\..*//) FAQ index\"
print .MT 4
print .TL
print
print .H 1 \"$(<:B:/\..*//) FAQ index\"
print .BL
for i in $(*)
do exec < $i || exit 1
e=0 l=0 x=y
while read -r op a1 a2
do case $op in
.H) case $e in
0) e=1 ;;
1) print .LE ;;
esac
print .sp
print .LI
a2=${a2//\"/}
a2=${a2%\ [Ff][Aa][Qq]}
f=${i%.*}.html
f=${f#*/}
print .xx link=\"$f' '$a2\"
print .sp
print .NL
;;
.AL|.BL|.NL)
case $x in
y) x=x ;;
*) x=xx$x ;;
esac
;;
.LE) x=${x%xx}
;;
.LI) case $x in
x) x=
print .LI
;;
esac
;;
.sp) case $x in
'') x=x ;;
esac
;;
*) case $x in
'') print -r -- $op $a1 $a2 ;;
esac
;;
esac
done
case $e in
1) print .LE ;;
esac
done
print .LE
} > $(<)
/*
* [ dir ] :WWWPAGE: [ source ... ] file.mm file
*
* *.mm generates *.html
* faq.*.mm generates faq.mm
* other files copied to $(WWWDIR)[/dir]
* files after - (toggle) are just asserted on ::
*/
":WWWPAGE:" : .MAKE .OPERATOR
local B D I J O P Q S X G A
A = 0
D := $(<:O=1)
P := $(>:N!=*=*)
S := $(>:N=*=*)
if X = "$(P:B:S:N=faq.*.mm)"
Q := $(D:+$(D).)faq.mm
$(Q) : .WWW.FAQ $(X)
P += $(Q)
end
if D
B := $(D:B)
if D != "/*"
D := $(WWWDIR)/$(D)
$(D) :INSTALLDIR:
.WWW.LOCAL : $(D)
end
for I $(<:B)
.WWW.LOCAL : $(WWWDIR)/man/man1/$(I).html
$(WWWDIR)/man/man1/$(I).html : .DONTCARE
end
for I $(P)
if I == "-"
let A = !A
continue
end
if A || I == "$(WWWSAVE)"
:: $(I)
continue
end
if "$(I:T=FD)"
.SOURCE : $(I)
if "$(<)"
WWWSOURCE.$(<:O=1) += $(I:T=F:P=L=*)
end
continue
end
if I == "*.html"
$(I) : .TERMINAL
O := $(I)
X := $(I)
elif ( G = "$(I:G=%.html)" )
$(G) : .IMPLICIT $(S) $(I)
if $(G:O) > 1
for J $(G)
if J == "*-index.html"
if J == "faq.*.*"
continue
end
O := index.html
else
O := $(J)
end
.WWW.LOCAL : $(D)/$(O)
$(D)/$(O) :INSTALL: $(J)
end
continue
end
if X
X := $(I)
else
X := index
end
I := $(I:B:S=.html)
O := $(X:B:S=.html)
else
O := $(I)
end
$(D)/$(O) :INSTALL: $(I)
.WWW.LOCAL : $(D)/$(O)
end
else
for I $(P)
if I == "-"
let A = !A
continue
end
if A || I == "$(WWWSAVE)"
:: $(I)
continue
end
if "$(I:T=FD)"
.SOURCE : $(I)
continue
end
if I == "*.html"
$(I) : .TERMINAL
O := $(I)
elif ( O = "$(I:G=%.html)" )
$(O) : $(S) .IMPLICIT $(I)
end
for J $(O)
if J == "*-index.html"
X := index.html
else
X := $(J)
end
X := $(WWWDIR)/$(X)
.WWW.LOCAL : $(X)
$(X) :COPY: $(J)
end
end
end
/*
* rhs done by default
*/
":WWWALL:" : .MAKE .OPERATOR
.WWW.ALL : $(>)
":WWWMAN:" : .MAKE .OPERATOR
.INIT : .WWW.MAN
.WWW.MAN. := $(>)
.WWW.MAN : .MAKE .FORCE
local H I
for I $(.WWW.MAN.)
.WWW.LOCAL : $(WWWDIR)/man/man1/$(I:B).html
$(WWWDIR)/man/man1/$(I:B).html : .DO.WWW.MAN $(I)
end
for I $(sh builtin:B)
.WWW.LOCAL : $(WWWDIR)/man/man1/$(I).html
$(WWWDIR)/man/man1/$(I).html : .DO.WWW.MAN -
end
for I $("$(BINDIR)/*([!-.])":P=G:B)
if I != "*_*"
H := $(WWWDIR)/man/man1/$(I).html
if ! "$(*$(H))" && I != "$(.WWW.NOMAN.:/ /|/G)"
.WWW.LOCAL : $(H)
end
elif "$(PATH:/:/ /G:X=$(I:/.*_//):T=F:O=1)"
H := $(WWWDIR)/man/man1/$(I:/.*_//).html
.WWW.LOCAL : $(H)
$(H) : .DO.WWW.MAN $(BINDIR)/$(I)
end
end
.WWW.SED. : .FUNCTION
local E T
E = s/^\(\.xx.link=.*\)%HOSTTYPE%\(.*\)%HOSTTYPE%\(.*\)/
for T $(%)
E := $(E:V)\$$("\n").LI\$$("\n")\1$(T)\2$(T)\3
end
return $(E:V)/
/*
* mm scan support
*/
.SCAN.mm : .SCAN
O|S|
I|.sn %|A.DONTCARE|M$$(%)|
I|.so %|A.DONTCARE|M$$(%)|
.ATTRIBUTE.%.mm : .SCAN.mm

View File

@@ -1,6 +0,0 @@
: linux.i386-64 ar wrapper
case $1 in
*x*) /usr/bin/ar "$@" ;;
*) /usr/bin/ar U"$@" ;;
esac

View File

@@ -1,6 +0,0 @@
: linux.i386-64 ar wrapper
case $1 in
*x*) /usr/bin/ar "$@" ;;
*) /usr/bin/ar U"$@" ;;
esac

View File

@@ -1,52 +0,0 @@
: unix wrapper for macOS cc : 2020-07-17 :
HOSTTYPE=darwin.generic
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
CC=/usr/bin/cc
op=init
for arg
do case $op in
init) op=ld
set ''
;;
esac
case $arg in
-c) op=cc
;;
-E) op=cpp
continue
;;
-G) op=dll
continue
;;
-lc) continue
;;
-lm) continue
;;
esac
set "$@" "$arg"
done
case $# in
0) ;;
*) shift ;;
esac
case $* in
-v) $CC "$@"; exit ;;
esac
case $op in
init) echo "cc: arguments expected" >&2
exit 1
;;
cpp) $CC -E "$@"
;;
cc) $CC -D_ast_int8_t=int64_t -D_lib_memccpy "$@"
;;
dll) $CC -Wl,-flat_namespace -dynamiclib -undefined dynamic_lookup "$@"
;;
ld) $CC -Wl,-search_paths_first "$@"
;;
esac

View File

@@ -1,71 +0,0 @@
: unix wrapper for Mac OS X 10.3-10.6 (Darwin 7-10) cc : 2020-07-17 :
HOSTTYPE=darwin07.generic
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
CC=/usr/bin/cc
op=init
for arg
do case $op in
init) op=ld
set ''
;;
esac
case $arg in
-c) op=cc
;;
-E) op=cpp
continue
;;
-G) op=dll
continue
;;
-lc) continue
;;
-lm) continue
;;
esac
set "$@" "$arg"
done
case $# in
0) ;;
*) shift ;;
esac
case $* in
-v) $CC "$@"; exit ;;
esac
case $op in
init) echo "cc: arguments expected" >&2
exit 1
;;
cpp) $CC -E "$@"
;;
cc) $CC -DCLK_TCK=100 "$@"
;;
dll) # what a compatibility mess -- surely they can get the apis to play nice
tmp=/tmp/cc.${USER:-$LOGNAME}.$$.err
trap "rm -f $tmp" EXIT
case `MACOSX_DEPLOYMENT_TARGET=10.3 ld -undefined dynamic_lookup 2>&1` in
*undefined*dynamic_lookup*)
ld -m -flat_namespace -undefined suppress -dylib -dynamic \
-ldylib1.o "$@" -lcc_dynamic -framework System >$tmp 2>&1
status=$?
;;
*) MACOSX_DEPLOYMENT_TARGET=10.3 $CC -Wl,-flat_namespace -dynamiclib -undefined dynamic_lookup "$@" >$tmp 2>&1
status=$?
;;
esac
egrep -v ' (warning .*multiple definitions|definition) of ' $tmp >&2
exit $status
;;
ld) tmp=/tmp/cc.${USER:-$LOGNAME}.$$.err
trap "rm -f $tmp" EXIT
$CC -Wl,-m -DCLK_TCK=100 "$@" >$tmp 2>&1
status=$?
egrep -v ' (warning .*multiple definitions of|definition of|as lazy binding|not from earlier dynamic) ' $tmp >&2
exit $status
;;
esac

View File

@@ -1,71 +0,0 @@
: unix wrapper for Mac OS X 10.7 (Darwin 11) cc : 2020-07-17 :
HOSTTYPE=darwin11.generic
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
CC=/usr/bin/cc
op=init
for arg
do case $op in
init) op=ld
set ''
;;
esac
case $arg in
-c) op=cc
;;
-E) op=cpp
continue
;;
-G) op=dll
continue
;;
-lc) continue
;;
-lm) continue
;;
esac
set "$@" "$arg"
done
case $# in
0) ;;
*) shift ;;
esac
case $* in
-v) $CC "$@"; exit ;;
esac
case $op in
init) echo "cc: arguments expected" >&2
exit 1
;;
cpp) $CC -E "$@"
;;
cc) $CC -DCLK_TCK=100 "$@"
;;
dll) # what a compatibility mess -- surely they can get the apis to play nice
tmp=/tmp/cc.${USER:-$LOGNAME}.$$.err
trap "rm -f $tmp" EXIT
case `MACOSX_DEPLOYMENT_TARGET=10.7 ld -undefined dynamic_lookup 2>&1` in
*undefined*dynamic_lookup*)
ld -m -flat_namespace -undefined suppress -dylib -dynamic \
-ldylib1.o "$@" -lcc_dynamic -framework System >$tmp 2>&1
status=$?
;;
*) MACOSX_DEPLOYMENT_TARGET=10.7 $CC -Wl,-flat_namespace -dynamiclib -undefined dynamic_lookup "$@" >$tmp 2>&1
status=$?
;;
esac
egrep -v ' (warning .*multiple definitions|definition) of ' $tmp >&2
exit $status
;;
ld) tmp=/tmp/cc.${USER:-$LOGNAME}.$$.err
trap "rm -f $tmp" EXIT
$CC -Wl,-m -DCLK_TCK=100 "$@" >$tmp 2>&1
status=$?
egrep -v ' (warning .*multiple definitions of|definition of|as lazy binding|not from earlier dynamic) ' $tmp >&2
exit $status
;;
esac

View File

@@ -1,9 +0,0 @@
: FreeBSD cc wrapper
HOSTTYPE=freebsd.generic
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
exec /usr/bin/cc -P "$@"

View File

@@ -1,8 +1,8 @@
: hp.ia64 cc wrapper for reasonable ansi C defaults : 2011-01-25 :
: hp.ia64 cc wrapper for reasonable ANSI C defaults : 2011-01-25 :
[ /usr/bin/cc -ef /usr/ccs/bin/cc ] || exit 1
: bundled cc -- really, in the face of gcc you ship a sub-par /usr/bin/cc? :
: bundled cc -- really, in the face of gcc you ship a subpar /usr/bin/cc? :
HOSTTYPE=hp.ia64

View File

@@ -1,4 +1,4 @@
: hp.pa cc wrapper for reasonable ansi C defaults : 2004-02-29 :
: hp.pa cc wrapper for reasonable ANSI C defaults : 2004-02-29 :
HOSTTYPE=hp.pa

View File

@@ -1,4 +1,4 @@
: hp.pa64 cc wrapper for reasonable ansi C defaults : 2001-02-11 :
: hp.pa64 cc wrapper for reasonable ANSI C defaults : 2001-02-11 :
HOSTTYPE=hp.pa64

View File

@@ -1,4 +1,4 @@
: cc wrapper for aix risc xlc : 2012-04-17 :
: cc wrapper for AIX RISC xlc : 2012-04-17 :
hosttype=ibm.risc
@@ -33,7 +33,7 @@ case " $@ " in
;;
esac
if test -x $bin/c99
then # the xlc optimizer vintage that supports c99 is flawed and causes the ast build to fail #
then # the xlc optimizer vintage that supports c99 is flawed and causes the AST build to fail #
case " $* " in
*" -O "*)
set '' "$@" ''

View File

@@ -1,4 +1,4 @@
: cc wrapper for aix risc gcc : 2012-04-17 :
: cc wrapper for AIX RISC gcc : 2012-04-17 :
hosttype=ibm.risc

View File

@@ -1,9 +0,0 @@
: linux.aarch64 cc wrapper : 2006-02-14 :
HOSTTYPE=linux.aarch64
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
/usr/bin/cc -P "$@"

View File

@@ -1,9 +0,0 @@
: linux.i386-64 cc wrapper : 2006-02-14 :
HOSTTYPE=linux.i386-64
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
/usr/bin/cc -P "$@"

View File

@@ -1,22 +0,0 @@
: linux.i386-64 icc wrapper : 2011-10-18 :
HOSTTYPE=linux.i386-64-icc
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
icc=$(which icc 2>/dev/null)
case $icc in
"") if test -f /etc/profile.d/icc.sh
then . /etc/profile.d/icc.sh
fi
icc=$(which icc 2>/dev/null)
case $icc in
"") echo icc: not found >&2
exit 127
;;
esac
;;
esac
$icc "$@"

View File

@@ -1,22 +0,0 @@
: linux.ia64 icc wrapper : 2011-10-18 :
HOSTTYPE=linux.ia64-icc
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
icc=$(which icc 2>/dev/null)
case $icc in
"") if test -f /etc/profile.d/icc.sh
then . /etc/profile.d/icc.sh
fi
icc=$(which icc 2>/dev/null)
case $icc in
"") echo icc: not found >&2
exit 127
;;
esac
;;
esac
$icc "$@"

View File

@@ -1,22 +0,0 @@
: linux.ia64 icc wrapper : 2011-10-18 :
HOSTTYPE=linux.ia64-icc
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
icc=$(which icc 2>/dev/null)
case $icc in
"") if test -f /etc/profile.d/icc.sh
then . /etc/profile.d/icc.sh
fi
icc=$(which icc 2>/dev/null)
case $icc in
"") echo icc: not found >&2
exit 127
;;
esac
;;
esac
$icc "$@"

View File

@@ -1,4 +1,4 @@
: mvs.390 cc wrapper for unix message and exit code semantics : 2012-01-20 :
: mvs.390 cc wrapper for Unix message and exit code semantics : 2012-01-20 :
HOSTTYPE=mvs.390

View File

@@ -1,4 +1,4 @@
: next.i386 cc wrapper for unix message and exit code semantics : 1995-05-09 :
: next.i386 cc wrapper for Unix message and exit code semantics : 1995-05-09 :
HOSTTYPE=next.i386

View File

@@ -1,4 +1,4 @@
: next.m68k cc wrapper that enables posix : 2000-12-15 :
: next.m68k cc wrapper that enables POSIX : 2000-12-15 :
HOSTTYPE=next.m68k

View File

@@ -1,9 +0,0 @@
: OpenBSD cc wrapper
HOSTTYPE=openbsd.generic
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
exec /usr/bin/cc -P "$@"

View File

@@ -1,4 +1,4 @@
: sgi.mips2 cc wrapper that generates mips2 binaries : 2006-02-14 :
: sgi.mips2 cc wrapper that generates MIPS II binaries : 2006-02-14 :
HOSTTYPE=sgi.mips2

View File

@@ -1,4 +1,4 @@
: sgi.mips3 cc wrapper that generates mips3 binaries : 2007-04-27 :
: sgi.mips3 cc wrapper that generates MIPS III binaries : 2007-04-27 :
HOSTTYPE=sgi.mips3

View File

@@ -1,4 +1,4 @@
: sgi.mips3-o32 cc wrapper that generates mips3 o32 binaries : 2006-02-14 :
: sgi.mips3-o32 cc wrapper that generates MIPS III O32 binaries : 2006-02-14 :
HOSTTYPE=sgi.mips3-o32

View File

@@ -1,4 +1,4 @@
: sgi.mips4 cc wrapper that generates mips4 binaries : 2007-04-27 :
: sgi.mips4 cc wrapper that generates MIPS IV binaries : 2007-04-27 :
HOSTTYPE=sgi.mips4

View File

@@ -1,4 +1,4 @@
: sgi.mips4-n32 cc wrapper that generates mips4 n32 binaries : 2006-02-14 :
: sgi.mips4-n32 cc wrapper that generates MIPS IV N32 binaries : 2006-02-14 :
HOSTTYPE=sgi.mips4-n32

View File

@@ -1,18 +0,0 @@
: solaris.i386 cc wrapper for reasonable ansi C defaults and 32 bit : 2021-01-17 :
HOSTTYPE=sol11.i386
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
# Solaris build scripts set $CC_EXPLICIT. If not set, function without it.
case ${CC_EXPLICIT:=$CC} in
'' | cc)
PATH=`/usr/bin/getconf PATH` # avoid infinite recursion executing 'cc'
CC_EXPLICIT=cc
esac
# Note: the _XPG6 macro is now defined in src/lib/libast/features/common
$CC_EXPLICIT -m32 -xc99 "$@"

View File

@@ -1,18 +0,0 @@
: solaris.i386-64 cc wrapper for reasonable ansi C defaults and 64 bit : 2021-01-17 :
HOSTTYPE=sol11.i386-64
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
# Solaris build scripts set $CC_EXPLICIT. If not set, function without it.
case ${CC_EXPLICIT:=$CC} in
'' | cc)
PATH=`/usr/bin/getconf PATH` # avoid infinite recursion executing 'cc'
CC_EXPLICIT=cc
esac
# Note: the _XPG6 macro is now defined in src/lib/libast/features/common
$CC_EXPLICIT -m64 -xc99 "$@"

View File

@@ -1,18 +0,0 @@
: solaris.sparc cc wrapper for reasonable ansi C defaults and 32 bit : 2021-01-17 :
HOSTTYPE=sol11.sparc
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
# Solaris build scripts set $CC_EXPLICIT. If not set, function without it.
case ${CC_EXPLICIT:=$CC} in
'' | cc)
PATH=`/usr/bin/getconf PATH` # avoid infinite recursion executing 'cc'
CC_EXPLICIT=cc
esac
# Note: the _XPG6 macro is now defined in src/lib/libast/features/common
$CC_EXPLICIT -m32 -xc99 "$@"

View File

@@ -1,18 +0,0 @@
: solaris.sparc-64 cc wrapper for reasonable ansi C defaults and 64 bit : 2021-01-17 :
HOSTTYPE=sol11.sparc-64
case " $* " in
*" -dumpmachine "*) echo $HOSTTYPE; exit ;;
esac
# Solaris build scripts set $CC_EXPLICIT. If not set, function without it.
case ${CC_EXPLICIT:=$CC} in
'' | cc)
PATH=`/usr/bin/getconf PATH` # avoid infinite recursion executing 'cc'
CC_EXPLICIT=cc
esac
# Note: the _XPG6 macro is now defined in src/lib/libast/features/common
$CC_EXPLICIT -m64 -xc99 "$@"

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
@@ -31,7 +32,9 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
[-?
@(#)$Id: crossexec (AT&T Labs Research) 2004-01-04 $
]
'$USAGE_LICENSE$'
[-author?Glenn Fowler <gsf@research.att.com>]
[-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property]
[-license?http://www.eclipse.org/org/documents/epl-v10.html]
[+NAME?crossexec - cross compiler a.out execution]
[+DESCRIPTION?\bcrossexec\b runs a cross-compiled \acommand\a in an environment
that supports a cross-compilation architecture different from the

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -1,460 +0,0 @@
########################################################################
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
# #
# A copy of the License is available at #
# http://www.eclipse.org/org/documents/epl-v10.html #
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
# #
# Information and Software Systems Research #
# AT&T Research #
# Florham Park NJ #
# #
# Glenn Fowler <gsf@research.att.com> #
# #
########################################################################
: replicate directory hierarchies
COMMAND=ditto
case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
0123) ARGV0="-a $COMMAND"
USAGE=$'
[-?
@(#)$Id: ditto (AT&T Labs Research) 2010-11-22 $
]
'$USAGE_LICENSE$'
[+NAME?ditto - replicate directory hierarchies]
[+DESCRIPTION?\bditto\b replicates the \asource\a directory hierarchy
to the \adestination\a directory hierarchy. Both \asource\a and
\adestination\a may be of the form
[\auser\a@]][\ahost\a:]][\adirectory\a]]. At least one of
\ahost\a: or \adirectory\a must be specified. The current user is used
if \auser@\a is omitted, the local host is used if \ahost\a: is
omitted, and the user home directory is used if \adirectory\a is
omitted.]
[+?Remote hosts and files are accessed via \bssh\b(1) or \brsh\b(1). \bksh\b(1),
\bpax\b(1), and \btw\b(1) must be installed on the local and remote hosts.]
[+?For each source file \bditto\b does one of these actions:]{
[+chmod|chown?change the mode and/or ownership of the destination
file to match the source]
[+copy?copy the source file to the destination]
[+delete?delete the destination file]
[+skip?the destination file is not changed]
}
[+?The source and destination hierarchies are generated by \btw\b(1) with
the \b--logical\b option. An \b--expr\b option may
be specified to prune the search. The \btw\b searches are relative to
the \asource\a and \adestination\a directories.]
[c:checksum?Copy if the \btw\b(1) 32x4 checksum mismatches.]
[d:delete?Delete \adestination\a files that are not in the \asource\a.]
[e:expr?\btw\b(1) select expression.]:[tw-expression]
[m!:mode?Preserve file mode.]
[n:show?Show the operations but do not execute.]
[o:owner?Preserve file user and group ownership.]
[p:physical?Generate source and destination hierarchies by \btw\b(1) with
the \b--physical\b option.]
[r:remote?The remote access protocol; either \bssh\b or
\brsh\b.]:[protocol:=ssh]
[u:update?Copy only if the \asource\a file is newer than the
\adestination\a file.]
[v:verbose?Trace the operations as they are executed.]
[D:debug?Enable the debug trace.]
source destination
[+SEE ALSO?\brdist\b(1), \brsync\b(1), \brsh\b(1), \bssh\b(1), \btw\b(1)]
'
;;
*) ARGV0=""
USAGE="de:[tw-expression]mnouvD source destination"
;;
esac
usage()
{
OPTIND=0
getopts $ARGV0 "$USAGE" OPT '-?'
exit 2
}
parse() # id user@host:dir
{
typeset id dir user host
id=$1
dir=$2
(( debug || ! exec )) && print -r $id $dir
if [[ $dir == *@* ]]
then
user=${dir%%@*}
dir=${dir#${user}@}
else
user=
fi
if [[ $dir == *:* ]]
then
host=${dir%%:*}
dir=${dir#${host}:}
else
host=
fi
if [[ $user ]]
then
user="-l $user"
if [[ ! $host ]]
then
host=$(hostname)
fi
fi
eval ${id}_user='$user'
eval ${id}_host='$host'
eval ${id}_dir='$dir'
}
# initialize
typeset -A chown chmod
typeset tw cp rm link
integer ntw=0 ncp=0 nrm=0 nlink=0 n
typeset src_user src_host src_path src_type src_uid src_gid src_perm src_sum
typeset dst_user dst_host dst_path dst_type dst_uid dst_gid dst_perm dst_sum
integer src_size src_mtime src_eof
integer dst_size dst_mtime dst_eof
integer debug=0 delete=0 exec=1 mode=1 owner=0 update=0 verbose=0 logical
typeset remote=ssh trace
typeset checksum='"-"' pax="pax"
typeset paxreadflags="" paxwriteflags="--write --format=tgz --nosummary"
tw[ntw++]=tw
(( logical=ntw ))
tw[ntw++]=--logical
tw[ntw++]=--chop
tw[ntw++]=--ignore-errors
tw[ntw++]=--expr=sort:name
# grab the options
while getopts $ARGV0 "$USAGE" OPT
do case $OPT in
c) checksum=checksum ;;
d) delete=1 ;;
e) tw[ntw++]=--expr=\"$OPTARG\" ;;
m) mode=0 ;;
n) exec=0 verbose=1 ;;
o) owner=1 ;;
p) tw[logical]=--physical ;;
r) remote=$OPTARG ;;
u) update=1 ;;
v) verbose=1 ;;
D) debug=1 ;;
*) usage ;;
esac
done
shift $OPTIND-1
if (( $# != 2 ))
then usage
fi
tw[ntw++]=--expr=\''action:printf("%d\t%d\t%s\t%s\t%s\t%-.1s\t%o\t%s\t%s\n", size, mtime, '$checksum', uid, gid, mode, perm, path, symlink);'\'
if (( exec ))
then
paxreadflags="$paxreadflags --read"
fi
if (( verbose ))
then
paxreadflags="$paxreadflags --verbose"
fi
# start the source and destination path list generators
parse src "$1"
parse dst "$2"
# the |& command may exit before the exec &p
# the print sync + read delays the |& until the exec &p finishes
if [[ $src_host ]]
then ($remote $src_user $src_host "{ test ! -f .profile || . ./.profile ;} && cd $src_dir && read && ${tw[*]}") 2>&1 |&
else (cd $src_dir && read && eval "${tw[@]}") 2>&1 |&
fi
exec 5<&p 7>&p
print -u7 sync
exec 7>&-
if [[ $dst_host ]]
then ($remote $dst_user $dst_host "{ test ! -f .profile || . ./.profile ;} && cd $dst_dir && read && ${tw[*]}") 2>&1 |&
else (cd $dst_dir && read && eval "${tw[@]}") 2>&1 |&
fi
exec 6<&p 7>&p
print -u7 sync
exec 7>&-
# scan through the sorted path lists
if (( exec ))
then
src_skip=*
dst_skip=*
else
src_skip=
dst_skip=
fi
src_path='' src_eof=0
dst_path='' dst_eof=0
ifs=${IFS-$' \t\n'}
IFS=$'\t'
while :
do
# get the next source path
if [[ ! $src_path ]] && (( ! src_eof ))
then
if read -r -u5 text src_mtime src_sum src_uid src_gid src_type src_perm src_path src_link
then
if [[ $text != +([[:digit:]]) ]]
then
print -u2 $COMMAND: source: "'$text'"
src_path=
continue
fi
src_size=$text
elif (( dst_eof ))
then
break
elif (( src_size==0 ))
then
exit 1
else
src_path=
src_eof=1
fi
fi
# get the next destination path
if [[ ! $dst_path ]] && (( ! dst_eof ))
then
if read -r -u6 text dst_mtime dst_sum dst_uid dst_gid dst_type dst_perm dst_path dst_link
then
if [[ $text != +([[:digit:]]) ]]
then
print -u2 $COMMAND: destination: $text
dst_path=
continue
fi
dst_size=$text
elif (( src_eof ))
then
break
elif (( dst_size==0 ))
then
exit 1
else
dst_path=
dst_eof=1
fi
fi
# determine the { cp rm chmod chown } ops
if (( debug ))
then
[[ $src_path ]] && print -r -u2 -f $': src %8s %10s %s %s %s %s %3s %s\n' $src_size $src_mtime $src_sum $src_uid $src_gid $src_type $src_perm "$src_path"
[[ $dst_path ]] && print -r -u2 -f $': dst %8s %10s %s %s %s %s %3s %s\n' $dst_size $dst_mtime $dst_sum $dst_uid $dst_gid $dst_type $dst_perm "$dst_path"
fi
if [[ $src_path == $dst_path ]]
then
if [[ $src_type != $dst_type ]]
then
rm[nrm++]=$dst_path
if [[ $dst_path != $dst_skip ]]
then
if [[ $dst_type == d ]]
then
dst_skip="$dst_path/*"
print -r rm -r "'$dst_path'"
else
dst_skip=
print -r rm "'$dst_path'"
fi
fi
fi
if [[ $src_type == l ]]
then if [[ $src_link != $dst_link ]]
then
cp[ncp++]=$src_path
if [[ $src_path != $src_skip ]]
then
src_skip=
print -r cp "'$src_path'"
fi
fi
elif [[ $src_type != d ]] && { (( update && src_mtime > dst_mtime )) || (( ! update )) && { (( src_size != dst_size )) || [[ $src_sum != $dst_sum ]] ;} ;}
then
if [[ $src_path != . ]]
then
cp[ncp++]=$src_path
if [[ $src_path != $src_skip ]]
then
src_skip=
print -r cp "'$src_path'"
fi
fi
else
if (( owner )) && [[ $src_uid != $dst_uid || $src_gid != $dst_gid ]]
then
chown[$src_uid.$src_gid]="${chown[$src_uid.$src_gid]} '$src_path'"
if [[ $src_path != $src_skip ]]
then
src_skip=
print -r chown $src_uid.$src_gid "'$src_path'"
fi
if (( (src_perm & 07000) || mode && src_perm != dst_perm ))
then
chmod[$src_perm]="${chmod[$src_perm]} '$src_path'"
if [[ $src_path != $src_skip ]]
then
src_skip=
print -r chmod $src_perm "'$src_path'"
fi
fi
elif (( mode && src_perm != dst_perm ))
then
chmod[$src_perm]="${chmod[$src_perm]} '$src_path'"
if [[ $src_path != $src_skip ]]
then
src_skip=
print -r chmod $src_perm "'$src_path'"
fi
fi
fi
src_path=
dst_path=
elif [[ ! $dst_path || $src_path && $src_path < $dst_path ]]
then
if [[ $src_path != . ]]
then
cp[ncp++]=$src_path
if [[ $src_path != $src_skip ]]
then
if [[ $src_type == d ]]
then
src_skip="$src_path/*"
print -r cp -r "'$src_path'"
else
src_skip=
print -r cp "'$src_path'"
fi
fi
fi
src_path=
elif [[ $dst_path ]]
then
if (( delete ))
then
rm[nrm++]=$dst_path
if [[ $dst_path != $dst_skip ]]
then
if [[ $dst_type == d ]]
then
dst_skip="$dst_path/*"
print -r rm -r "'$dst_path'"
else
dst_skip=
print -r rm "'$dst_path'"
fi
fi
fi
dst_path=
fi
done
IFS=$ifs
(( exec )) || exit 0
# generate, transfer and execute the { rm chown chmod } script
if (( ${#rm[@]} || ${#chmod[@]} || ${#chown[@]} ))
then
{
if (( verbose ))
then
print -r -- set -x
fi
print -nr -- cd "'$dst_dir'"
n=0
for i in ${rm[@]}
do
if (( --n <= 0 ))
then
n=32
print
print -nr -- rm -rf
fi
print -nr -- " '$i'"
done
for i in ${!chown[@]}
do
n=0
for j in ${chown[$i]}
do
if (( --n <= 0 ))
then
n=32
print
print -nr -- chown $i
fi
print -nr -- " $j"
done
done
for i in ${!chmod[@]}
do
n=0
for j in ${chmod[$i]}
do
if (( --n <= 0 ))
then
n=32
print
print -nr -- chmod $i
fi
print -nr -- " $j"
done
done
print
} | {
if (( ! exec ))
then
cat
elif [[ $dst_host ]]
then
$remote $dst_user $dst_host sh
else
$SHELL
fi
}
fi
# generate, transfer and read back the { cp } tarball
if (( ${#cp[@]} ))
then
{
cd $src_dir &&
print -r -f $'%s\n' "${cp[@]}" |
$pax $paxwriteflags
} | {
if [[ $dst_host ]]
then
$remote $dst_user $dst_host "{ test ! -f .profile || . ./.profile ;} && { test -d \"$dst_dir\" || mkdir -p \"$dst_dir\" ;} && cd \"$dst_dir\" && gunzip | $pax $paxreadflags"
else
( { test -d "$dst_dir" || mkdir -p "$dst_dir" ;} && cd "$dst_dir" && gunzip | $pax $paxreadflags )
fi
}
wait
fi

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
@@ -17,7 +18,7 @@
# Glenn Fowler <gsf@research.att.com> #
# #
########################################################################
: wrapper for .exe challenged win32 systems/commands
: wrapper for .exe challenged Win32 systems/commands
(command set -o posix) 2>/dev/null && set -o posix
@@ -37,11 +38,13 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
[-?
@(#)$Id: execrate (AT&T Labs Research) 2002-02-02 $
]
'$USAGE_LICENSE$'
[-author?Glenn Fowler <gsf@research.att.com>]
[-copyright?Copyright (c) 2002-2012 AT&T Intellectual Property]
[-license?http://www.eclipse.org/org/documents/epl-v10.html]
[+NAME?execrate - wrapper for .exe challenged commands]
[+DESCRIPTION?\bexecrate\b runs \acommand\a after checking the \afile\a
operands for standard semantics with respect to \bwin32\b \b.exe\b
suffix conventions. This command is only needed on \bwin32\b
operands for standard semantics with respect to \bWin32\b \b.exe\b
suffix conventions. This command is only needed on \bWin32\b
systems that inconsistently handle \b.exe\b across library and
command interfaces. \acommand\a may be one of \bcat\b(1), \bchmod\b(1),
\bcmp\b(1), \bcp\b(1), \bln\b(1), \bmv\b(1), or \brm\b(1).

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
@@ -34,7 +35,9 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
[-?
@(#)$Id: filter (AT&T Labs Research) 2001-05-31 $
]
'$USAGE_LICENSE$'
[-author?Glenn Fowler <gsf@research.att.com>]
[-copyright?Copyright (c) 1994-2012 AT&T Intellectual Property]
[-license?http://www.eclipse.org/org/documents/epl-v10.html]
[+NAME?filter - run a command in stdin/stdout mode]
[+DESCRIPTION?\bfilter\b runs \acommand\a in a mode that takes input from
the \afile\a operands, or from the standard input if no \afile\a

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -1,209 +0,0 @@
########################################################################
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
# #
# A copy of the License is available at #
# http://www.eclipse.org/org/documents/epl-v10.html #
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
# #
# Information and Software Systems Research #
# AT&T Research #
# Florham Park NJ #
# #
# Glenn Fowler <gsf@research.att.com> #
# #
########################################################################
: copy http url data
(command set -o posix) 2>/dev/null && set -o posix
command=hurl
agent="$command/2009-01-20 (AT&T Research)"
authorize=
verbose=0
case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
0123) ARGV0="-a $command"
USAGE=$'
[-?
@(#)$Id: hurl (AT&T Research) 2009-01-20 $
]
'$USAGE_LICENSE$'
[+NAME?hurl - copy http url data]
[+DESCRIPTION?\bhurl\b copies the data for the \bhttp\b \aurl\a operand
to the standard output. The \aurl\a must be of the form
\b[http://]]\b\ahost\a[\b:\b\aport\a]]\b/\b\apath\a. The default
\aport\a is \b80\b.]
[+?\bhurl\b is a shell script that attempts to access the \aurl\a by
these methods:]{
[+/dev/tcp/\ahost\a\b/80\b?Supported by \bksh\b(1) and recent
\bbash\b(1).]
[+wget -nv -O - \aurl\a?]
[+lynx -source \aurl\a?]
[+curl -s -L -o - \aurl\a?]
}
[a:authorize?The url authorization user name and password, separated
by \b:\b (one colon character.)]:[user::password]
[s:size?Terminate the data transmission after \abytes\a have been
transferred.]:[bytes]
[v:verbose?Verbose trace.]
url
[+SEE ALSO?\bcurl\b(1), \blynx\b(1), \bwget\b(1)]
'
;;
*) ARGV0=""
USAGE="a:v"
;;
esac
usage()
{
OPTIND=0
getopts $ARGV0 "$USAGE" OPT '-?'
exit 2
}
integer limit=0 total=0 block=8*1024
while getopts $ARGV0 "$USAGE" OPT
do case $OPT in
a) authorize=$OPTARG ;;
s) limit=$OPTARG ;;
v) verbose=1 ;;
esac
done
shift `expr $OPTIND - 1`
url=$1
AUTHORIZE=
exec 9<&0
while :
do test 0 != $verbose && echo "$command: url=$url" >&2
case $url in
*://*/*)prot=${url%%:*}
url=${url#*://}
;;
*) prot=http
;;
esac
host=$url
path=/${host#*/}
host=${host%%/*}
case $host in
*:+([0-9]))
port=${host##*:}
host=${host%:*}
;;
*) port=80
;;
esac
test 0 != $verbose && echo "$command: prot=$prot host=$host port=$port path=$path" >&2
case $prot in
http) if (eval "exec >" || exit 0) 2>/dev/null &&
eval "exec 8<> /dev/tcp/\$host/$port" 2>/dev/null
then test 0 != $verbose && echo "$command: using /dev/tcp/$host/$port" >&2
if ! echo "GET $path HTTP/1.0
Host: $host
User-Agent: $agent
${AUTHORIZE}
" >&8
then echo "$command: $host: write error"
exit 1
fi
{
if ! read prot code text
then echo "$command: $host: read error" >&2
exit 1
fi
code=${code%:*}
type=Basic
realm=access
test 0 != $verbose && echo "$command: prot=$prot code=$code $text" >&2
while :
do if ! read head data
then echo "$command: $host: read error" >&2
exit 1
fi
test 0 != $verbose && echo "$command: head=$head $data" >&2
case $head in
Location:)
case $code in
30[123])url=$data
continue 2
;;
esac
;;
WWW-Authenticate:)
set -- $data
type=$1
shift
eval "$@"
realm=${realm%$'\r'}
;;
''|?) break
;;
esac
done
case $code in
200) if (( limit ))
then (( limit = (limit + block - 1) / block))
dd bs=$block count=$limit silent=1
else cat
fi
exit
;;
401) {
if [[ $AUTHORIZE || $type != Basic ]]
then print authorization failed
exit 1
fi
if [[ ! $authorize ]]
then if [[ ! -t 0 ]]
then print authorization failed
exit 1
fi
print -n "Enter user name for $realm: "
read -u9 user
print -n "Password: "
trap 'stty echo <&9' 0 1 2 3 15
stty -echo
read password
stty echo
print
trap - 0 1 2 3 15
authorize=$user:$password
fi
AUTHORIZE=$'\nAuthorization: '$type' '$(print -n -r -- "$authorize" | uuencode -h -x base64)$'\r'
} <&9 >&2
continue 2
;;
*) echo "$0: $url: $code: $text" >&2
exit 1
;;
esac
} <&8
elif wget ${authorize:+--http-user="${authorize%:*}"} ${password:+--http-passwd="${password##*:}"} -nv -O - $url 2>/dev/null
then test 0 != $verbose && echo "$command: using wget" >&2
exit
elif lynx ${authorize:+-auth "$authorize"} -source $url 2>/dev/null
then test 0 != $verbose && echo "$command: using wget" >&2
exit
elif curl ${authorize:+-u "$authorize"} -s -L -o - $url 2>/dev/null
then test 0 != $verbose && echo "$command: using curl" >&2
exit
else echo "$command: $url: { /dev/tcp/$host/$port wget curl } failed" >&2
exit 1
fi
;;
*) echo "$command: $prot: protocol not supported" >&2
exit 1
;;

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

File diff suppressed because it is too large Load Diff

View File

@@ -12,7 +12,7 @@ TEST 01 'command line basics'
ERROR - $'iffe: test: is sys/types.h a header ... yes
iffe: test: is stdio.h a header ... yes'
EXEC -r -v -s bsh - hdr stdio
EXEC -r -v -s posix - hdr stdio
EXEC -r -v - hdr stdio,limits
OUTPUT - $'/* : : generated by iffe version 1995-03-19 : : */
@@ -26,7 +26,7 @@ iffe: test: is stdio.h a header ... yes'
iffe: test: is stdio.h a header ... yes
iffe: test: is limits.h a header ... yes'
EXEC -r -v -s bsh - hdr stdio,limits
EXEC -r -v -s posix - hdr stdio,limits
EXEC -r -v - hdr,lib no_foo_bar,no_bar_foo stdio.h
OUTPUT - $'/* : : generated by iffe version 1995-03-19 : : */
@@ -42,11 +42,11 @@ iffe: test: is no_bar_foo.h a header ... no
iffe: test: is no_foo_bar a library function ... no
iffe: test: is no_bar_foo a library function ... no'
EXEC -r -v -s bsh - hdr,lib no_foo_bar,no_bar_foo stdio.h
EXEC -r -v -s posix - hdr,lib no_foo_bar,no_bar_foo stdio.h
EXEC -r -v - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_bar_foo stdio.h
EXEC -r -v -s bsh - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_bar_foo stdio.h
EXEC -r -v -s posix - hdr no_foo_bar,no_bar_foo stdio.h : lib no_foo_bar,no_bar_foo stdio.h
TEST 02 'file input basics'
@@ -61,7 +61,7 @@ TEST 02 'file input basics'
ERROR - $'iffe: test: is sys/types.h a header ... yes
iffe: test: is stdio.h a header ... yes'
EXEC -r -v -s bsh - t1.iffe
EXEC -r -v -s posix - t1.iffe
EXEC -r -v - t2.iffe
INPUT t2.iffe $'hdr stdio,limits'
@@ -76,7 +76,7 @@ iffe: test: is stdio.h a header ... yes'
iffe: test: is stdio.h a header ... yes
iffe: test: is limits.h a header ... yes'
EXEC -r -v -s bsh - t2.iffe
EXEC -r -v -s posix - t2.iffe
EXEC -r -v - t3.iffe
INPUT t3.iffe $'hdr,lib no_foo_bar,no_bar_foo stdio.h'
@@ -93,13 +93,13 @@ iffe: test: is no_bar_foo.h a header ... no
iffe: test: is no_foo_bar a library function ... no
iffe: test: is no_bar_foo a library function ... no'
EXEC -r -v -s bsh - t3.iffe
EXEC -r -v -s posix - t3.iffe
EXEC -r -v - t3.iffe
INPUT t3.iffe $'hdr no_foo_bar,no_bar_foo stdio.h
lib no_foo_bar,no_bar_foo stdio.h'
EXEC -r -v -s bsh - t3.iffe
EXEC -r -v -s posix - t3.iffe
TEST 03 'nested if'
@@ -136,7 +136,7 @@ endif'
iffe: test: is stdio.h a header ... yes
iffe: test: is open a library function ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff ifelse
@@ -170,7 +170,7 @@ HIT 4
iffe: test: is _XXX_stdio.h a header ... no
iffe: test: is limits.h a header ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff ifelse
@@ -203,7 +203,7 @@ HIT 5
iffe: test: is _XXX_stdio.h a header ... no
iffe: test: is _XXX_limits.h a header ... no'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff ifelse
@@ -239,7 +239,7 @@ iffe: test: is stdio.h a header ... yes
iffe: test: is _XXX_open a library function ... no
iffe: test: is close a library function ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff ifelse
@@ -274,7 +274,7 @@ iffe: test: is stdio.h a header ... yes
iffe: test: is _XXX_open a library function ... no
iffe: test: is _XXX_close a library function ... no'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff ifelse
@@ -312,7 +312,7 @@ iffe: test: is stat a type or typedef ... no
iffe: test: is st_atime a member of struct stat ... yes
iffe: test: is ( !no_stat_time ) true ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff ifelse
@@ -352,7 +352,7 @@ iffe: test: is stat a type or typedef ... no
iffe: test: is st_ctime a member of struct stat ... yes
iffe: test: is ( !no_stat_time ) true ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff ifelse
@@ -393,7 +393,7 @@ iffe: test: is stat a type or typedef ... no
iffe: test: is st_mtime a member of struct stat ... yes
iffe: test: is ( !no_stat_time ) true ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff ifelse
@@ -430,7 +430,7 @@ iffe: test: is st_ctime a member of struct foo_stat ... no
iffe: test: is st_mtime a member of struct foo_stat ... no
iffe: test: is ( !no_stat_time ) true ... no'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'set explicit
@@ -453,7 +453,7 @@ OK
ERROR - $'iffe: test: is sys/types.h a header ... yes
iffe: test: is stdio.h a header ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
TEST 04 'test variable/macro override'
@@ -469,7 +469,7 @@ HAVE_STDIO = hdr stdio'
ERROR - $'iffe: test: is sys/types.h a header ... yes
iffe: test: is stdio.h a header ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -485,7 +485,7 @@ endif'
#endif'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -494,7 +494,7 @@ if - hdr stdio {
}
endif'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -503,7 +503,7 @@ if ? hdr stdio {
}
endif'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -512,7 +512,7 @@ if hdr - stdio {
}
endif'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -538,7 +538,7 @@ endif'
iffe: test: is stdio.h a header ... yes
iffe: test: is ( HAVE_STDIO ) true ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -560,7 +560,7 @@ exp ALSO HAVE_STDIO'
iffe: test: is stdio.h a header ... yes
iffe: test: is HAVE_STDIO true ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -582,7 +582,7 @@ ALSO = ( HAVE_STDIO )'
iffe: test: is stdio.h a header ... yes
iffe: test: is ( HAVE_STDIO ) true ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
TEST 05 'test code option sequence'
@@ -605,7 +605,7 @@ tst seq - -DA=1 - -DB=1 note{ long int type }end compile{
ERROR - 'iffe: test: is sys/types.h a header ... yes
iffe: test: long int type ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -618,7 +618,7 @@ tst seq -DG=1 - -DN=1 - -DN=2 note{ long int type }end compile{
t n = 0;
}end'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -634,7 +634,7 @@ tst seq - -DA=1 - -DB=1 note{ long int type }end compile{
iffe: test: long int type ...
iffe: test: long int type ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -647,7 +647,7 @@ tst seq -DG=1 - -DN=1 - -DN=2 note{ long int type }end compile{
t n = 0;
}end'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -668,7 +668,7 @@ tst seq - -DA=1 - -DB=1 note{ long int type }end compile{
iffe: test: long int type ...
iffe: test: long int type ... no'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -681,7 +681,7 @@ tst seq -DG=1 - -DN=1 - -DN=2 note{ long int type }end compile{
t n = 0;
}end'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -707,7 +707,7 @@ endif'
ERROR - 'iffe: test: is sys/types.h a header ... yes
iffe: test: long int type ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -723,7 +723,7 @@ if tst -DG=1 - -DN=1 - -DN=2 note{ long int type }end compile{
}
endif'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -742,7 +742,7 @@ endif'
iffe: test: long int type ...
iffe: test: long int type ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -758,7 +758,7 @@ if tst -DG=1 - -DN=1 - -DN=2 note{ long int type }end compile{
}
endif'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -782,7 +782,7 @@ endif'
iffe: test: long int type ...
iffe: test: long int type ... no'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -798,7 +798,7 @@ if tst -DG=1 - -DN=1 - -DN=2 note{ long int type }end compile{
}
endif'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -824,7 +824,7 @@ endif'
ERROR - 'iffe: test: is sys/types.h a header ... yes
iffe: test: long int type ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -843,7 +843,7 @@ endif'
iffe: test: long int type ...
iffe: test: long int type ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -863,7 +863,7 @@ iffe: test: long int type ...
iffe: test: long int type ...
iffe: test: long int type ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -r -v - t.iffe
INPUT t.iffe $'iff macro
@@ -888,7 +888,7 @@ iffe: test: long int type ...
iffe: test: long int type ...
iffe: test: long int type ... no'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
TEST 06 'block side effects'
@@ -906,7 +906,7 @@ tst output{
#define _sys_types 1 /* #include <sys/types.h> ok */
HIT'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'iff
@@ -919,7 +919,7 @@ tst - output{
}
}end'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'iff
@@ -934,7 +934,7 @@ tst - output{
OUTPUT - $'/* : : generated from t.iffe by iffe version 1995-03-19 : : */
#define _sys_types 1 /* #include <sys/types.h> ok */'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'iff
@@ -950,7 +950,7 @@ tst - nooutput{
#define _sys_types 1 /* #include <sys/types.h> ok */
HIT'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
TEST 07 'diagnostics'
@@ -964,7 +964,7 @@ TEST 07 'diagnostics'
ERROR - $'iffe: t.iffe:1: tst: unknown feature test'
EXIT 1
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'if (1)'
@@ -975,7 +975,7 @@ TEST 07 'diagnostics'
ERROR - $'iffe: t.iffe:1: missing endif'
EXIT 1
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'if'
@@ -985,20 +985,20 @@ TEST 07 'diagnostics'
#define _sys_types 1 /* #include <sys/types.h> ok */'
ERROR - $'iffe: t.iffe:1: missing endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'endif'
ERROR - $'iffe: t.iffe:1: endif: no matching if'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'if {
}end'
ERROR - $'iffe: t.iffe:2: missing }'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
TEST 08 'negation consternation'
@@ -1121,7 +1121,7 @@ ONE
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1146,7 +1146,7 @@ exp _tst_hit !_tst_hit&_tst_true {
TWO 0 1
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1173,7 +1173,7 @@ THREE
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1196,7 +1196,7 @@ exp _tst_hit !_tst_hit&_tst_false {
#define _tst_true 1 /* ( 1 ) is true */
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1223,7 +1223,7 @@ ONE
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1248,7 +1248,7 @@ exp _tst_hit !_tst_hit&&_tst_true {
TWO 0 1
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1275,7 +1275,7 @@ THREE
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1298,7 +1298,7 @@ exp _tst_hit !_tst_hit&&_tst_false {
#define _tst_true 1 /* ( 1 ) is true */
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1324,7 +1324,7 @@ ONE
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1349,7 +1349,7 @@ endif'
TWO
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1375,7 +1375,7 @@ THREE
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1394,7 +1394,7 @@ endif'
#define _tst_true 1 /* ( 1 ) is true */
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1418,7 +1418,7 @@ OK
#endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
EXEC -r - t.iffe
INPUT t.iffe $'_tst_false = ( 0 )
@@ -1434,7 +1434,7 @@ else {
}
endif'
EXEC -r -s bsh - t.iffe
EXEC -r -s posix - t.iffe
TEST 10 'exp details'
@@ -1471,7 +1471,7 @@ iffe: test: is ( ! _aaa ) true ... yes
iffe: test: is ( _zzz ) true ... yes
iffe: test: is ( ! _zzz ) true ... no'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
TEST 11 'set [no]define'
@@ -1505,7 +1505,7 @@ iffe: test: is st_mode a member of struct stat ... yes
iffe: test: is ( _mem_st_mtime_stat ) true ... yes
iffe: test: is ( _mem_st_mode_stat ) true ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
TEST 12 'non-opaque mem'
@@ -1567,7 +1567,7 @@ iffe: test: is huh a reserved keyword ... no
iffe: test: is chr a reserved keyword ... no
iffe: test: is char a reserved keyword ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s posix - t.iffe
EXEC -u -r -v - t.iffe
OUTPUT - $'/* : : generated from t.iffe by iffe version 1995-03-19 : : */
@@ -1585,7 +1585,7 @@ iffe: test: is char a reserved keyword ... yes'
#define chr char /* alternate for reserved keyword chr */
#endif'
EXEC -u -r -v -s bsh - t.iffe
EXEC -u -r -v -s posix - t.iffe
EXEC -a -r -v - t.iffe
OUTPUT - $'/* : : generated from t.iffe by iffe version 1995-03-19 : : */
@@ -1603,7 +1603,7 @@ iffe: test: is char a reserved keyword ... yes'
#define chr char /* alternate for reserved keyword chr */
#endif'
EXEC -a -r -v -s bsh - t.iffe
EXEC -a -r -v -s posix - t.iffe
EXEC -C -r -v - t.iffe
OUTPUT - $'/* : : generated from t.iffe by iffe version 1995-03-19 : : */
@@ -1621,7 +1621,7 @@ iffe: test: is char a reserved keyword ... yes'
#define chr char /* alternate for reserved keyword chr */
#endif'
EXEC -C -r -v -s bsh - t.iffe
EXEC -C -r -v -s posix - t.iffe
TEST 14 'inc file'
@@ -1739,9 +1739,7 @@ iffe: test: is ( 1 ) true ... yes
iffe: test: is ( 2 ) true ... yes
iffe: test: cat{ ... }end ... yes'
EXEC -r -v -s bsh - t.iffe
EXEC -r -v -s osh - t.iffe
EXEC -r -v -s posix - t.iffe
TEST 16 '{ define extern include print }'
@@ -1778,71 +1776,9 @@ iffe: test: is Tab_lE a symbol that needs a prototype ... yes'
TEST 17 'features/* => FEATURE/*'
EXEC -r -v run features/stdio
INPUT features/stdio $'set prototyped
header stdio.h'
OUTPUT FEATURE/stdio $'
/* : : generated by proto : : */
/* : : generated from features/stdio by iffe version 1995-03-19 : : */
INPUT features/stdio $'header stdio.h'
OUTPUT FEATURE/stdio $'/* : : generated from features/stdio by iffe version 1995-03-19 : : */
#ifndef _REGRESS
#if !defined(__PROTO__)
# if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
# if defined(__cplusplus)
# define __LINKAGE__ "C"
# else
# define __LINKAGE__
# endif
# define __STDARG__
# define __PROTO__(x) x
# define __OTORP__(x)
# define __PARAM__(n,o) n
# if !defined(__STDC__) && !defined(__cplusplus)
# if !defined(c_plusplus)
# define const
# endif
# define signed
# define void int
# define volatile
# define __V_ char
# else
# define __V_ void
# endif
# else
# define __PROTO__(x) ()
# define __OTORP__(x) x
# define __PARAM__(n,o) o
# define __LINKAGE__
# define __V_ char
# define const
# define signed
# define void int
# define volatile
# endif
# define __MANGLE__ __LINKAGE__
# if defined(__cplusplus) || defined(c_plusplus)
# define __VARARG__ ...
# else
# define __VARARG__
# endif
# if defined(__STDARG__)
# define __VA_START__(p,a) va_start(p,a)
# else
# define __VA_START__(p,a) va_start(p)
# endif
# if !defined(__INLINE__)
# if defined(__cplusplus)
# define __INLINE__ extern __MANGLE__ inline
# else
# if defined(_WIN32) && !defined(__GNUC__)
# define __INLINE__ __inline
# endif
# endif
# endif
#endif
#if !defined(__LINKAGE__)
#define __LINKAGE__ /* 2004-08-11 transition */
#endif
#define _REGRESS 1
#define _sys_types 1 /* #include <sys/types.h> ok */
#include <stdio.h>

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
@@ -18,20 +19,14 @@
# #
########################################################################
# non-ksh script for the nmake ignore prefix
# @(#)ignore (AT&T Research) 1992-08-11
(command set -o posix) 2>/dev/null && set -o posix
modern_export=`v=; export v=ok 2>/dev/null; echo "$v"`
# @(#)ignore (ksh 93u+m) 2021-12-31
while :
do case $# in
0) exit 0 ;;
esac
case $1 in
*=*) case $modern_export in
ok) export "$1" ;;
*) `echo $1 | sed "s/\\([^=]*\\)=\\(.*\\)/eval \\1='\\2'; export \\1/"` ;;
esac
*=*) export "$1"
shift
;;
*) break

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -1,5 +1,5 @@
#!/bin/env sh
: cygwin.i386 ldd -- how many ways does this confirm the windows bias?
: cygwin.i386 ldd -- how many ways does this confirm the Windows bias?
for f
do case $f in
*.exe) ;;

View File

@@ -1,2 +1,2 @@
: mac os10 ldd
: Mac OS X ldd
otool -L "$@"

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -72,7 +72,6 @@ extern int i;
int i = 1;
extern int f(){return(!i);}
int main(){FILE* fp=stdin;return(f());}' > pic.$src
echo 'class x {int n;} m;' > plusplus.$src
echo 'int prefix(){return 0;}' > prefix.$src
echo 'template<class T> int gt(T a, T b);
template<class T> int gt(T a, T b) { return a > b; }
@@ -89,7 +88,7 @@ echo '#if mips && !sgi || __CYGWIN__
CONST char x[]={1,2,3,4,5,6,7,8,9,0};
int main(){*(char*)x=0; return x[0];}
#endif' > readonly.$src
# NOTE: sfclose() defined on uwin, not defined on all other systems
# NOTE: sfclose() defined on UWIN, not defined on all other systems
echo 'extern int sfclose(); extern int ShareD(){return(sfclose());}' > shared.$src
echo '#define g(a,b) a ## b
volatile int a;
@@ -102,9 +101,7 @@ int i;
int main(){int j;j = i * 10;return j;}' > strip.$src
echo 'template <class T> void f(T){}
int main(){f(1);return 0;}' > toucho.$src
echo '#if defined(__STDC__) || defined(__cplusplus)
extern type call(int);
#endif
echo 'extern type call(int);
int main() {call(0);return(0);}' > tstlib.$src
echo 'int main(){return 0;}' > warn.$src
echo 'int f(){return 0;}' > warn1.$src
@@ -154,7 +151,6 @@ nmedit=
nmflags=
no_protect=
optimize=
plusplus=
prefix_archive=lib
prefix_dynamic=
prefix_shared=lib
@@ -404,7 +400,7 @@ int main() { f(); return 0; }' > picok.$src
}
case $1 in
-Wc,*exportall*)
# get specific since sgi gets this far too
# get specific since SGI gets this far too
rm -f pic.$exe pic.x
$cc -Wl,dll -o pic.$exe pic.$obj || continue
test -f pic.$exe || continue
@@ -433,7 +429,6 @@ int main() { f(); return 0; }' > picok.$src
esac
fi
$cc -c plusplus.$src && plusplus=1
$cc -E -dD dDflag.$src > t
case `grep '#define[ ][ ]*dDflag[ ][ ]*on' t` in
?*) dDflag=1 ;;
@@ -441,90 +436,7 @@ esac
case `grep '#define.*_GNUC_' t` in
?*) gnu=1 ;;
esac
case $plusplus in
"") $cc -c stdc.$src && stdc=1 ;;
*) mkdir ptr
cd ptr
$cc -c ../ptr.$src &
NFS_locks_are_botched=$!
cd ..
if $cc -c require.$src && $cc require.$obj
then set x `$cc require.$obj 2>&1`
d=
while :
do shift
case $# in
0) break ;;
esac
case $1 in
-l*) d="$d $1" ;;
esac
done
for f in ++
do if $cc require.$obj -l$f
then set x `$cc require.$obj -l$f 2>&1`
r=
while :
do shift
case $# in
0) break ;;
esac
case $1 in
-l*) case " $d $r " in
*" "$1" "*) ;;
*) r="$r $1" ;;
esac
esac
done
case $r in
?*) require="$require $f"
echo '' $r > req.$f
;;
esac
fi
done
fi
cd ptr
for i in *
do if test -d $i
then repository=$i
break
fi
done
cd ..
kill -9 $NFS_locks_are_botched
rm -rf ptr
case $repository in
*?) mkdir ptr
cd ptr
i=PTR
case $repository in
$i) i=$i$i ;;
esac
$cc -ptr$i -c ../ptr.$src &
NFS_locks_are_botched=$!
cd ..
sleep 5
if test -d ptr/$i/$repository
then ptrimplicit=1
fi
kill -9 $NFS_locks_are_botched
rm -rf ptr
;;
esac
$cc -o implc implc.$src && $executable implc && implicitc=1
if $cc -c toucho.$src && test -f toucho.$obj
then o=`ls -l toucho.$obj`
if $cc -o toucho toucho.$obj && $executable toucho
then n=`ls -l touch.$obj`
case $n in
"$o") ;;
*) toucho=1 ;;
esac
fi
fi
;;
esac
$cc -c stdc.$src && stdc=1
if $cc -c pic.$src
then eval set x $probe_nmflags
@@ -660,7 +572,7 @@ case $cc_dll:$cc_pic:$so:$dynamic:$static in
if $cc -shared -Wl,--enable-auto-image-base -Wl,--out-implib=xxx.lib -o xxx.dll exp.$obj &&
test -f xxx.lib -a -f xxx.dll
then
: cygwin
: Cygwin
cc_dll=$cc_dll_def
dll_dir='$(BINDIR)'
sd=.dll
@@ -713,37 +625,34 @@ case $cc_dll:$cc_pic:$so:$dynamic:$static in
esac
dld=$xx
shared=$1
# does -nostartfiles make sense for C?
case $plusplus in
'') z=`wc -c < xxx$dll`
eval set x $probe_shared_nostart
while :
do shift
case $# in
0) break ;;
esac
rm -f xxx$dll
if $dld $shared $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll
then case `wc -c < xxx$dll` in
$z) ;;
*) if test -s e
then case `cat e` in
*[Ee][Rr][Rr][Oo][Rr]*|*[Ww][Aa][Rr][Nn][Ii][Nn][Gg]*|*[Oo][Pp][Tt][Ii][Oo][Nn]*)
continue
;;
esac
fi
case $shared in
'') shared=$1 ;;
*) shared="$shared $1" ;;
# does -nostartfiles make sense?
z=`wc -c < xxx$dll`
eval set x $probe_shared_nostart
while :
do shift
case $# in
0) break ;;
esac
rm -f xxx$dll
if $dld $shared $1 -o xxx$dll shared.$obj 2>e && test -r xxx$dll
then case `wc -c < xxx$dll` in
$z) ;;
*) if test -s e
then case `cat e` in
*[Ee][Rr][Rr][Oo][Rr]*|*[Ww][Aa][Rr][Nn][Ii][Nn][Gg]*|*[Oo][Pp][Tt][Ii][Oo][Nn]*)
continue
;;
esac
break
;;
fi
case $shared in
'') shared=$1 ;;
*) shared="$shared $1" ;;
esac
fi
done
;;
esac
break
;;
esac
fi
done
case $cc_dll in
"") cc_dll=$cc_dll_def ;;
esac
@@ -1319,9 +1228,7 @@ case $stdlib in
fi
tstlib="$tstlib $implib"
if $cc -Dtype=void -Dcall=exit -c tstlib.$src && mv tstlib.$obj tst.$obj
then case $plusplus in
'') probe_lxx= ;;
esac
then probe_lxx=
l=
for sym in $probe_l $probe_lxx
do case $l in
@@ -1445,7 +1352,7 @@ case $stdlib in
ok=0
for x in $xs
do case $x in
*_p) continue ;; # linux gcc known to hang for -lc_p
*_p) continue ;; # Linux gcc known to hang for -lc_p
esac
if $cc -o doti.$exe doti.$obj -l$x 2>e
then ok=1
@@ -1666,9 +1573,6 @@ done
case $stdc in
?*) dialect="$dialect ANSI" ;;
esac
case $plusplus in
?*) dialect="$dialect C++" ;;
esac
case $hosted in
"") dialect="$dialect CROSS" ;;
esac

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1990-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -17,7 +18,7 @@
* Glenn Fowler <gsf@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
#pragma clang diagnostic ignored "-Wdeprecated-register"
#pragma clang diagnostic ignored "-Wparentheses"
/*
@@ -27,7 +28,7 @@
*/
#define RELEASE_DATE "2021-01-21"
static char id[] = "\n@(#)$Id: mamake (AT&T Research/ksh93) " RELEASE_DATE " $\0\n";
static char id[] = "\n@(#)$Id: mamake (ksh 93u+m) " RELEASE_DATE " $\0\n";
#if _PACKAGE_ast
@@ -35,8 +36,11 @@ static char id[] = "\n@(#)$Id: mamake (AT&T Research/ksh93) " RELEASE_DATE " $\0
#include <error.h>
static const char usage[] =
"[-?\n@(#)$Id: mamake (AT&T Research/ksh93) " RELEASE_DATE " $\n]"
USAGE_LICENSE
"[-?\n@(#)$Id: mamake (ksh 93u+m) " RELEASE_DATE " $\n]"
"[-author?Glenn Fowler <gsf@research.att.com>]"
"[-copyright?(c) 1994-2012 AT&T Intellectual Property]"
"[-copyright?(c) 2020-2021 Contributors to https://github.com/ksh93/ksh]"
"[-license?http://www.eclipse.org/org/documents/epl-v10.html]"
"[+NAME?mamake - make abstract machine make]"
"[+DESCRIPTION?\bmamake\b reads \amake abstract machine\a target and"
" prerequisite file descriptions from a mamfile (see \b-f\b) and executes"
@@ -106,7 +110,7 @@ USAGE_LICENSE
#include <sys/stat.h>
#include <time.h>
#if !_PACKAGE_ast && defined(__STDC__)
#if !_PACKAGE_ast
#include <stdlib.h>
#include <string.h>
#endif
@@ -383,7 +387,7 @@ buffer(void)
if (buf = state.old)
state.old = state.old->old;
else if (!(buf = newof(0, Buf_t, 1, 0)) || !(buf->buf = newof(0, char, CHUNK, 0)))
report(3, "out of space [buffer]", NiL, (unsigned long)0);
report(3, "out of memory [buffer]", NiL, (unsigned long)0);
buf->end = buf->buf + CHUNK;
buf->nxt = buf->buf;
return buf;
@@ -415,7 +419,7 @@ appendn(Buf_t* buf, char* str, int n)
i = buf->nxt - buf->buf;
m = (((buf->end - buf->buf) + n + CHUNK + 1) / CHUNK) * CHUNK;
if (!(buf->buf = newof(buf->buf, char, m, 0)))
report(3, "out of space [buffer resize]", NiL, (unsigned long)0);
report(3, "out of memory [buffer resize]", NiL, (unsigned long)0);
buf->end = buf->buf + m;
buf->nxt = buf->buf + i;
}
@@ -450,7 +454,7 @@ duplicate(char* s)
n = strlen(s);
if (!(t = newof(0, char, n, 1)))
report(3, "out of space [duplicate]", s, (unsigned long)0);
report(3, "out of memory [duplicate]", s, (unsigned long)0);
strcpy(t, s);
return t;
}
@@ -465,7 +469,7 @@ dictionary(void)
Dict_t* dict;
if (!(dict = newof(0, Dict_t, 1, 0)))
report(3, "out of space [dictionary]", NiL, (unsigned long)0);
report(3, "out of memory [dictionary]", NiL, (unsigned long)0);
return dict;
}
@@ -539,7 +543,7 @@ search(register Dict_t* dict, char* name, void* value)
else if (value)
{
if (!(root = newof(0, Dict_item_t, 1, strlen(name))))
report(3, "out of space [dictionary]", name, (unsigned long)0);
report(3, "out of memory [dictionary]", name, (unsigned long)0);
strcpy(root->name, name);
}
if (root)
@@ -606,7 +610,7 @@ rule(char* name)
if (!(r = (Rule_t*)search(state.rules, name, NiL)))
{
if (!(r = newof(0, Rule_t, 1, 0)))
report(3, "out of space [rule]", name, (unsigned long)0);
report(3, "out of memory [rule]", name, (unsigned long)0);
r->name = (char*)search(state.rules, name, (void*)r);
}
return r;
@@ -625,7 +629,7 @@ cons(Rule_t* r, Rule_t* p)
if (!x)
{
if (!(x = newof(0, List_t, 1, 0)))
report(3, "out of space [list]", r->name, (unsigned long)0);
report(3, "out of memory [list]", r->name, (unsigned long)0);
x->rule = p;
x->next = r->prereqs;
r->prereqs = x;
@@ -709,7 +713,7 @@ view(void)
}
n = strlen(s);
if (!(vp = newof(0, View_t, 1, strlen(p) + n + 1)))
report(3, "out of space [view]", s, (unsigned long)0);
report(3, "out of memory [view]", s, (unsigned long)0);
vp->node = n + 1;
strcpy(vp->dir, s);
*(vp->dir + n) = '/';
@@ -861,7 +865,7 @@ substitute(Buf_t* buf, register char* s)
}
if (c != '-')
break;
/*FALLTHROUGH*/
/* FALLTHROUGH */
case 0:
case '=':
case '}':
@@ -1076,13 +1080,23 @@ push(char* file, Stdio_t* fp, int flags)
else if (++state.sp >= &state.streams[elementsof(state.streams)])
report(3, "input stream stack overflow", NiL, (unsigned long)0);
if (state.sp->fp = fp)
state.sp->file = "pipeline";
{
if(state.sp->file)
free(state.sp->file);
state.sp->file = strdup("pipeline");
if(!state.sp->file)
report(3, "out of memory [push]", NiL, (unsigned long)0);
}
else if (flags & STREAM_PIPE)
report(3, "pipe error", file, (unsigned long)0);
else if (!file || !strcmp(file, "-") || !strcmp(file, "/dev/stdin"))
{
flags |= STREAM_KEEP;
state.sp->file = "/dev/stdin";
if(state.sp->file)
free(state.sp->file);
state.sp->file = strdup("/dev/stdin");
if(!state.sp->file)
report(3, "out of memory [push]", NiL, (unsigned long)0);
state.sp->fp = stdin;
}
else
@@ -1092,6 +1106,8 @@ push(char* file, Stdio_t* fp, int flags)
{
if (!(state.sp->fp = fopen(path, "r")))
report(3, "cannot read", path, (unsigned long)0);
if(state.sp->file)
free(state.sp->file);
state.sp->file = duplicate(path);
drop(buf);
}
@@ -1136,7 +1152,7 @@ input(void)
/*
* pass shell action s to ${SHELL:-/bin/sh}
* the -c wrapper ensures that scripts are run in the selected shell
* even on systems that otherwise demand #! magic (can you say cygwin)
* even on systems that otherwise demand #! magic (can you say Cygwin)
*/
static int
@@ -1443,6 +1459,7 @@ require(char* lib, int dontcare)
Buf_t* tmp;
struct stat st;
int tofree = 0;
static int dynamic = -1;
if (dynamic < 0)
@@ -1487,7 +1504,10 @@ require(char* lib, int dontcare)
}
}
if (r != lib)
{
tofree = 1;
r = duplicate(r);
}
search(state.vars, lib, r);
append(tmp, lib + 2);
append(tmp, ".req");
@@ -1516,6 +1536,8 @@ require(char* lib, int dontcare)
}
}
fclose(f);
if(tofree)
free(r);
r = use(buf);
}
else if (dontcare)
@@ -1530,7 +1552,11 @@ require(char* lib, int dontcare)
append(tmp, "rm -f x.${!-$$}.[cox]\n");
append(tmp, "exit $c\n");
if (execute(expand(buf, use(tmp))))
{
if(tofree)
free(r);
r = "";
}
}
r = duplicate(r);
search(state.vars, lib, r);
@@ -2115,7 +2141,7 @@ main(int argc, char** argv)
continue;
case 'N':
state.never = 1;
/*FALLTHROUGH*/
/* FALLTHROUGH */
case 'n':
append(state.opt, " -n");
state.exec = 0;
@@ -2154,8 +2180,8 @@ main(int argc, char** argv)
search(state.vars, "-strip-symbols", "1");
continue;
case '?':
error(ERROR_USAGE|4, "%s", opt_info.arg);
continue;
error(ERROR_usage(2), "%s", opt_info.arg);
UNREACHABLE();
case ':':
error(2, "%s", opt_info.arg);
continue;
@@ -2163,7 +2189,10 @@ main(int argc, char** argv)
break;
}
if (error_info.errors)
error(ERROR_USAGE|4, "%s", optusage(NiL));
{
error(ERROR_usage(2), "%s", optusage(NiL));
UNREACHABLE();
}
argv += opt_info.index;
#else
while ((s = *++argv) && *s == '-')
@@ -2220,7 +2249,7 @@ main(int argc, char** argv)
continue;
case 'N':
state.never = 1;
/*FALLTHROUGH*/
/* FALLTHROUGH */
case 'n':
append(state.opt, " -n");
state.exec = 0;
@@ -2275,6 +2304,7 @@ main(int argc, char** argv)
break;
default:
report(2, "unknown option", s, (unsigned long)0);
/* FALLTHROUGH */
case '?':
usage();
break;

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
@@ -34,7 +35,9 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
[-?
@(#)$Id: mktest (AT&T Labs Research) 2010-08-11 $
]
'$USAGE_LICENSE$'
[-author?Glenn Fowler <gsf@research.att.com>]
[-copyright?Copyright (c) 2005-2012 AT&T Intellectual Property]
[-license?http://www.eclipse.org/org/documents/epl-v10.html]
[+NAME?mktest - generate a regression test scripts]
[+DESCRIPTION?\bmktest\b generates regression test scripts from test
template commands in the \aunit\a.\brt\b file. The generated test
@@ -81,7 +84,7 @@ unit.rt [ unit [ arg ... ] ]
[+PROG \acommand\a [ \aarg\a ... ]]?Run \acommand\a with
optional arguments.]
[+TEST [ \anumber\a ]] [ \adescription\a ... ]]?Define a new
test group with optional \anumber\a and \adescripion\a.]
test group with optional \anumber\a and \adescription\a.]
[+TWD [ \adir\a ... ]]?Set the temporary test dir to \adir\a.
The default is \aunit\a\b.tmp\b, where \aunit\a is the test
input file sans directory and suffix. If \adir\a matches \b/*\b

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,8 @@
:
# @(#)probe.win32 (AT&T Research) 2010-01-01
#
# win32 specific make C probe initialization
# wrapped cc's are easy on uwin
# Win32 specific make C probe initialization
# wrapped cc's are easy on UWIN
#
# 2> easy.err to avoid mysterious hang with bcc
@@ -37,9 +37,6 @@ done
for i in $probe_header
do echo "#include <$i>"
done
echo '#ifdef __cplusplus'
echo "int _Pr0b3_cplus=__cplusplus;"
echo '#endif'
echo '#ifdef _UWIN'
echo "int _Pr0b3_uwin=_UWIN;"
echo '#endif'
@@ -71,7 +68,6 @@ echo '#endif'
include=
uwin=
cplus=
$cc -E easy.c 2>&1 |
egrep -i '^(#(line)? 1 .*\.[hH]| *int +_Pr0b3_[a-zA-Z_]* *= *[0-9])' |
@@ -133,11 +129,6 @@ then : the payoff
set -- $(whence $cmd) "$@"
typ=$(package)
dialect="ANSI CLOSURE DYNAMIC EXPORT=DLL LIBPP -I-"
case ${cc##*/} in
*CC*) dialect="$dialect C++"
cplus=1
;;
esac
ld=${cc%cc}ld
if [[ ! -x $ld ]]
then ld=${cc%/*}/ld

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,35 @@
########################################################################
# #
# This file is part of the ksh 93u+m package #
# Copyright (c) 2021 Contributors to ksh 93u+m #
# <https://github.com/ksh93/ksh> #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# #
# A copy of the License is available at #
# http://www.eclipse.org/org/documents/epl-v10.html #
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
# #
# Martijn Dekker <martijn@inlv.org> #
# #
########################################################################
# proto(1) has been removed. This is a backwards compatibility stub that allows
# compiling older AST code (with Mamfiles containing proto commands) using the
# current INIT system. This stub ignores all options, then invokes 'cat'.
while getopts ':dfhinprstvzPSC:e:l:o:L:' opt
do case $opt in
\?) case $OPTARG in
+) ;;
*) echo "proto: $OPTARG: unknown option"
echo 'Usage: proto [-dfhinprstvzP+S] [-C directory] [-e package] [-l file]'
echo ' [-o "name='\''value'\'' ..."] [-L file] file ...'
exit 2
;;
esac >&2
;;
esac
done
shift $((OPTIND - 1))
exec cat -- "$@"

File diff suppressed because it is too large Load Diff

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2012 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
@@ -25,7 +26,9 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
[-?
@(#)$Id: regress (AT&T Research) 2012-02-02 $
]
'$USAGE_LICENSE$'
[-author?Glenn Fowler <gsf@research.att.com>]
[-copyright?Copyright (c) 1995-2012 AT&T Intellectual Property]
[-license?http://www.eclipse.org/org/documents/epl-v10.html]
[+NAME?regress - run regression tests]
[+DESCRIPTION?\bregress\b runs the tests in \aunit\a, or
\aunit\a\b.tst\b if \aunit\a does not exist. If \acommand\a is omitted
@@ -51,7 +54,7 @@ case $(getopts '[-][123:xyz]' opt --xyz 2>/dev/null; echo 0$opt) in
[r!:regular?Run each test with the standard input and standard output
redirected through regular files.]
[t:test?Run only tests matching \apattern\a. Tests are numbered and
consist of at least two digits (0 filled if necessary.) Tests matching
consist of at least two digits (0 filled if necessary). Tests matching
\b+(0)\b are always run.]:[pattern]
[x:trace?Enable debug tracing.]
[v:verbose?List differences between actual (<) and expected (>) output,
@@ -171,7 +174,7 @@ unit [ command [ arg ... ] ]
the next explicit \bSET\b.]
[+TALLY?Called by \bregress\b display the \bTEST\b results.]
[+TEST \b\anumber\a [ \adescription\a ... ]]?Define a new test
group labelled \anumber\a with optional \adescripion\a.]
group labelled \anumber\a with optional \adescription\a.]
[+TITLE \b[+]] \atext\a?Set the \bTEST\b output title to
\atext\a. If \b+\b is specified then \atext\a is appended to
the default title. The default title is the test file base

View File

@@ -1,367 +0,0 @@
/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1990-2011 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* http://www.eclipse.org/org/documents/epl-v10.html *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* *
***********************************************************************/
#pragma prototyped
#pragma clang diagnostic ignored "-Wparentheses"
/*
* release -- list recent release changes
*
* coded for portability
*/
static char id[] = "\n@(#)$Id: release (AT&T Research) 2000-01-28 $\0\n";
#if _PACKAGE_ast
#include <ast.h>
#include <error.h>
static const char usage[] =
"[-?\n@(#)$Id: release (AT&T Research) 2000-01-28 $\n]"
USAGE_LICENSE
"[+NAME?release - list recent changes]"
"[+DESCRIPTION?\brelease\b lists the changes within the date range specified"
" by the \b--from\b and \b--to\b options. The input files are assumed to"
" contain date tag lines of the form [\acc\a]]\ayy-mm-dd\a [ \atext\a ]]"
" (or \bdate\b(1) default format), where \acc\a is determined by a Y2K"
" window year of 69 (we can produce an example coding dated 1991 - this"
" can be patented?, how about 1+1=2?.) The date tag lines are followed by"
" \areadme\a text in reverse chronological order (newer entries at the"
" top of the file.) If no selection options are specified then all"
" changes are listed. If no \afile\a operands are specified then the"
" standard input is read.]"
"[+?The entries for each \afile\a are annotated with the file directory name.]"
"[f:from?Entries older than \adate\a are omitted.]:[date]"
"[r:release?List all changes that include the first \acount\a release marks."
" A release mark has a date tag followed by optional space and at least"
" three \b-\b characters. Changes from release mark \acount\a+1 are not"
" listed. If there are no release marks then the date range is used;"
" if there is at least one release mark then the date range is ignored"
" and at most \acount\a release marks will be listed.]#[count]"
"[t:to?Entries newer than \adate\a are omitted.]:[date]"
"[V?Print the program version and exit.]"
"\n"
"\n[ file ... ]\n"
"\n"
"[+SEE ALSO?\bpackage\b(1)]"
;
#else
#define elementsof(x) ((int)(sizeof(x)/sizeof(x[0])))
#define NiL ((char*)0)
#endif
#include <stdio.h>
#include <unistd.h>
#include <ctype.h>
#include <sys/types.h>
#if !_PACKAGE_ast && defined(__STDC__)
#include <stdlib.h>
#include <string.h>
#endif
static char mon[] = "janfebmaraprmayjunjulaugsepoctnovdec";
static char day[] = "sunmontuewedthufrisat";
#if !_PACKAGE_ast
static void
usage()
{
fprintf(stderr, "Usage: release [-V] [-h hi-date] [-l lo-date] [-r count] [ file ...]\n");
exit(2);
}
#endif
static unsigned long
number(register char* s, char** e)
{
unsigned long q = 0;
while (isspace(*s))
s++;
while (isdigit(*s))
q = q * 10 + *s++ - '0';
if (e)
*e = s;
return q;
}
unsigned long
string(register char* s, char* tab, int num, int siz, char** e)
{
register int i;
register int j;
char buf[16];
while (isspace(*s))
s++;
for (i = 0; i < siz; i++)
buf[i] = isupper(s[i]) ? tolower(s[i]) : s[i];
for (i = 0; i < num; i += siz)
for (j = 0; j < siz && buf[j] == tab[j+i]; j++)
if (j == (siz - 1))
{
*e = s + siz;
return i / siz + 1;
}
return 0;
}
static unsigned long
date(char* s, char** e)
{
char* t;
unsigned long y;
unsigned long m;
unsigned long d;
if (isdigit(*s))
{
y = number(s, &t);
if (*t != '-')
return 0;
switch (t - s)
{
case 2:
y += 1900;
if (y <= 1969)
y += 100;
break;
case 4:
if (y < 1969)
return 0;
break;
}
if (!(m = number(++t, &s)))
return 0;
if ((s - t) != 2 || *s != '-' || m < 1 || m > 12)
return 0;
if (!(d = number(++s, &t)))
return 0;
if ((t - s) != 2 || d < 1 || d > 31)
return 0;
}
else
{
if (string(s, day, elementsof(day), 3, &t))
s = t;
if (!(m = string(s, mon, elementsof(mon), 3, &t)))
return 0;
if (!(d = number(t, &s)))
return 0;
for (y = 1969; *s; s++)
if ((y = number(s, &t)) && (t - s) == 4)
{
if (y < 1969)
return 0;
break;
}
}
if (e)
{
while (isspace(*t))
t++;
*e = t;
}
return ((y - 1969) * 13 + m) * 32 + d;
}
int
main(int argc, char** argv)
{
register char* s;
register char* u;
register char* v;
char* p;
char* e;
int i;
unsigned long t;
unsigned long lo;
unsigned long hi;
int mk;
FILE* f;
char buf[1024];
mk = 0;
lo = hi = 0;
#if _PACKAGE_ast
error_info.id = "release";
for (;;)
{
switch (optget(argv, usage))
{
case 'f':
if (!(lo = date(opt_info.arg, &e)) || *e)
{
error(2, "%s: invalid from date [%s]", opt_info.arg, e);
return 1;
}
continue;
case 'r':
mk = opt_info.num + 1;
continue;
case 't':
if (!(hi = date(opt_info.arg, &e)) || *e)
{
error(2, "%s: invalid to date [%s]", opt_info.arg, e);
return 1;
}
continue;
case 'V':
sfprintf(sfstdout, "%s\n", id + 10);
return 0;
case '?':
error(ERROR_USAGE|4, "%s", opt_info.arg);
continue;
case ':':
error(2, "%s", opt_info.arg);
continue;
}
break;
}
if (error_info.errors)
error(ERROR_USAGE|4, "%s", optusage(NiL));
argv += opt_info.index;
#else
while ((s = *++argv) && *s == '-' && *(s + 1))
{
if (*(s + 1) == '-')
{
if (!*(s + 2))
{
argv++;
break;
}
usage();
break;
}
for (;;)
{
switch (i = *++s)
{
case 0:
break;
case 'f':
case 't':
if (!*(v = ++s) && !(v = *++argv))
{
s = "??";
continue;
}
if (!(t = date(v, &e)) || *e)
{
fprintf(stderr, "release: -%c%s: invalid date [%s]\n", i, s, e);
return 1;
}
switch (i)
{
case 'f':
lo = t;
break;
case 't':
hi = t;
break;
}
break;
case 'r':
if (!*(v = ++s) && !(v = *++argv))
{
s = "??";
continue;
}
mk = number(v, &e) + 1;
if (*e)
{
fprintf(stderr, "release: -%c%s: invalid count\n", i, s);
return 1;
}
break;
case 'V':
fprintf(stdout, "%s\n", id + 10);
return 0;
default:
fprintf(stderr, "release: -%c: unknown option\n", i);
/*FALLTHROUGH*/
case '?':
usage();
break;
}
break;
}
}
#endif
do
{
if (!(p = *argv++) || !*p || *p == '-' && !*(p + 1))
{
argv--;
p = "";
f = stdin;
}
else if (!(f = fopen(p, "r")))
{
fprintf(stderr, "release: %s: cannot read", p);
return 1;
}
while (s = fgets(buf, sizeof(buf), f))
{
if (t = date(s, &e))
{
if (mk && e[0] == '-' && e[1] == '-' && e[2] == '-' && !--mk)
break;
if (t < lo)
break;
if (hi && t > hi)
continue;
if (p)
{
if (*p)
{
for (u = v = p; *p; p++)
if (*p == '/')
{
v = u;
u = p + 1;
}
printf("\n:::::::: ");
while ((i = *v++) && i != '/')
fputc(i, stdout);
printf(" ::::::::\n\n");
}
p = 0;
}
}
if (!p)
fputs(s, stdout);
}
if (f == stdin)
break;
fclose(f);
} while (*argv);
return 0;
}

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
@@ -31,9 +32,11 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
[-?
@(#)$Id: rt (AT&T Research) 2010-07-27 $
]
'$USAGE_LICENSE$'
[-author?Glenn Fowler <gsf@research.att.com>]
[-copyright?Copyright (c) 2005-2012 AT&T Intellectual Property]
[-license?http://www.eclipse.org/org/documents/epl-v10.html]
[+NAME?rt - run "nmake test" and filter output]
[+DESCRIPTION?\brt\b runs \vnmake test\v and filters the regression
[+DESCRIPTION?\brt\b runs \bnmake test\b and filters the regression
test output to contain only test summary lines. If no \atest\a
operands are specified then \btest\b is assumed. If \b-\b is
specified then the \afile\a operands, or the standard input
@@ -42,7 +45,7 @@ case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
[f:failed?Only list failed test results.]
[h!:heading?Enable per-file heading when more than one \afile\a operand
follows \b-\b.]
[v:verbose?Run with \vREGRESSFLAGS=-v\v.]
[v:verbose?Run with \bREGRESSFLAGS=-v\b.]
[ test ... | - [ file ... ] ]

View File

@@ -2,6 +2,7 @@
# #
# This software is part of the ast package #
# Copyright (c) 1994-2011 AT&T Intellectual Property #
# Copyright (c) 2020-2021 Contributors to ksh 93u+m #
# and is licensed under the #
# Eclipse Public License, Version 1.0 #
# by AT&T Intellectual Property #
@@ -18,20 +19,14 @@
# #
########################################################################
# non-ksh stub for the nmake silent prefix
# @(#)silent (AT&T Research) 1992-08-11
(command set -o posix) 2>/dev/null && set -o posix
modern_export=`v=; export v=ok 2>/dev/null; echo "$v"`
# @(#)silent (ksh 93u+m) 2021-12-31
while :
do case $# in
0) exit 0 ;;
esac
case $1 in
*=*) case $modern_export in
ok) export "$1" ;;
*) `echo $1 | sed "s/\\([^=]*\\)=\\(.*\\)/eval \\1='\\2'; export \\1/"` ;;
esac
*=*) export "$1"
shift
;;
*) break

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *

View File

@@ -2,6 +2,7 @@
* *
* This software is part of the ast package *
* Copyright (c) 1994-2011 AT&T Intellectual Property *
* Copyright (c) 2020-2021 Contributors to ksh 93u+m *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *