summaryrefslogtreecommitdiffstats
path: root/bin/sh
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2012-05-24 19:48:15 +0000
committermarcel <marcel@FreeBSD.org>2012-05-24 19:48:15 +0000
commite7223eeffb7133dbe8bf93d42f351391f821b133 (patch)
tree25f4112c4c46486072cad10f2ffd6add1d6d9fb2 /bin/sh
parent83c05d9d51d3ea56018ec2d5e73f61de2a6f8348 (diff)
downloadFreeBSD-src-e7223eeffb7133dbe8bf93d42f351391f821b133.zip
FreeBSD-src-e7223eeffb7133dbe8bf93d42f351391f821b133.tar.gz
Work better with how make/bmake works:
1. Avoid a cd back into ${.CURDIR} to run mkbuiltins when we know make will first cd into ${.OBJDIR}. Keep the cwd to what make sets it to. 2. Don't tell mkbuiltins where to write to (= ${.OBJDIR}), but where to get sources from (= ${.CURDIR}). This to compensate for point 1. This fixes a problem with bmake's mk files that optimize ${.OBJDIR} to expand to "." after changing cwd, not taking into account that the target is pretty much undoing that and not getting the full path to the object tree anymore.
Diffstat (limited to 'bin/sh')
-rw-r--r--bin/sh/Makefile2
-rwxr-xr-xbin/sh/mkbuiltins16
2 files changed, 9 insertions, 9 deletions
diff --git a/bin/sh/Makefile b/bin/sh/Makefile
index afca8a3..cc04aa4 100644
--- a/bin/sh/Makefile
+++ b/bin/sh/Makefile
@@ -38,7 +38,7 @@ build-tools: mkinit mknodes mksyntax
.ORDER: builtins.c builtins.h
builtins.c builtins.h: mkbuiltins builtins.def
- cd ${.CURDIR}; sh mkbuiltins ${.OBJDIR}
+ sh ${.CURDIR}/mkbuiltins ${.CURDIR}
init.c: mkinit alias.c eval.c exec.c input.c jobs.c options.c parser.c \
redir.c trap.c var.c
diff --git a/bin/sh/mkbuiltins b/bin/sh/mkbuiltins
index 49af058..1be7ff1 100755
--- a/bin/sh/mkbuiltins
+++ b/bin/sh/mkbuiltins
@@ -35,17 +35,17 @@
# $FreeBSD$
temp=`/usr/bin/mktemp -t ka`
-havejobs=0
-if grep '^#define[ ]*JOBS[ ]*1' shell.h > /dev/null
-then havejobs=1
-fi
havehist=1
if [ "X$1" = "X-h" ]; then
havehist=0
shift
fi
-objdir=$1
-exec > ${objdir}/builtins.c
+srcdir=$1
+havejobs=0
+if grep '^#define[ ]*JOBS[ ]*1' $srcdir/shell.h > /dev/null
+then havejobs=1
+fi
+exec > builtins.c
cat <<\!
/*
* This file was generated by the mkbuiltins program.
@@ -57,7 +57,7 @@ cat <<\!
!
awk '/^[^#]/ {if(('$havejobs' || $2 != "-j") && ('$havehist' || $2 != "-h")) \
- print $0}' builtins.def | sed 's/-[hj]//' > $temp
+ print $0}' $srcdir/builtins.def | sed 's/-[hj]//' > $temp
echo 'int (*const builtinfunc[])(int, char **) = {'
awk '/^[^#]/ { printf "\t%s,\n", $1}' $temp
echo '};
@@ -74,7 +74,7 @@ awk '{ for (i = 2 ; i <= NF ; i++) {
echo ' { NULL, 0, 0 }
};'
-exec > ${objdir}/builtins.h
+exec > builtins.h
cat <<\!
/*
* This file was generated by the mkbuiltins program.
OpenPOWER on IntegriCloud