github.com/xzl8028/xenia-server@v0.0.0-20190809101854-18450a97da63/build/release.mk (about) 1 2 dist: | check-style test package 3 4 build-linux: 5 @echo Build Linux amd64 6 env GOOS=linux GOARCH=amd64 $(GO) install -i $(GOFLAGS) -ldflags '$(LDFLAGS)' ./... 7 8 build-osx: 9 @echo Build OSX amd64 10 env GOOS=darwin GOARCH=amd64 $(GO) install -i $(GOFLAGS) -ldflags '$(LDFLAGS)' ./... 11 12 build-windows: 13 @echo Build Windows amd64 14 env GOOS=windows GOARCH=amd64 $(GO) install -i $(GOFLAGS) -ldflags '$(LDFLAGS)' ./... 15 16 build: build-linux build-windows build-osx 17 18 build-client: 19 @echo Building xenia web app 20 21 cd $(BUILD_WEBAPP_DIR) && $(MAKE) build 22 23 package: 24 @ echo Packaging xenia 25 26 @# Remove any old files 27 rm -Rf $(DIST_ROOT) 28 29 @# Create needed directories 30 mkdir -p $(DIST_PATH)/bin 31 mkdir -p $(DIST_PATH)/logs 32 mkdir -p $(DIST_PATH)/prepackaged_plugins 33 34 @# Resource directories 35 mkdir -p $(DIST_PATH)/config 36 cp -L config/README.md $(DIST_PATH)/config 37 OUTPUT_CONFIG=$(PWD)/$(DIST_PATH)/config/config.json go generate ./config 38 cp -RL fonts $(DIST_PATH) 39 cp -RL templates $(DIST_PATH) 40 cp -RL i18n $(DIST_PATH) 41 42 @# Disable developer settings 43 sed -i'' -e 's|"ConsoleLevel": "DEBUG"|"ConsoleLevel": "INFO"|g' $(DIST_PATH)/config/config.json 44 sed -i'' -e 's|"SiteURL": "http://localhost:8065"|"SiteURL": ""|g' $(DIST_PATH)/config/config.json 45 46 @# Reset email sending to original configuration 47 sed -i'' -e 's|"SendEmailNotifications": true,|"SendEmailNotifications": false,|g' $(DIST_PATH)/config/config.json 48 sed -i'' -e 's|"FeedbackEmail": "test@example.com",|"FeedbackEmail": "",|g' $(DIST_PATH)/config/config.json 49 sed -i'' -e 's|"ReplyToAddress": "test@example.com",|"ReplyToAddress": "",|g' $(DIST_PATH)/config/config.json 50 sed -i'' -e 's|"SMTPServer": "dockerhost",|"SMTPServer": "",|g' $(DIST_PATH)/config/config.json 51 sed -i'' -e 's|"SMTPPort": "2500",|"SMTPPort": "",|g' $(DIST_PATH)/config/config.json 52 53 @# Package webapp 54 mkdir -p $(DIST_PATH)/client 55 cp -RL $(BUILD_WEBAPP_DIR)/dist/* $(DIST_PATH)/client 56 57 @# Help files 58 ifeq ($(BUILD_ENTERPRISE_READY),true) 59 cp $(BUILD_ENTERPRISE_DIR)/ENTERPRISE-EDITION-LICENSE.txt $(DIST_PATH) 60 else 61 cp build/MIT-COMPILED-LICENSE.md $(DIST_PATH) 62 endif 63 cp NOTICE.txt $(DIST_PATH) 64 cp README.md $(DIST_PATH) 65 66 @# Download prepackaged plugins 67 mkdir -p tmpprepackaged 68 @cd tmpprepackaged && for plugin_package in $(PLUGIN_PACKAGES) ; do \ 69 curl -O -L https://plugins-store.test.xenia.com/release/$$plugin_package.tar.gz; \ 70 done 71 72 @# ----- PLATFORM SPECIFIC ----- 73 74 @# Make osx package 75 @# Copy binary 76 ifeq ($(BUILDER_GOOS_GOARCH),"darwin_amd64") 77 cp $(GOPATH)/bin/xenia $(DIST_PATH)/bin # from native bin dir, not cross-compiled 78 cp $(GOPATH)/bin/platform $(DIST_PATH)/bin # from native bin dir, not cross-compiled 79 else 80 cp $(GOPATH)/bin/darwin_amd64/xenia $(DIST_PATH)/bin # from cross-compiled bin dir 81 cp $(GOPATH)/bin/darwin_amd64/platform $(DIST_PATH)/bin # from cross-compiled bin dir 82 endif 83 @# Strip and prepackage plugins 84 @for plugin_package in $(PLUGIN_PACKAGES) ; do \ 85 cat tmpprepackaged/$$plugin_package.tar.gz | gunzip | tar --wildcards --delete "*windows*" --delete "*linux*" | gzip > $(DIST_PATH)/prepackaged_plugins/$$plugin_package.tar.gz; \ 86 done 87 @# Package 88 tar -C dist -czf $(DIST_PATH)-$(BUILD_TYPE_NAME)-osx-amd64.tar.gz xenia 89 @# Cleanup 90 rm -f $(DIST_PATH)/bin/xenia 91 rm -f $(DIST_PATH)/bin/platform 92 rm -f $(DIST_PATH)/prepackaged_plugins/* 93 94 @# Make windows package 95 @# Copy binary 96 ifeq ($(BUILDER_GOOS_GOARCH),"windows_amd64") 97 cp $(GOPATH)/bin/xenia.exe $(DIST_PATH)/bin # from native bin dir, not cross-compiled 98 cp $(GOPATH)/bin/platform.exe $(DIST_PATH)/bin # from native bin dir, not cross-compiled 99 else 100 cp $(GOPATH)/bin/windows_amd64/xenia.exe $(DIST_PATH)/bin # from cross-compiled bin dir 101 cp $(GOPATH)/bin/windows_amd64/platform.exe $(DIST_PATH)/bin # from cross-compiled bin dir 102 endif 103 @# Strip and prepackage plugins 104 @for plugin_package in $(PLUGIN_PACKAGES) ; do \ 105 cat tmpprepackaged/$$plugin_package.tar.gz | gunzip | tar --wildcards --delete "*darwin*" --delete "*linux*" | gzip > $(DIST_PATH)/prepackaged_plugins/$$plugin_package.tar.gz; \ 106 done 107 @# Package 108 cd $(DIST_ROOT) && zip -9 -r -q -l xenia-$(BUILD_TYPE_NAME)-windows-amd64.zip xenia && cd .. 109 @# Cleanup 110 rm -f $(DIST_PATH)/bin/xenia.exe 111 rm -f $(DIST_PATH)/bin/platform.exe 112 rm -f $(DIST_PATH)/prepackaged_plugins/* 113 114 @# Make linux package 115 @# Copy binary 116 ifeq ($(BUILDER_GOOS_GOARCH),"linux_amd64") 117 cp $(GOPATH)/bin/xenia $(DIST_PATH)/bin # from native bin dir, not cross-compiled 118 cp $(GOPATH)/bin/platform $(DIST_PATH)/bin # from native bin dir, not cross-compiled 119 else 120 cp $(GOPATH)/bin/linux_amd64/xenia $(DIST_PATH)/bin # from cross-compiled bin dir 121 cp $(GOPATH)/bin/linux_amd64/platform $(DIST_PATH)/bin # from cross-compiled bin dir 122 endif 123 @# Strip and prepackage plugins 124 @for plugin_package in $(PLUGIN_PACKAGES) ; do \ 125 cat tmpprepackaged/$$plugin_package.tar.gz | gunzip | tar --wildcards --delete "*windows*" --delete "*darwin*" | gzip > $(DIST_PATH)/prepackaged_plugins/$$plugin_package.tar.gz; \ 126 done 127 @# Package 128 tar -C dist -czf $(DIST_PATH)-$(BUILD_TYPE_NAME)-linux-amd64.tar.gz xenia 129 @# Don't clean up native package so dev machines will have an unzipped package available 130 @#rm -f $(DIST_PATH)/bin/xenia 131 132 rm -rf tmpprepackaged