NetBSD/tools/gcc/mknative.common
jmc 4d724bafe7 Take output and look for things of the form ./XXX.o and turn them into XXX.o
so generated objects vs listed objects in make line up and dependcies happen
correctly. Found because libiberty (on this binutils import) was leaving
all objects as ./object.o and make wasn't picking up correct depends on
config.h as a result.
2004-12-11 07:40:50 +00:00

69 lines
1.7 KiB
Plaintext

# $NetBSD: mknative.common,v 1.3 2004/12/11 07:40:50 jmc Exp $
#
# from: NetBSD: mknative,v 1.12 2003/03/05 06:17:17 mrg Exp
#
# shell-fragment common to all "mknative" scripts
bomb()
{
echo >&2 "ABORT: $*"
exit 1
}
# usage: getvars MAKEFILE VARNAME [VARNAME...]
#
getvars()
{
_mf="$1"; shift
$MAKE -f - _x_ <<EOF || bomb "getvars $_mf $* failed"
_x_:
.for var in $*
@echo G_\${var}=\${\${var}:Q} | sed -e 's,\([^\.]\)\./\([a-zA-Z0-9_-]*\.o\),\1\2,g' -e 's,$_VPATH,\$\${GNUHOSTDIST},g'
.endfor
.include "$_TMPDIR/$_mf"
EOF
}
# usage: write_c FILENAME
#
write_c()
{
echo '/* This file is automatically generated. DO NOT EDIT! */' >$_TOP/$1.tmp || \
bomb "cannot create $1"
grep '$''NetBSD' $0 | sed 's,[#$],,g;s,.*,/* Generated from: & */,' >>$_TOP/$1.tmp
echo '' >>$_TOP/$1.tmp
writefile $1
}
# usage: write_mk FILENAME
#
write_mk()
{
echo '# This file is automatically generated. DO NOT EDIT!' >$_TOP/$1.tmp || \
bomb "cannot create $1"
grep '$''NetBSD' $0 | sed 's,[#$],,g;s,.*,# Generated from: &,' >>$_TOP/$1.tmp
echo '#' >>$_TOP/$1.tmp
writefile $1
}
writefile()
{
sed -e 's,netbsd\(elf\)*1[0-9\.]*\(_\)*[A-Z]*,netbsd\1,' \
-e 's,^/\* #undef HAVE_MMAP \*/$,#define HAVE_MMAP 1,' \
>>$_TOP/$1.tmp
# Compare new file, sans "generated from" comments and RCS Id,
# to old file. If they match, don't change anything.
rm -f $_TMPDIR/.1 $_TMPDIR/.2
grep -v 'Generated from:' $_TOP/$1 >$_TMPDIR/.1 2>/dev/null
grep -v 'Generated from:' $_TOP/$1.tmp >$_TMPDIR/.2
# will not overwrite a file that has the same content
if cmp $_TMPDIR/.1 $_TMPDIR/.2 >/dev/null 2>&1; then
rm -f $_TOP/$1.tmp
else
echo >&2 "$1 changed"
mv -f $_TOP/$1.tmp $_TOP/$1
fi
}