#!/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.

# Generate builtin.c from $* (runtime.go and unsafe.go).
# Run this after changing runtime.go and unsafe.go
# or after changing the export metadata format in the compiler.
# Either way, you need to have a working compiler binary first.

set -e

eval $(go tool dist env)
if [ -z "$GOCHAR" ]; then
	echo 'missing $GOCHAR - go tool dist failed?' 1>&2
	exit 1
fi

GC=${GOCHAR}g
gcc -o mkbuiltin1 mkbuiltin1.c
rm -f _builtin.c
for i in runtime unsafe
do
	go tool $GC -A $i.go
	O=$GOCHAR ./mkbuiltin1 $i >>_builtin.c
done

# If _builtin.c has changed vs builtin.c,
# check in the new change.
cmp -s _builtin.c builtin.c || cp _builtin.c builtin.c
rm _builtin.c mkbuiltin1 unsafe.$GOCHAR runtime.$GOCHAR
