#!/bin/sh
# Copyright 2009 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

set -e

GOBIN="${GOBIN:-$HOME/bin}"

. "$GOROOT"/src/Make.$GOARCH
if [ -z "$GC" ]; then
	echo 'missing $GC - maybe no Make.$GOARCH?' 1>&2
	exit 1
fi

gcc -o mkbuiltin1 mkbuiltin1.c
rm -f _builtin.c
for i in runtime unsafe
do
	"$GOBIN"/$GC -A $i.go
	O=$O ./mkbuiltin1 $i >>_builtin.c
done

# If _builtin.c has changed vs builtin.c.boot,
# check in the new change if being run by
# one of the people who tends to work on
# the compiler.  This makes sure that changes
# don't get forgotten, without causing problems
# in end user Go repositories.
case "$USER" in
ken | r | rsc)
	if ! cmp _builtin.c builtin.c.boot >/dev/null 2>/dev/null
	then
		PATH=$PATH:/usr/local/bin	# find p4 on OS X
		p4 open builtin.c.boot >/dev/null 2>/dev/null || true	# if p4 is missing, so be it
		cp _builtin.c builtin.c.boot
	fi
esac

mv _builtin.c builtin.c
