mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-15 04:32:24 +00:00
EPL 1.0 says, in section 7: "The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version." The Eclipse Foundation also encourage everyone to upgrade: https://www.eclipse.org/legal/epl-2.0/faq.php#h.60mjudroo8e5 https://www.eclipse.org/legal/epl-2.0/faq.php#h.tci84nlsqpgw Unfortunately the new Secondary License option is not available to us as we're not the original copyright holders and don't have the legal power to add one. So, no GPL compatibility. Sorry.
269 lines
6.2 KiB
Text
Executable file
269 lines
6.2 KiB
Text
Executable file
########################################################################
|
|
# #
|
|
# This software is part of the ast package #
|
|
# Copyright (c) 1994-2011 AT&T Intellectual Property #
|
|
# Copyright (c) 2020-2022 Contributors to ksh 93u+m #
|
|
# and is licensed under the #
|
|
# Eclipse Public License, Version 2.0 #
|
|
# #
|
|
# A copy of the License is available at #
|
|
# https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html #
|
|
# (with md5 checksum 84283fa8859daf213bdda5a9f8d1be1d) #
|
|
# #
|
|
# Glenn Fowler <gsf@research.att.com> #
|
|
# #
|
|
########################################################################
|
|
### this script contains archaic constructs that work with all sh variants ###
|
|
# mamprobe - generate MAM cc probe info
|
|
# Glenn Fowler <gsf@research.att.com>
|
|
|
|
(command set -o posix) 2>/dev/null && set -o posix
|
|
|
|
command=mamprobe
|
|
|
|
bins=`
|
|
(
|
|
userPATH=$PATH
|
|
PATH=/run/current-system/sw/bin:/usr/xpg7/bin:/usr/xpg6/bin:/usr/xpg4/bin:/bin:/usr/bin:$PATH
|
|
getconf PATH 2>/dev/null && echo "$userPATH" || echo /bin:/usr/bin:/sbin:/usr/sbin:"$userPATH"
|
|
) | sed 's/:/ /g'
|
|
` || exit
|
|
|
|
# check the options
|
|
|
|
opt=
|
|
|
|
case `(getopts '[-][123:xyz]' opt --xyz; echo 0$opt) 2>/dev/null` in
|
|
0123) USAGE=$'
|
|
[-?
|
|
@(#)$Id: mamprobe (AT&T Labs Research) 2011-02-11 $
|
|
]
|
|
[+NAME?mamprobe - generate MAM cc probe info]
|
|
[+DESCRIPTION?\bmamprobe\b generates MAM (make abstract machine) \bcc\b(1)
|
|
probe information for use by \bmamake\b(1). \acc-path\a is the
|
|
absolute path of the probed compiler and \ainfo-file\a is where
|
|
the information is placed. \ainfo-file\a is usually
|
|
\b$INSTALLROOT/lib/probe/C/mam/\b\ahash\a, where \ahash\a is a hash
|
|
of \acc-path\a. Any \ainfo-file\a directories are created if needed.
|
|
If \ainfo-file\a is \b-\b then the probe information is written to
|
|
the standard output.]
|
|
[+?\bmamprobe\b and \bmamake\b are used in the bootstrap phase of
|
|
\bpackage\b(1) installation before \bnmake\b(1) is built. The
|
|
probed variable names are the \bnmake\b(1) names with a \bmam_\b
|
|
prefix, \bCC\b converted to \bcc\b, and \b.\b converted to \b_\b.
|
|
Additional variables are:]{
|
|
[+_hosttype_?the \bpackage\b(1) host type]
|
|
[+mam_cc_L?\b-L\b\adir\a supported]
|
|
[+STDCAT?command to execute for \bcat\b(1); prefixed by
|
|
\bexecrate\b(1) on \b.exe\b challenged systems]
|
|
[+STDCHMOD?command to execute for \bchmod\b(1); prefixed by
|
|
\bexecrate\b(1) on \b.exe\b challenged systems]
|
|
[+STDCMP?command to execute for \bcmp\b(1); prefixed by
|
|
\bexecrate\b(1) on \b.exe\b challenged systems]
|
|
[+STDCP?command to execute for \bcp\b(1); prefixed by
|
|
\bexecrate\b(1) on \b.exe\b challenged systems]
|
|
[+STDED?command to execute for \bed\b(1) or \bex\b(1)]
|
|
[+STDEDFLAGS?flags for \bSTDED\b]
|
|
[+STDLN?command to execute for \bln\b(1); prefixed by
|
|
\bexecrate\b(1) on \b.exe\b challenged systems]
|
|
[+STDMV?command to execute for \bmv\b(1); prefixed by
|
|
\bexecrate\b(1) on \b.exe\b challenged systems]
|
|
[+STDRM?command to execute for \brm\b(1); prefixed by
|
|
\bexecrate\b(1) on \b.exe\b challenged systems]
|
|
}
|
|
[d:debug?Enable probe script debug trace.]
|
|
|
|
info-file cc-path
|
|
|
|
[+SEE ALSO?\bexecrate\b(1), \bpackage\b(1), \bmamake\b(1), \bnmake\b(1),
|
|
\bprobe\b(1)]
|
|
'
|
|
while getopts -a "$command" "$USAGE" OPT
|
|
do case $OPT in
|
|
d) opt=-d ;;
|
|
esac
|
|
done
|
|
shift `expr $OPTIND - 1`
|
|
;;
|
|
*) while :
|
|
do case $# in
|
|
0) break ;;
|
|
esac
|
|
case $1 in
|
|
--) shift
|
|
break
|
|
;;
|
|
-) break
|
|
;;
|
|
-d) opt=-d
|
|
;;
|
|
-*) echo $command: $1: unknown option >&2
|
|
;;
|
|
*) break
|
|
;;
|
|
esac
|
|
set ''
|
|
break
|
|
done
|
|
;;
|
|
esac
|
|
|
|
# check the args
|
|
|
|
case $1 in
|
|
-) ;;
|
|
/*) ;;
|
|
*) set '' ;;
|
|
esac
|
|
case $2 in
|
|
/*) ;;
|
|
*) set '' ;;
|
|
esac
|
|
case $# in
|
|
0|1) echo "Usage: $command info-file cc-path" >&2; exit 2 ;;
|
|
esac
|
|
info=$1
|
|
shift
|
|
cc=$*
|
|
|
|
# find the make probe script
|
|
|
|
ifs=${IFS-'
|
|
'}
|
|
IFS=:
|
|
set $PATH
|
|
IFS=$ifs
|
|
script=lib/probe/C/make/probe
|
|
while :
|
|
do case $# in
|
|
0) echo "$0: ../$script: probe script not found on PATH" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
case $1 in
|
|
'') continue ;;
|
|
esac
|
|
makeprobe=`echo $1 | sed 's,[^/]*$,'$script,`
|
|
if test -x $makeprobe
|
|
then break
|
|
fi
|
|
shift
|
|
done
|
|
|
|
# create the info dir if necessary
|
|
|
|
case $info in
|
|
/*) i=X$info
|
|
ifs=${IFS-'
|
|
'}
|
|
IFS=/
|
|
set $i
|
|
IFS=$ifs
|
|
while :
|
|
do i=$1
|
|
shift
|
|
case $i in
|
|
X) break ;;
|
|
esac
|
|
done
|
|
case $info in
|
|
//*) path=/ ;;
|
|
*) path= ;;
|
|
esac
|
|
while :
|
|
do case $# in
|
|
0|1) break ;;
|
|
esac
|
|
comp=$1
|
|
shift
|
|
case $comp in
|
|
'') continue ;;
|
|
esac
|
|
path=$path/$comp
|
|
if test ! -d $path
|
|
then mkdir $path || exit
|
|
fi
|
|
done
|
|
;;
|
|
esac
|
|
|
|
# generate info in a tmp file and rename when finished
|
|
|
|
case $info in
|
|
-) ;;
|
|
*) tmp=${TMPDIR:-/tmp}/mam$$
|
|
trap "exec >/dev/null; rm -f $tmp" 0 1 2 3 15
|
|
exec > $tmp
|
|
echo "probing C language processor $cc for mam information" >&2
|
|
;;
|
|
esac
|
|
|
|
echo "note generated by $0 for $cc"
|
|
|
|
(
|
|
set '' $opt $cc
|
|
shift
|
|
. $makeprobe "$@"
|
|
|
|
case " $CC_DIALECT " in
|
|
*" -L "*) echo "CC.L = 1" ;;
|
|
esac
|
|
|
|
) | sed \
|
|
-e '/^CC\./!d' \
|
|
-e 's/^CC./setv mam_cc_/' \
|
|
-e 's/^\([^=.]*\)\./\1_/' \
|
|
-e 's/^\([^=.]*\)\./\1_/' \
|
|
-e 's/ =//' \
|
|
-e 's/\$("\([^"]*\)")/\1/g' \
|
|
-e 's/\$(\([^)]*\))/${\1}/g' \
|
|
-e 's/\${CC\./${mam_cc_}/g'
|
|
|
|
echo 'setv _hosttype_ ${mam_cc_HOSTTYPE}'
|
|
|
|
# STD* are standard commands/flags with possible execrate(1)
|
|
|
|
if (
|
|
ed <<!
|
|
q
|
|
!
|
|
) < /dev/null > /dev/null 2>&1
|
|
then STDED=ed
|
|
else STDED=ex
|
|
fi
|
|
STDEDFLAGS=-
|
|
set STDCAT cat STDCHMOD chmod STDCMP cmp STDCP cp STDLN ln STDMV mv STDRM rm
|
|
while :
|
|
do case $# in
|
|
0|1) break ;;
|
|
esac
|
|
p=$2
|
|
for d in $bins
|
|
do if test -x $d/$p
|
|
then p=$d/$p
|
|
break
|
|
fi
|
|
done
|
|
eval $1=\$p
|
|
shift
|
|
shift
|
|
done
|
|
if execrate
|
|
then for n in STDCAT STDCHMOD STDCMP STDCP STDLN STDMV STDRM
|
|
do eval $n=\"execrate \$$n\"
|
|
done
|
|
fi
|
|
for n in STDCAT STDCHMOD STDCMP STDCP STDED STDEDFLAGS STDLN STDMV STDRM
|
|
do eval echo setv \$n \$$n
|
|
done
|
|
|
|
# all done
|
|
|
|
case $info in
|
|
-) ;;
|
|
*) exec >/dev/null
|
|
test -f "$info" && rm -f "$info"
|
|
cp "$tmp" "$info"
|
|
chmod -w "$info"
|
|
;;
|
|
esac
|