Browse Source

build: for cross-compiles

fatedier 9 years ago
parent
commit
6874688e07
3 changed files with 61 additions and 0 deletions
  1. 1 0
      .gitignore
  2. 15 0
      Makefile.cross-compiles
  3. 45 0
      cross_compiles_package.sh

+ 1 - 0
.gitignore

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

+ 15 - 0
Makefile.cross-compiles

@@ -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 - 0
cross_compiles_package.sh

@@ -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