diff options
author | marcel <marcel@FreeBSD.org> | 2012-05-24 19:48:15 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2012-05-24 19:48:15 +0000 |
commit | e7223eeffb7133dbe8bf93d42f351391f821b133 (patch) | |
tree | 25f4112c4c46486072cad10f2ffd6add1d6d9fb2 /bin/sh | |
parent | 83c05d9d51d3ea56018ec2d5e73f61de2a6f8348 (diff) | |
download | FreeBSD-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/Makefile | 2 | ||||
-rwxr-xr-x | bin/sh/mkbuiltins | 16 |
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. |