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