build: for cross-compiles

This commit is contained in:
fatedier 2016-04-11 17:27:14 +08:00
parent fdd7436736
commit 6874688e07
3 changed files with 61 additions and 0 deletions

1
.gitignore vendored
View File

@ -25,6 +25,7 @@ _testmain.go
# Self # Self
bin/ bin/
packages/
# Cache # Cache
*.swp *.swp

15
Makefile.cross-compiles Normal file
View File

@ -0,0 +1,15 @@
export PATH := $(GOPATH)/bin:$(PATH)
export OLDGOPATH := $(GOPATH)
export GOPATH := $(shell pwd)/Godeps/_workspace:$(shell pwd):$(GOPATH)
export OS_TARGETS=linux windows
export ARCH_TARGETS=386 amd64
all: build
build: godep app
godep:
GOPATH=$(OLDGOPATH) go get github.com/mitchellh/gox
app:
gox -os "$(OS_TARGETS)" -arch="$(ARCH_TARGETS)" ./...

45
cross_compiles_package.sh Executable file
View File

@ -0,0 +1,45 @@
# compile for version
make
if [ $? -ne 0 ]; then
echo "make error"
exit 1
fi
frp_version=`./bin/frps --version`
echo "build version: $frp_version"
# cross_compiles
make -f ./Makefile.cross-compiles
rm -rf ./packages
mkdir ./packages
os_all='linux windows'
arch_all='386 amd64'
for os in $os_all; do
for arch in $arch_all; do
frp_dir_name="frp_${frp_version}_${os}_${arch}"
frp_path="./packages/frp_${frp_version}_${os}_${arch}"
mkdir ${frp_path}
if [ "x${os}" = x"windows" ]; then
mv ./frpc_${os}_${arch}.exe ${frp_path}/frpc.exe
mv ./frps_${os}_${arch}.exe ${frp_path}/frps.exe
else
mv ./frpc_${os}_${arch} ${frp_path}/frpc
mv ./frps_${os}_${arch} ${frp_path}/frps
fi
cp ./LICENSE ${frp_path}
cp ./conf/* ${frp_path}
# packages
cd ./packages
if [ "x${os}" = x"windows" ]; then
zip -rq ${frp_dir_name}.zip ${frp_dir_name}
else
tar -zcf ${frp_dir_name}.tar.gz ${frp_dir_name}
fi
cd ..
rm -rf ${frp_path}
done
done