From 7b4db50c9ddcb8bcfc41c1260ff97c47a4748451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=81=E3=82=BB?= <123655015+chise0713@users.noreply.github.com> Date: Tue, 2 Jan 2024 23:13:38 +0800 Subject: [PATCH] Feat: Using `Makefile` to build xray (#2882) * Feat: Using `Makefile` to build xray * Typo --- .github/workflows/release.yml | 29 ++--------------------------- .gitignore | 2 ++ Makefile | 29 +++++++++++++++++++++++++++++ README.md | 10 +--------- 4 files changed, 34 insertions(+), 36 deletions(-) create mode 100644 Makefile diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e33b18b7..86335113 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -173,36 +173,11 @@ jobs: - name: Get project dependencies run: go mod download - - name: Replace Custom to Commit ID - if: github.event_name != 'release' - run: | - ID=$(git rev-parse --short ${{ github.sha }}) - if [ "${{ github.event_name }}" == 'pull_request' ] - then - ID=$(git rev-parse --short ${{ github.event.pull_request.head.sha }}) - fi - sed -i '/build/ s/Custom/'$ID'/' ./core/core.go - - name: Build Xray run: | mkdir -p build_assets - go build -v -o build_assets/xray -trimpath -ldflags "-s -w -buildid=" ./main - - - name: Build background Xray on Windows - if: matrix.goos == 'windows' - run: | - go build -v -o build_assets/wxray.exe -trimpath -ldflags "-s -w -H windowsgui -buildid=" ./main - - - name: Build Mips softfloat Xray - if: matrix.goarch == 'mips' || matrix.goarch == 'mipsle' - run: | - GOMIPS=softfloat go build -v -o build_assets/xray_softfloat -trimpath -ldflags "-s -w -buildid=" ./main - - - name: Rename Windows Xray - if: matrix.goos == 'windows' - run: | - cd ./build_assets || exit 1 - mv xray xray.exe + make + find . -maxdepth 1 -type f -regex '.*\(wxray\|xray\|xray_softfloat\)\(\|.exe\)' -exec mv {} ./build_assets/ \; - name: Restore Cache uses: actions/cache/restore@v3 diff --git a/.gitignore b/.gitignore index 9242f587..c77bc579 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,7 @@ *.zip *.tar.gz xray +xray_softfloat mockgen vprotogen !infra/vprotogen/ @@ -26,3 +27,4 @@ errorgen !common/errors/errorgen/ *.dat .vscode +/build_assets diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..f69a9b2b --- /dev/null +++ b/Makefile @@ -0,0 +1,29 @@ +NAME = xray + +VERSION=$(shell git describe --always --dirty) + +LDFLAGS = -X github.com/xtls/xray-core/core.build=$(VERSION) -s -w -buildid= +PARAMS = -trimpath -ldflags "$(LDFLAGS)" -v +MAIN = ./main +PREFIX ?= $(shell go env GOPATH) +ifeq ($(GOOS),windows) +OUTPUT = $(NAME).exe +ADDITION = go build -o w$(NAME).exe -trimpath -ldflags "-H windowsgui $(LDFLAGS)" -v $(MAIN) +else +OUTPUT = $(NAME) +endif +ifeq ($(shell echo "$(GOARCH)" | grep -Pq "(mips|mipsle)" && echo true),true) # +ADDITION = GOMIPS=softfloat go build -o $(NAME)_softfloat -trimpath -ldflags "$(LDFLAGS)" -v $(MAIN) +endif +.PHONY: clean + +build: + go build -o $(OUTPUT) $(PARAMS) $(MAIN) + $(ADDITION) + +install: + go build -o $(PREFIX)/bin/$(OUTPUT) $(PARAMS) $(MAIN) + +clean: + go clean -v -i $(PWD) + rm -f xray xray.exe wxray.exe xray_softfloat \ No newline at end of file diff --git a/README.md b/README.md index 001654dc..df1537d8 100644 --- a/README.md +++ b/README.md @@ -125,16 +125,8 @@ ## Compilation -### Windows - ```bash -go build -o xray.exe -trimpath -ldflags "-s -w -buildid=" ./main -``` - -### Linux / macOS - -```bash -go build -o xray -trimpath -ldflags "-s -w -buildid=" ./main +make ``` ## Stargazers over time