提交 8aba1933 编写于 作者: Z zhaoke

* Add linux os makefile.

上级 440ca978
VERSION=3.0.0
PROJECT=ztf
QINIU_DIR=/Users/aaron/work/zentao/qiniu/
ifeq ($(OS),Windows_NT)
PLATFORM="Windows"
else
ifeq ($(shell uname),Darwin)
PLATFORM="Mac"
else
PLATFORM="Unix"
endif
endif
ifeq ($(PLATFORM),"Mac")
QINIU_DIR=/Users/aaron/work/zentao/qiniu/
else
QINIU_DIR=~/ztfZip
endif
QINIU_DIST_DIR=${QINIU_DIR}${PROJECT}/${VERSION}/
SERVER_MAIN_FILE=cmd/server/main.go
......@@ -28,7 +43,11 @@ prepare: update_version prepare_res
update_version: update_version_in_config gen_version_file
update_version_in_config:
@gsed -i "s/Version.*/Version = ${VERSION}/" conf/ztf.conf
ifeq ($(PLATFORM),"Mac")
@gsed -i "s/Version.*/Version = ${VERSION}/" conf/ztf.conf
else
@sed -i "s/Version.*/Version = ${VERSION}/" conf/ztf.conf
endif
gen_version_file:
@echo 'gen version'
......@@ -72,9 +91,15 @@ build_gui_linux: compile_gui_linux package_gui_linux_client
compile_gui_linux:
@echo 'start compile linux'
@rm -rf ./${CLIENT_BIN_DIR}/*
ifeq ($(PLATFORM),"Mac")
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC=/usr/local/gcc-4.8.1-for-linux64/bin/x86_64-pc-linux-gcc CXX=/usr/local/gcc-4.8.1-for-linux64/bin/x86_64-pc-linux-g++ \
${BUILD_CMD} \
-o ${CLIENT_BIN_DIR}linux/${PROJECT} ${SERVER_MAIN_FILE}
else
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC=gcc CXX=g++ \
${BUILD_CMD} \
-o ${CLIENT_BIN_DIR}linux/${PROJECT} ${SERVER_MAIN_FILE}
endif
package_gui_linux_client:
@cd client && npm run package-linux && cd ..
@rm -rf ${CLIENT_OUT_DIR}linux && mkdir ${CLIENT_OUT_DIR}linux && \
......@@ -95,6 +120,7 @@ package_gui_mac_client:
# command line
compile_command_win64:
@echo ${QINIU_DIR}
@echo 'start compile win64'
@cd ${COMMAND_MAIN_DIR} && \
CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 \
......@@ -112,9 +138,15 @@ compile_command_win32:
compile_command_linux:
@echo 'start compile linux'
ifeq ($(PLATFORM),"Mac")
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC=/usr/local/gcc-4.8.1-for-linux64/bin/x86_64-pc-linux-gcc CXX=/usr/local/gcc-4.8.1-for-linux64/bin/x86_64-pc-linux-g++ \
${BUILD_CMD} \
-o ${COMMAND_BIN_DIR}linux/${PROJECT} ${COMMAND_MAIN_FILE}
else
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 CC=gcc CXX=g++ \
${BUILD_CMD} \
-o ${COMMAND_BIN_DIR}linux/${PROJECT} ${COMMAND_MAIN_FILE}
endif
compile_command_mac:
@echo 'start compile darwin'
......
VERSION=3.0.0
PROJECT=ztf
QINIU_DIR=~/ztf-zip
QINIU_DIST_DIR=${QINIU_DIR}${PROJECT}/${VERSION}/
SERVER_MAIN_FILE=cmd/server/main.go
COMMAND_MAIN_FILE=cmd/command/main.go
COMMAND_BIN_DIR=bin/
CLIENT_BIN_DIR=client/bin/
CLIENT_OUT_DIR=client/out/
BUILD_TIME=`git show -s --format=%cd`
GO_VERSION=`go version`
GIT_HASH=`git show -s --format=%H`
BUILD_CMD=go build -ldflags "-X 'commConsts.appVersion=${VERSION}' -X 'commConsts.buildTime=${BUILD_TIME}' -X 'commConsts.goVersion=${GO_VERSION}' -X 'commConsts.gitHash=${GIT_HASH}'"
default: win64 win32 linux mac
win64: prepare build_gui_win64 compile_command_win64 copy_files_win64 create_shortcut_win64 zip_win64
win32: prepare compile_ui build_gui_win32 compile_command_win32 copy_files_win32 create_shortcut_win32 zip_win32
linux: prepare build_gui_linux compile_command_linux copy_files_linux create_shortcut_linux zip_linux
mac: prepare build_gui_mac compile_command_mac copy_files_mac create_shortcut_mac zip_mac
prepare: update_version prepare_res
update_version: update_version_in_config gen_version_file
update_version_in_config:
@sed -i "s/Version.*/Version = ${VERSION}/" conf/ztf.conf
gen_version_file:
@echo 'gen version'
@mkdir -p ${QINIU_DIR}/${PROJECT}/
@echo ${VERSION} > ${QINIU_DIR}/${PROJECT}/version.txt
compile_ui:
@cd ui && yarn build --dest ../client/ui && cd ..
prepare_res:
@echo 'start prepare res'
@rm -rf res/res.go
@go-bindata -o=res/res.go -pkg=res res/...
# gui
build_gui_win64: compile_gui_win64 package_gui_win64_client
compile_gui_win64:
@echo 'start compile win64'
@rm -rf ./${CLIENT_BIN_DIR}/*
@CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 \
${BUILD_CMD} -x -v -ldflags "-s -w" \
-o ${CLIENT_BIN_DIR}win32/${PROJECT}.exe ${SERVER_MAIN_FILE}
package_gui_win64_client:
@cd client && npm run package-win64 && cd ..
@rm -rf ${CLIENT_OUT_DIR}win64 && mkdir ${CLIENT_OUT_DIR}win64 && \
mv ${CLIENT_OUT_DIR}${PROJECT}-win32-x64 ${CLIENT_OUT_DIR}win64/gui
build_gui_win32: compile_gui_win32 package_gui_win32_client
compile_gui_win32:
@echo 'start compile win32'
@rm -rf ./${CLIENT_BIN_DIR}/*
@CGO_ENABLED=1 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ GOOS=windows GOARCH=386 \
${BUILD_CMD} -x -v -ldflags "-s -w" \
-o ${CLIENT_BIN_DIR}win32/${PROJECT}.exe ${SERVER_MAIN_FILE}
package_gui_win32_client:
@cd client && npm run package-win32 && cd ..
@rm -rf ${CLIENT_OUT_DIR}win32 && mkdir ${CLIENT_OUT_DIR}win32 && \
mv ${CLIENT_OUT_DIR}${PROJECT}-win32-ia32 ${CLIENT_OUT_DIR}win32/gui
build_gui_linux: compile_gui_linux package_gui_linux_client
compile_gui_linux:
@echo 'start compile linux'
@rm -rf ./${CLIENT_BIN_DIR}/*
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 \
${BUILD_CMD} \
-o ${CLIENT_BIN_DIR}linux/${PROJECT} ${SERVER_MAIN_FILE}
package_gui_linux_client:
@cd client && npm run package-linux && cd ..
@rm -rf ${CLIENT_OUT_DIR}linux && mkdir ${CLIENT_OUT_DIR}linux && \
mv ${CLIENT_OUT_DIR}${PROJECT}-linux-x64 ${CLIENT_OUT_DIR}linux/gui
build_gui_mac: compile_gui_mac package_gui_mac_client
compile_gui_mac:
@echo 'start compile mac'
@rm -rf ./${CLIENT_BIN_DIR}/*
@echo
@CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 \
${BUILD_CMD} \
-o ${CLIENT_BIN_DIR}darwin/${PROJECT} ${SERVER_MAIN_FILE}
package_gui_mac_client:
@cd client && npm run package-mac && cd ..
@rm -rf ${CLIENT_OUT_DIR}darwin && mkdir ${CLIENT_OUT_DIR}darwin && \
mv ${CLIENT_OUT_DIR}${PROJECT}-darwin-x64 ${CLIENT_OUT_DIR}darwin/gui
# command line
compile_command_win64:
@echo 'start compile win64'
@CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ GOOS=windows GOARCH=amd64 \
${BUILD_CMD} -x -v -ldflags "-s -w" \
-o ${COMMAND_BIN_DIR}win64/${PROJECT}.exe ${COMMAND_MAIN_FILE}
compile_command_win32:
@echo 'start compile win32'
@CGO_ENABLED=1 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ GOOS=windows GOARCH=386 \
${BUILD_CMD} -x -v -ldflags "-s -w" \
-o ${COMMAND_BIN_DIR}win32/${PROJECT}.exe ${COMMAND_MAIN_FILE}
compile_command_linux:
@echo 'start compile linux'
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 \
${BUILD_CMD} \
-o ${COMMAND_BIN_DIR}linux/${PROJECT} ${COMMAND_MAIN_FILE}
compile_command_mac:
@echo 'start compile darwin'
@echo
@CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 \
${BUILD_CMD} \
-o ${COMMAND_BIN_DIR}darwin/${PROJECT} ${COMMAND_MAIN_FILE}
copy_files_win64:
@echo 'start copy files win64'
cp -r demo runtime "${CLIENT_OUT_DIR}win64"
cp ${COMMAND_BIN_DIR}win64/* "${CLIENT_OUT_DIR}win64"
copy_files_win32:
@echo 'start copy files win32'
cp -r demo runtime "${CLIENT_OUT_DIR}win32"
cp ${COMMAND_BIN_DIR}win32/* "${CLIENT_OUT_DIR}win32"
copy_files_linux:
@echo 'start copy files linux'
cp -r demo runtime "${CLIENT_OUT_DIR}linux"
cp ${COMMAND_BIN_DIR}linux/* "${CLIENT_OUT_DIR}linux"
copy_files_mac:
@echo 'start copy files darwin'
cp -r demo runtime "${CLIENT_OUT_DIR}darwin"
cp ${COMMAND_BIN_DIR}darwin/* "${CLIENT_OUT_DIR}darwin"
create_shortcut_win64:
@echo 'create shortcut win64'
cp xdoc/ztf-gui.cmd "${CLIENT_OUT_DIR}win64"
create_shortcut_win32:
@echo 'create shortcut win32'
cp xdoc/ztf-gui.cmd "${CLIENT_OUT_DIR}win32"
create_shortcut_linux:
@echo 'create shortcut linux'
cp xdoc/ztf-gui-linux.sh ${CLIENT_OUT_DIR}linux/ztf-gui.sh
create_shortcut_mac:
@echo 'create shortcut mac'
cp xdoc/ztf-gui-mac.sh ${CLIENT_OUT_DIR}darwin/ztf-gui.sh
zip_win64:
@echo 'start zip win64'
@find . -name .DS_Store -print0 | xargs -0 rm -f
@mkdir -p ${QINIU_DIST_DIR}win64 && rm -rf ${QINIU_DIST_DIR}win64/${PROJECT}.zip
@cd ${CLIENT_OUT_DIR}win64 && \
zip -ry ${QINIU_DIST_DIR}win64/${PROJECT}.zip ./* && \
md5sum ${QINIU_DIST_DIR}win64/${PROJECT}.zip | awk '{print $$1}' | \
xargs echo > ${QINIU_DIST_DIR}win64/${PROJECT}.zip.md5 && \
cd ../..; \
zip_win32:
@echo 'start zip win32'
@find . -name .DS_Store -print0 | xargs -0 rm -f
@mkdir -p ${QINIU_DIST_DIR}win32 && rm -rf ${QINIU_DIST_DIR}win32/${PROJECT}.zip
@cd ${CLIENT_OUT_DIR}win32 && \
zip -ry ${QINIU_DIST_DIR}win32/${PROJECT}.zip ./* && \
md5sum ${QINIU_DIST_DIR}win32/${PROJECT}.zip | awk '{print $$1}' | \
xargs echo > ${QINIU_DIST_DIR}win32/${PROJECT}.zip.md5 && \
cd ../..; \
zip_linux:
@echo 'start zip linux'
@find . -name .DS_Store -print0 | xargs -0 rm -f
@mkdir -p ${QINIU_DIST_DIR}linux && rm -rf ${QINIU_DIST_DIR}linux/${PROJECT}.zip
@cd ${CLIENT_OUT_DIR}linux && \
zip -ry ${QINIU_DIST_DIR}linux/${PROJECT}.zip ./* && \
md5sum ${QINIU_DIST_DIR}linux/${PROJECT}.zip | awk '{print $$1}' | \
xargs echo > ${QINIU_DIST_DIR}linux/${PROJECT}.zip.md5 && \
cd ../..; \
zip_mac:
@echo 'start zip darwin'
@find . -name .DS_Store -print0 | xargs -0 rm -f
@mkdir -p ${QINIU_DIST_DIR}darwin && rm -rf ${QINIU_DIST_DIR}darwin/${PROJECT}.zip
@cd ${CLIENT_OUT_DIR}darwin && \
zip -ry ${QINIU_DIST_DIR}darwin/${PROJECT}.zip ./* && \
md5sum ${QINIU_DIST_DIR}darwin/${PROJECT}.zip | awk '{print $$1}' | \
xargs echo > ${QINIU_DIST_DIR}darwin/${PROJECT}.zip.md5 && \
cd ../..; \
upload_to:
@echo 'upload...'
@find ${QINIU_DIR} -name ".DS_Store" -type f -delete
@qshell qupload2 --src-dir=${QINIU_DIR} --bucket=download --thread-count=10 --log-file=qshell.log \
--skip-path-prefixes=zz,zd,zmanager,driver --rescan-local --overwrite --check-hash
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册