Commit 69fd2a4a authored by Russ Cox's avatar Russ Cox

build script tweaks

factor out environment variable checks.
infer $GOROOT etc during build if not set.
it's still necessary to set them for yourself
to use the standard Makefiles.

when running all.bash, don't recompile all the
go packages in run.bash, since make.bash already did.

R=r
CC=golang-dev
https://golang.org/cl/609042
parent b12007c4
...@@ -5,4 +5,4 @@ ...@@ -5,4 +5,4 @@
set -e set -e
bash make.bash bash make.bash
bash run.bash bash run.bash --no-rebuild
#!/usr/bin/env bash
# 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.
if test -z "$GOBIN"; then
if ! test -d "$HOME"/bin; then
echo '$GOBIN is not set and $HOME/bin is not a directory or does not exist.' 1>&2
echo 'mkdir $HOME/bin or set $GOBIN to a directory where binaries should' 1>&2
echo 'be installed.' 1>&2
exit 1
fi
GOBIN="$HOME/bin"
elif ! test -d "$GOBIN"; then
echo '$GOBIN is not a directory or does not exist' 1>&2
echo 'create it or set $GOBIN differently' 1>&2
exit 1
fi
GOROOT=${GOROOT:-$(cd ..; pwd)}
if ! test -f "$GOROOT"/include/u.h
then
echo '$GOROOT is not set correctly or not exported' 1>&2
exit 1
fi
# Double-check that we're in $GOROOT, for people with multiple Go trees.
# Various aspects of the build cd into $GOROOT-rooted paths,
# making it easy to jump to a different tree and get confused.
DIR1=$(cd ..; pwd)
DIR2=$(cd $GOROOT; pwd)
if [ "$DIR1" != "$DIR2" ]; then
echo 'Suspicious $GOROOT: does not match current directory.' 1>&2
exit 1
fi
GOARCH=${GOARCH:-$(uname -m | sed 's/^..86$/386/; s/^.86$/386/; s/x86_64/amd64/')}
case "$GOARCH" in
amd64 | 386 | arm)
;;
*)
echo '$GOARCH is set to <'$GOARCH'>, must be amd64, 386, or arm' 1>&2
exit 1
esac
GOOS=${GOOS:-$(uname | tr A-Z a-z)}
case "$GOOS" in
darwin | freebsd | linux | mingw | nacl)
;;
*)
echo '$GOOS is set to <'$GOOS'>, must be darwin, freebsd, linux, mingw, or nacl' 1>&2
exit 1
esac
export GOBIN GOROOT GOARCH GOOS
...@@ -4,48 +4,11 @@ ...@@ -4,48 +4,11 @@
# license that can be found in the LICENSE file. # license that can be found in the LICENSE file.
set -e set -e
. ./env.bash
if test -z "$GOBIN"; then
if ! test -d "$HOME"/bin; then
echo '$GOBIN is not set and $HOME/bin is not a directory or does not exist.' 1>&2
echo 'mkdir $HOME/bin or set $GOBIN to a directory where binaries should' 1>&2
echo 'be installed.' 1>&2
exit 1
fi
GOBIN="$HOME/bin"
elif ! test -d "$GOBIN"; then
echo '$GOBIN is not a directory or does not exist' 1>&2
echo 'create it or set $GOBIN differently' 1>&2
exit 1
fi
GOBIN="${GOBIN:-$HOME/bin}"
export MAKEFLAGS=-j4 export MAKEFLAGS=-j4
unset CDPATH # in case user has it set unset CDPATH # in case user has it set
if ! test -f "$GOROOT"/include/u.h
then
echo '$GOROOT is not set correctly or not exported' 1>&2
exit 1
fi
case "$GOARCH" in
amd64 | 386 | arm)
;;
*)
echo '$GOARCH is set to <'$GOARCH'>, must be amd64, 386, or arm' 1>&2
exit 1
esac
case "$GOOS" in
darwin | freebsd | linux | mingw | nacl)
;;
*)
echo '$GOOS is set to <'$GOOS'>, must be darwin, freebsd, linux, mingw, or nacl' 1>&2
exit 1
esac
rm -f "$GOBIN"/quietgcc rm -f "$GOBIN"/quietgcc
CC=${CC:-gcc} CC=${CC:-gcc}
sed -e "s|@CC@|$CC|" < "$GOROOT"/src/quietgcc.bash > "$GOBIN"/quietgcc sed -e "s|@CC@|$CC|" < "$GOROOT"/src/quietgcc.bash > "$GOBIN"/quietgcc
......
...@@ -4,12 +4,21 @@ ...@@ -4,12 +4,21 @@
# license that can be found in the LICENSE file. # license that can be found in the LICENSE file.
set -e set -e
. ./env.bash
GOBIN="${GOBIN:-$HOME/bin}" export MAKEFLAGS=-j4
unset CDPATH # in case user has it set
# no core files, please # no core files, please
ulimit -c 0 ulimit -c 0
# allow make.bash to avoid double-build of everything
rebuild=true
if [ "$1" = "--no-rebuild" ]; then
rebuild=false
shift
fi
xcd() { xcd() {
echo echo
echo --- cd $1 echo --- cd $1
...@@ -21,9 +30,11 @@ maketest() { ...@@ -21,9 +30,11 @@ maketest() {
do do
( (
xcd $i xcd $i
"$GOBIN"/gomake clean if $rebuild; then
time "$GOBIN"/gomake "$GOBIN"/gomake clean
"$GOBIN"/gomake install time "$GOBIN"/gomake
"$GOBIN"/gomake install
fi
"$GOBIN"/gomake test "$GOBIN"/gomake test
) || exit $? ) || exit $?
done done
...@@ -36,20 +47,26 @@ maketest \ ...@@ -36,20 +47,26 @@ maketest \
# from what maketest does. # from what maketest does.
(xcd pkg/sync; (xcd pkg/sync;
"$GOBIN"/gomake clean; if $rebuild; then
time "$GOBIN"/gomake "$GOBIN"/gomake clean;
time "$GOBIN"/gomake
fi
GOMAXPROCS=10 "$GOBIN"/gomake test GOMAXPROCS=10 "$GOBIN"/gomake test
) || exit $? ) || exit $?
(xcd cmd/gofmt (xcd cmd/gofmt
"$GOBIN"/gomake clean if $rebuild; then
time "$GOBIN"/gomake "$GOBIN"/gomake clean;
time "$GOBIN"/gomake
fi
time "$GOBIN"/gomake smoketest time "$GOBIN"/gomake smoketest
) || exit $? ) || exit $?
(xcd cmd/ebnflint (xcd cmd/ebnflint
"$GOBIN"/gomake clean if $rebuild; then
time "$GOBIN"/gomake "$GOBIN"/gomake clean;
time "$GOBIN"/gomake
fi
time "$GOBIN"/gomake test time "$GOBIN"/gomake test
) || exit $? ) || exit $?
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment