c8a0e2f4c6
This commit finalizes support for cross compilation. The tools directory are all links to the actual tools and are built on the host system to build Minix. build.sh is the work horse that takes care of all environment settings. It's slightly adjusted for Minix. The /usr/src/Makefile has additional targets needed for cross compilation.
91 lines
2.4 KiB
Text
91 lines
2.4 KiB
Text
# $NetBSD: mknative.common,v 1.9 2007/02/05 18:26:01 apb 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
|
|
}
|
|
|
|
# Make sure we can run OK.
|
|
if [ -x "$MAKE" ]; then
|
|
:
|
|
else
|
|
bomb "MAKE not set"
|
|
fi
|
|
|
|
# usage: getvars MAKEFILE VARNAME [VARNAME...]
|
|
#
|
|
getvars()
|
|
{
|
|
_mf="$1"; shift
|
|
case "$MAKE" in
|
|
*gmake)
|
|
env MAKEFLAGS= $MAKE -f - -f "$_TMPDIR/$_mf" _x_ <<EOF || bomb "getvars $_mf $* failed"
|
|
define echo_var
|
|
@echo G_\${var}="\${\${var}}" | sed -e 's,\([^\.]\)\./\([a-zA-Z0-9_-]*\.o\),\1\2,g' -e 's,$_VPATH,\$\${GNUHOSTDIST},g' -e 's,$_GNU_DIST,\$\${GNUHOSTDIST},g'
|
|
|
|
endef
|
|
_x_:
|
|
\$(foreach var,$*,\$(echo_var))
|
|
EOF
|
|
;;
|
|
*)
|
|
$MAKE -B -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' -e 's,$_GNU_DIST,\$\${GNUHOSTDIST},g'
|
|
.endfor
|
|
.include "$_TMPDIR/$_mf"
|
|
EOF
|
|
;;
|
|
esac
|
|
}
|
|
|
|
# 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 '$NetBSD: mknative.common,v 1.9 2007/02/05 18:26:01 apb Exp $' | 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 '$NetBSD: mknative.common,v 1.9 2007/02/05 18:26:01 apb Exp $' | 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
|
|
}
|