mknative.common revision 1.2
11.2Slukem# $NetBSD: mknative.common,v 1.2 2004/12/11 01:37:36 lukem 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.2Slukembomb() 81.2Slukem{ 91.2Slukem echo >&2 "ABORT: $*" 101.1Smrg exit 1 111.1Smrg} 121.1Smrg 131.1Smrg# usage: getvars MAKEFILE VARNAME [VARNAME...] 141.2Slukem# 151.2Slukemgetvars() 161.2Slukem{ 171.1Smrg _mf="$1"; shift 181.1Smrg $MAKE -f - _x_ <<EOF || bomb "getvars $_mf $* failed" 191.1Smrg_x_: 201.1Smrg.for var in $* 211.1Smrg @echo G_\${var}=\${\${var}:Q} | sed 's,$_VPATH,\$\${GNUHOSTDIST},g' 221.1Smrg.endfor 231.1Smrg.include "$_TMPDIR/$_mf" 241.1SmrgEOF 251.1Smrg} 261.1Smrg 271.1Smrg# usage: write_c FILENAME 281.2Slukem# 291.2Slukemwrite_c() 301.2Slukem{ 311.1Smrg echo '/* This file is automatically generated. DO NOT EDIT! */' >$_TOP/$1.tmp || \ 321.1Smrg bomb "cannot create $1" 331.1Smrg grep '$''NetBSD' $0 | sed 's,[#$],,g;s,.*,/* Generated from: & */,' >>$_TOP/$1.tmp 341.1Smrg echo '' >>$_TOP/$1.tmp 351.1Smrg writefile $1 361.1Smrg} 371.1Smrg 381.1Smrg# usage: write_mk FILENAME 391.2Slukem# 401.2Slukemwrite_mk() 411.2Slukem{ 421.1Smrg echo '# This file is automatically generated. DO NOT EDIT!' >$_TOP/$1.tmp || \ 431.1Smrg bomb "cannot create $1" 441.1Smrg grep '$''NetBSD' $0 | sed 's,[#$],,g;s,.*,# Generated from: &,' >>$_TOP/$1.tmp 451.1Smrg echo '#' >>$_TOP/$1.tmp 461.1Smrg writefile $1 471.1Smrg} 481.1Smrg 491.2Slukemwritefile() 501.2Slukem{ 511.1Smrg sed -e 's,netbsd\(elf\)*1[0-9\.]*\(_\)*[A-Z]*,netbsd\1,' \ 521.2Slukem -e 's,^/\* #undef HAVE_MMAP \*/$,#define HAVE_MMAP 1,' \ 531.2Slukem >>$_TOP/$1.tmp 541.1Smrg 551.2Slukem # Compare new file, sans "generated from" comments and RCS Id, 561.2Slukem # to old file. If they match, don't change anything. 571.1Smrg rm -f $_TMPDIR/.1 $_TMPDIR/.2 581.1Smrg grep -v 'Generated from:' $_TOP/$1 >$_TMPDIR/.1 2>/dev/null 591.1Smrg grep -v 'Generated from:' $_TOP/$1.tmp >$_TMPDIR/.2 601.1Smrg 611.2Slukem # will not overwrite a file that has the same content 621.1Smrg if cmp $_TMPDIR/.1 $_TMPDIR/.2 >/dev/null 2>&1; then 631.1Smrg rm -f $_TOP/$1.tmp 641.1Smrg else 651.1Smrg echo >&2 "$1 changed" 661.1Smrg mv -f $_TOP/$1.tmp $_TOP/$1 671.1Smrg fi 681.1Smrg} 69