mknative.common revision 1.1
11.1Smrg# $NetBSD: mknative.common,v 1.1 2003/11/27 00:58:26 mrg Exp $ 21.1Smrg# 31.1Smrg# from: NetBSD: mknative,v 1.12 2003/03/05 06:17:17 mrg Exp 41.1Smrg# 51.1Smrg# shell-fragment common to all "mknative" scripts 61.1Smrg 71.1Smrgbomb () { 81.1Smrg echo >&1 "ABORT: $*" 91.1Smrg exit 1 101.1Smrg} 111.1Smrg 121.1Smrg# usage: getvars MAKEFILE VARNAME [VARNAME...] 131.1Smrggetvars () { 141.1Smrg _mf="$1"; shift 151.1Smrg $MAKE -f - _x_ <<EOF || bomb "getvars $_mf $* failed" 161.1Smrg_x_: 171.1Smrg.for var in $* 181.1Smrg @echo G_\${var}=\${\${var}:Q} | sed 's,$_VPATH,\$\${GNUHOSTDIST},g' 191.1Smrg.endfor 201.1Smrg.include "$_TMPDIR/$_mf" 211.1SmrgEOF 221.1Smrg} 231.1Smrg 241.1Smrg# usage: write_c FILENAME 251.1Smrgwrite_c () { 261.1Smrg echo '/* This file is automatically generated. DO NOT EDIT! */' >$_TOP/$1.tmp || \ 271.1Smrg bomb "cannot create $1" 281.1Smrg grep '$''NetBSD' $0 | sed 's,[#$],,g;s,.*,/* Generated from: & */,' >>$_TOP/$1.tmp 291.1Smrg echo '' >>$_TOP/$1.tmp 301.1Smrg writefile $1 311.1Smrg} 321.1Smrg 331.1Smrg# usage: write_mk FILENAME 341.1Smrgwrite_mk () { 351.1Smrg echo '# This file is automatically generated. DO NOT EDIT!' >$_TOP/$1.tmp || \ 361.1Smrg bomb "cannot create $1" 371.1Smrg grep '$''NetBSD' $0 | sed 's,[#$],,g;s,.*,# Generated from: &,' >>$_TOP/$1.tmp 381.1Smrg echo '#' >>$_TOP/$1.tmp 391.1Smrg writefile $1 401.1Smrg} 411.1Smrg 421.1Smrgwritefile () { 431.1Smrg sed -e 's,netbsd\(elf\)*1[0-9\.]*\(_\)*[A-Z]*,netbsd\1,' \ 441.1Smrg -e 's,^/\* #undef HAVE_MMAP \*/$,#define HAVE_MMAP 1,' >>$_TOP/$1.tmp 451.1Smrg 461.1Smrg # Compare new file, sans "generated from" comments and RCS Id, to 471.1Smrg # old file. If they match, don't change anything. 481.1Smrg rm -f $_TMPDIR/.1 $_TMPDIR/.2 491.1Smrg grep -v 'Generated from:' $_TOP/$1 >$_TMPDIR/.1 2>/dev/null 501.1Smrg grep -v 'Generated from:' $_TOP/$1.tmp >$_TMPDIR/.2 511.1Smrg 521.1Smrg # will not overwrite a file that has the same content 531.1Smrg if cmp $_TMPDIR/.1 $_TMPDIR/.2 >/dev/null 2>&1; then 541.1Smrg rm -f $_TOP/$1.tmp 551.1Smrg else 561.1Smrg echo >&2 "$1 changed" 571.1Smrg mv -f $_TOP/$1.tmp $_TOP/$1 581.1Smrg fi 591.1Smrg} 60