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.
This commit is contained in:
parent
648466fc8d
commit
937b0a997b
@ -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
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user