Merge pull request #748 from fjl/build-script-unix

Makefile: for non-gophers
This commit is contained in:
Jeffrey Wilcke 2015-04-19 17:58:42 +02:00
commit e6d36fe356
3 changed files with 55 additions and 0 deletions

5
.gitignore vendored

@ -27,3 +27,8 @@ mist
cmd/mist/mist
deploy/osx/Mist.app
deploy/osx/Mist\ Installer.dmg
# used by the Makefile
/build/_workspace/
/build/bin/

22
Makefile Normal file

@ -0,0 +1,22 @@
# This Makefile is meant to be used by people that do not usually work
# with Go source code. If you know what GOPATH is then you probably
# don't need to bother with make.
#
# Note that there is no way to run the tests or do anything other than
# building the binaries. This is by design.
.PHONY: geth mist clean
GOBIN = build/bin
geth:
build/env.sh go install -v github.com/ethereum/go-ethereum/cmd/geth
@echo "Done building."
@echo "Run \"$(GOBIN)/geth\" to launch geth."
mist:
build/env.sh go install -v github.com/ethereum/go-ethereum/cmd/mist
@echo "Done building."
@echo "Run \"$(GOBIN)/mist --asset_path=cmd/mist/assets\" to launch mist."
clean:
rm -fr build/_workspace/pkg/ $(GOBIN)/*

28
build/env.sh Executable file

@ -0,0 +1,28 @@
#!/bin/sh
set -e
if [ ! -f "build/env.sh" ]; then
echo "$0 must be run from the root of the repository."
exit 2
fi
# Create fake Go workspace if it doesn't exist yet.
workspace="$PWD/build/_workspace"
root="$PWD"
ethdir="$workspace/src/github.com/ethereum"
if [ ! -L "$ethdir/go-ethereum" ]; then
mkdir -p "$ethdir"
cd "$ethdir"
ln -s ../../../../../. go-ethereum
cd "$root"
fi
# Set up the environment to use the workspace.
# Also add Godeps workspace so we build using canned dependencies.
GOPATH="$ethdir/go-ethereum/Godeps/_workspace:$workspace"
GOBIN="$PWD/build/bin"
export GOPATH GOBIN
# Launch the arguments with the configured environment.
exec $@