Makefile 3.3 KB
Newer Older
aaronchen2k2k's avatar
aaronchen2k2k 已提交
1
VERSION=2.5
aaronchen2k2k's avatar
aaronchen2k2k 已提交
2 3 4 5
PROJECT=ztf
QINIU_DIR=/Users/aaron/work/zentao/qiniu/
QINIU_DIST_DIR=${QINIU_DIR}${PROJECT}/${VERSION}/
PACKAGE=${PROJECT}-${VERSION}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
6
BINARY=ztf
aaronchen2k2k's avatar
aaronchen2k2k 已提交
7 8 9
BIN_DIR=bin
BIN_ZIP_DIR=${BIN_DIR}/zip/${PROJECT}/${VERSION}/
BIN_OUT=${BIN_DIR}/${PROJECT}/${VERSION}/
aaronchen2k2k's avatar
aaronchen2k2k 已提交
10 11 12 13
BIN_WIN64=${BIN_OUT}win64/${BINARY}/
BIN_WIN32=${BIN_OUT}win32/${BINARY}/
BIN_LINUX=${BIN_OUT}linux/${BINARY}/
BIN_MAC=${BIN_OUT}mac/${BINARY}/
aaronchen2k2k's avatar
aaronchen2k2k 已提交
14
BIN_ARM=${BIN_OUT}arm/${BINARY}/
aaronchen2k2k's avatar
aaronchen2k2k 已提交
15

aaronchen2k2k's avatar
aaronchen2k2k 已提交
16 17 18 19 20
BUILD_TIME=`git show -s --format=%cd`
GO_VERSION=`go version`
GIT_HASH=`git show -s --format=%H`
BUILD_CMD=go build -ldflags "-X 'main.appVersion=${VERSION}' -X 'main.buildTime=${BUILD_TIME}' -X 'main.goVersion=${GO_VERSION}' -X 'main.gitHash=${GIT_HASH}'"

aaronchen2k2k's avatar
aaronchen2k2k 已提交
21 22
default: update_version_in_config gen_version_file prepare_res compile_all copy_files package

aaronchen2k2k's avatar
upgrade  
aaronchen2k2k 已提交
23 24 25 26
win64: update_version_in_config gen_version_file prepare_res compile_win64 copy_files package
win32: update_version_in_config gen_version_file prepare_res compile_win32 copy_files package
linux: update_version_in_config gen_version_file prepare_res compile_linux copy_files package
mac: update_version_in_config gen_version_file prepare_res compile_mac copy_files package
aaronchen2k2k's avatar
aaronchen2k2k 已提交
27
arm: update_version_in_config gen_version_file prepare_res compile_arm copy_files package
aaronchen2k2k's avatar
aaronchen2k2k 已提交
28 29 30 31 32 33 34
upload: upload_to

prepare_res:
	@echo 'start prepare res'
	@go-bindata -o=res/res.go -pkg=res res/...
	@rm -rf ${BIN_DIR} && mkdir -p ${BIN_DIR}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
35
compile_all: compile_win64 compile_win32 compile_linux compile_mac compile_arm
aaronchen2k2k's avatar
aaronchen2k2k 已提交
36 37 38

compile_win64:
	@echo 'start compile win64'
aaronchen2k2k's avatar
aaronchen2k2k 已提交
39
	@CGO_ENABLED=0 GOOS=windows GOARCH=amd64 ${BUILD_CMD} -o ${BIN_WIN64}${BINARY}.exe src/main.go
aaronchen2k2k's avatar
aaronchen2k2k 已提交
40 41 42

compile_win32:
	@echo 'start compile win32'
aaronchen2k2k's avatar
aaronchen2k2k 已提交
43
	@CGO_ENABLED=0 GOOS=windows GOARCH=386 ${BUILD_CMD} -o ${BIN_WIN32}${BINARY}.exe src/main.go
aaronchen2k2k's avatar
aaronchen2k2k 已提交
44 45 46

compile_linux:
	@echo 'start compile linux'
aaronchen2k2k's avatar
aaronchen2k2k 已提交
47
	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ${BUILD_CMD} -o ${BIN_LINUX}${BINARY} src/main.go
aaronchen2k2k's avatar
aaronchen2k2k 已提交
48 49 50

compile_mac:
	@echo 'start compile mac'
aaronchen2k2k's avatar
aaronchen2k2k 已提交
51
	@CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 ${BUILD_CMD} -o ${BIN_MAC}${BINARY} src/main.go
aaronchen2k2k's avatar
aaronchen2k2k 已提交
52

aaronchen2k2k's avatar
aaronchen2k2k 已提交
53 54
compile_arm:
	@echo 'start compile arm'
aaronchen2k2k's avatar
aaronchen2k2k 已提交
55
	@CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 ${BUILD_CMD} -o ${BIN_ARM}${BINARY} src/main.go
aaronchen2k2k's avatar
aaronchen2k2k 已提交
56

aaronchen2k2k's avatar
aaronchen2k2k 已提交
57 58 59
copy_files:
	@echo 'start copy files'

aaronchen2k2k's avatar
aaronchen2k2k 已提交
60
	@cp -r {conf,runtime,demo} ${BIN_DIR}
aaronchen2k2k's avatar
crontab  
aaronchen2k2k 已提交
61
	@for platform in `ls ${BIN_OUT}`; \
aaronchen2k2k's avatar
aaronchen2k2k 已提交
62
		do cp -r {bin/conf,bin/runtime,bin/demo} "${BIN_OUT}$${platform}/${BINARY}"; done
aaronchen2k2k's avatar
aaronchen2k2k 已提交
63 64 65 66 67 68 69

package:
	@echo 'start package'
	@find . -name .DS_Store -print0 | xargs -0 rm -f
	@for platform in `ls ${BIN_OUT}`; do mkdir -p ${QINIU_DIST_DIR}$${platform}; done

	@cd ${BIN_OUT} && \
aaronchen2k2k's avatar
aaronchen2k2k 已提交
70 71 72 73 74 75 76
		for platform in `ls ./`; \
		   do cd $${platform} && \
		   zip -r ${QINIU_DIST_DIR}$${platform}/${BINARY}.zip ${BINARY} && \
		   md5sum ${QINIU_DIST_DIR}$${platform}/${BINARY}.zip | awk '{print $$1}' | \
		          xargs echo > ${QINIU_DIST_DIR}$${platform}/${BINARY}.zip.md5 && \
           cd ..; \
		done
aaronchen2k2k's avatar
aaronchen2k2k 已提交
77 78 79

update_version_in_config:
	@gsed -i "s/Version.*/Version = ${VERSION}/" conf/ztf.conf
aaronchen2k2k's avatar
aaronchen2k2k 已提交
80 81 82 83 84 85 86 87 88

gen_version_file:
	@echo 'gen version'
	@mkdir -p ${QINIU_DIR}/${PROJECT}/
	@echo ${VERSION} > ${QINIU_DIR}/${PROJECT}/version.txt

upload_to:
	@echo 'upload...'
	@find ${QINIU_DIR} -name ".DS_Store" -type f -delete
aaronchen2k2k's avatar
aaronchen2k2k 已提交
89
	@qshell qupload2 --src-dir=${QINIU_DIR} --bucket=download --thread-count=10 --log-file=qshell.log \
90
					 --skip-path-prefixes=zd,zmanager,driver --rescan-local --overwrite --check-hash