From 3ebfd6e56332e111cf7b05b4d16d964fcaf3d003 Mon Sep 17 00:00:00 2001 From: tg Date: Sun, 24 Jun 2012 20:46:07 +0000 Subject: [PATCH] new option -t (target shell filename) --- Build.sh | 56 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/Build.sh b/Build.sh index 8edb534..26f3eb2 100644 --- a/Build.sh +++ b/Build.sh @@ -1,5 +1,5 @@ #!/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, # 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= test -n "$srcdir" || srcdir=. # in case dirname does not exist dstversion=`sed -n '/define MKSH_VERSION/s/^.*"\([^"]*\)".*$/\1/p' $srcdir/sh.h` @@ -322,6 +315,7 @@ pm=0 cm=normal optflags=-std-compile-opts last= +tfn=mksh for i do @@ -338,6 +332,10 @@ do optflags=$i last= ;; + t:*) + tfn=$i + last= + ;; :-c) last=c ;; @@ -364,6 +362,9 @@ do :-r) r=1 ;; + :-t) + last=t + ;; :-v) echo "Build.sh $srcversion" echo "for mksh $dstversion" @@ -384,6 +385,13 @@ if test -n "$last"; then exit 1 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="$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 MKSH_INCLUDES_ONLY #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); } EOF case $cm in llvm) v "$CC $CFLAGS $CPPFLAGS $NOWARN -emit-llvm -c conftest.c" || fv=0 - rmf mksh.s - test $fv = 0 || v "llvm-link -o - conftest.o | opt $optflags | llc -o mksh.s" || fv=0 - test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn mksh.s $LIBS $ccpr" + rmf $tfn.s + 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 $tfn.s $LIBS $ccpr" ;; dragonegg) v "$CC $CFLAGS $CPPFLAGS $NOWARN -S -flto conftest.c" || fv=0 test $fv = 0 || v "mv conftest.s conftest.ll" test $fv = 0 || v "llvm-as conftest.ll" || fv=0 - rmf mksh.s - test $fv = 0 || v "llvm-link -o - conftest.bc | opt $optflags | llc -o mksh.s" || fv=0 - test $fv = 0 || v "$CC $CFLAGS $LDFLAGS -o $tcfn mksh.s $LIBS $ccpr" + rmf $tfn.s + 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 $tfn.s $LIBS $ccpr" ;; combine) v "$CC $CFLAGS $CPPFLAGS $LDFLAGS -fwhole-program --combine $NOWARN -o $tcfn conftest.c $LIBS $ccpr" @@ -1929,8 +1937,8 @@ files= objs= sp= case $tcfn in -a.exe) mkshexe=mksh.exe ;; -*) mkshexe=mksh ;; +a.exe) mkshexe=$tfn.exe ;; +*) mkshexe=$tfn ;; esac case $curdir in *\ *) mkshshebang="#!./$mkshexe" ;; @@ -2038,9 +2046,9 @@ for file in $SRCS; do done case $cm in dragonegg|llvm) - echo "rm -f mksh.s" >>Rebuild.sh - echo "llvm-link -o - $objs | opt $optflags | llc -o mksh.s" >>Rebuild.sh - lobjs=mksh.s + echo "rm -f $tfn.s" >>Rebuild.sh + echo "llvm-link -o - $objs | opt $optflags | llc -o $tfn.s" >>Rebuild.sh + lobjs=$tfn.s ;; *) lobjs=$objs @@ -2119,8 +2127,8 @@ else fi case $cm in dragonegg|llvm) - rmf mksh.s - v "llvm-link -o - $objs | opt $optflags | llc -o mksh.s" + rmf $tfn.s + v "llvm-link -o - $objs | opt $optflags | llc -o $tfn.s" ;; esac tcfn=$mkshexe @@ -2134,8 +2142,8 @@ test -f /usr/ucb/$i && i=/usr/ucb/$i test 1 = $eq && e=: $e $e Installing the shell: -$e "# $i -c -s -o root -g bin -m 555 mksh /bin/mksh" -$e "# grep -x /bin/mksh /etc/shells >/dev/null || echo /bin/mksh >>/etc/shells" +$e "# $i -c -s -o root -g bin -m 555 $tfn /bin/$tfn" +$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 $e Installing the manual: