svn commit: r235927 - head/bin/sh
Marcel Moolenaar
marcel at FreeBSD.org
Thu May 24 19:48:16 UTC 2012
Author: marcel
Date: Thu May 24 19:48:15 2012
New Revision: 235927
URL: http://svn.freebsd.org/changeset/base/235927
Log:
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.
Modified:
head/bin/sh/Makefile
head/bin/sh/mkbuiltins
Modified: head/bin/sh/Makefile
==============================================================================
--- head/bin/sh/Makefile Thu May 24 19:24:31 2012 (r235926)
+++ head/bin/sh/Makefile Thu May 24 19:48:15 2012 (r235927)
@@ -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
Modified: head/bin/sh/mkbuiltins
==============================================================================
--- head/bin/sh/mkbuiltins Thu May 24 19:24:31 2012 (r235926)
+++ head/bin/sh/mkbuiltins Thu May 24 19:48:15 2012 (r235927)
@@ -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.
More information about the svn-src-head
mailing list