new option -t (target shell filename)

This commit is contained in:
tg 2012-06-24 20:46:07 +00:00
parent 6f1078606e
commit 3ebfd6e563

View File

@ -1,5 +1,5 @@
#!/bin/sh #!/bin/sh
srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.571 2012/05/18 01:38:04 tg Exp $' srcversion='$MirOS: src/bin/mksh/Build.sh,v 1.572 2012/06/24 20:46:07 tg Exp $'
#- #-
# Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, # Copyright (c) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
# 2011, 2012 # 2011, 2012
@ -303,13 +303,6 @@ addsrcs() {
} }
if test -d mksh || test -d mksh.exe; then
echo "$me: Error: ./mksh is a directory!" >&2
exit 1
fi
rmf a.exe* a.out* conftest.c *core core.* lft mksh* no *.bc *.ll *.o \
Rebuild.sh signames.inc test.sh x vv.out
curdir=`pwd` srcdir=`dirname "$0" 2>/dev/null` check_categories= curdir=`pwd` srcdir=`dirname "$0" 2>/dev/null` check_categories=
test -n "$srcdir" || srcdir=. # in case dirname does not exist test -n "$srcdir" || srcdir=. # in case dirname does not exist
dstversion=`sed -n '/define MKSH_VERSION/s/^.*"\([^"]*\)".*$/\1/p' $srcdir/sh.h` dstversion=`sed -n '/define MKSH_VERSION/s/^.*"\([^"]*\)".*$/\1/p' $srcdir/sh.h`
@ -322,6 +315,7 @@ pm=0
cm=normal cm=normal
optflags=-std-compile-opts optflags=-std-compile-opts
last= last=
tfn=mksh
for i for i
do do
@ -338,6 +332,10 @@ do
optflags=$i optflags=$i
last= last=
;; ;;
t:*)
tfn=$i
last=
;;
:-c) :-c)
last=c last=c
;; ;;
@ -364,6 +362,9 @@ do
:-r) :-r)
r=1 r=1
;; ;;
:-t)
last=t
;;
:-v) :-v)
echo "Build.sh $srcversion" echo "Build.sh $srcversion"
echo "for mksh $dstversion" echo "for mksh $dstversion"
@ -384,6 +385,13 @@ if test -n "$last"; then
exit 1 exit 1
fi fi
if test -d $tfn || test -d $tfn.exe; then
echo "$me: Error: ./$tfn is a directory!" >&2
exit 1
fi
rmf a.exe* a.out* conftest.c *core core.* lft ${tfn}* no *.bc *.ll *.o \
Rebuild.sh signames.inc test.sh x vv.out
SRCS="lalloc.c edit.c eval.c exec.c expr.c funcs.c histrap.c" SRCS="lalloc.c edit.c eval.c exec.c expr.c funcs.c histrap.c"
SRCS="$SRCS jobs.c lex.c main.c misc.c shf.c syn.c tree.c var.c" SRCS="$SRCS jobs.c lex.c main.c misc.c shf.c syn.c tree.c var.c"
@ -1456,23 +1464,23 @@ else
#define EXTERN #define EXTERN
#define MKSH_INCLUDES_ONLY #define MKSH_INCLUDES_ONLY
#include "sh.h" #include "sh.h"
__RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.571 2012/05/18 01:38:04 tg Exp $"); __RCSID("$MirOS: src/bin/mksh/Build.sh,v 1.572 2012/06/24 20:46:07 tg Exp $");
int main(void) { printf("Hello, World!\n"); return (0); } int main(void) { printf("Hello, World!\n"); return (0); }
EOF EOF
case $cm in case $cm in
llvm) llvm)
v "$CC $CFLAGS $CPPFLAGS $NOWARN -emit-llvm -c conftest.c" || fv=0 v "$CC $CFLAGS $CPPFLAGS $NOWARN -emit-llvm -c conftest.c" || fv=0
rmf mksh.s rmf $tfn.s
test $fv = 0 || v "llvm-link -o - conftest.o | opt $optflags | llc -o mksh.s" || fv=0 test $fv = 0 || v "llvm-link -o - conftest.o | opt $optflags | llc -o $tfn.s" || fv=0
test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn mksh.s $LIBS $ccpr" test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn $tfn.s $LIBS $ccpr"
;; ;;
dragonegg) dragonegg)
v "$CC $CFLAGS $CPPFLAGS $NOWARN -S -flto conftest.c" || fv=0 v "$CC $CFLAGS $CPPFLAGS $NOWARN -S -flto conftest.c" || fv=0
test $fv = 0 || v "mv conftest.s conftest.ll" test $fv = 0 || v "mv conftest.s conftest.ll"
test $fv = 0 || v "llvm-as conftest.ll" || fv=0 test $fv = 0 || v "llvm-as conftest.ll" || fv=0
rmf mksh.s rmf $tfn.s
test $fv = 0 || v "llvm-link -o - conftest.bc | opt $optflags | llc -o mksh.s" || fv=0 test $fv = 0 || v "llvm-link -o - conftest.bc | opt $optflags | llc -o $tfn.s" || fv=0
test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn mksh.s $LIBS $ccpr" test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn $tfn.s $LIBS $ccpr"
;; ;;
combine) combine)
v "$CC $CFLAGS $CPPFLAGS $LDFLAGS -fwhole-program --combine $NOWARN -o $tcfn conftest.c $LIBS $ccpr" v "$CC $CFLAGS $CPPFLAGS $LDFLAGS -fwhole-program --combine $NOWARN -o $tcfn conftest.c $LIBS $ccpr"
@ -1929,8 +1937,8 @@ files=
objs= objs=
sp= sp=
case $tcfn in case $tcfn in
a.exe) mkshexe=mksh.exe ;; a.exe) mkshexe=$tfn.exe ;;
*) mkshexe=mksh ;; *) mkshexe=$tfn ;;
esac esac
case $curdir in case $curdir in
*\ *) mkshshebang="#!./$mkshexe" ;; *\ *) mkshshebang="#!./$mkshexe" ;;
@ -2038,9 +2046,9 @@ for file in $SRCS; do
done done
case $cm in case $cm in
dragonegg|llvm) dragonegg|llvm)
echo "rm -f mksh.s" >>Rebuild.sh echo "rm -f $tfn.s" >>Rebuild.sh
echo "llvm-link -o - $objs | opt $optflags | llc -o mksh.s" >>Rebuild.sh echo "llvm-link -o - $objs | opt $optflags | llc -o $tfn.s" >>Rebuild.sh
lobjs=mksh.s lobjs=$tfn.s
;; ;;
*) *)
lobjs=$objs lobjs=$objs
@ -2119,8 +2127,8 @@ else
fi fi
case $cm in case $cm in
dragonegg|llvm) dragonegg|llvm)
rmf mksh.s rmf $tfn.s
v "llvm-link -o - $objs | opt $optflags | llc -o mksh.s" v "llvm-link -o - $objs | opt $optflags | llc -o $tfn.s"
;; ;;
esac esac
tcfn=$mkshexe tcfn=$mkshexe
@ -2134,8 +2142,8 @@ test -f /usr/ucb/$i && i=/usr/ucb/$i
test 1 = $eq && e=: test 1 = $eq && e=:
$e $e
$e Installing the shell: $e Installing the shell:
$e "# $i -c -s -o root -g bin -m 555 mksh /bin/mksh" $e "# $i -c -s -o root -g bin -m 555 $tfn /bin/$tfn"
$e "# grep -x /bin/mksh /etc/shells >/dev/null || echo /bin/mksh >>/etc/shells" $e "# grep -x /bin/$tfn /etc/shells >/dev/null || echo /bin/$tfn >>/etc/shells"
$e "# $i -c -o root -g bin -m 444 dot.mkshrc /usr/share/doc/mksh/examples/" $e "# $i -c -o root -g bin -m 444 dot.mkshrc /usr/share/doc/mksh/examples/"
$e $e
$e Installing the manual: $e Installing the manual: