github.com/ipfans/trojan-go@v0.11.0/Makefile (about) 1 NAME := trojan-go 2 PACKAGE_NAME := github.com/ipfans/trojan-go 3 VERSION := `git describe --dirty` 4 COMMIT := `git rev-parse HEAD` 5 6 PLATFORM := linux 7 BUILD_DIR := build 8 VAR_SETTING := -X $(PACKAGE_NAME)/constant.Version=$(VERSION) -X $(PACKAGE_NAME)/constant.Commit=$(COMMIT) 9 GOBUILD = env CGO_ENABLED=0 $(GO_DIR)go build -tags "full" -trimpath -ldflags="-s -w -buildid= $(VAR_SETTING)" -o $(BUILD_DIR) 10 11 .PHONY: trojan-go release test 12 normal: clean trojan-go 13 14 clean: 15 rm -rf $(BUILD_DIR) 16 rm -f *.zip 17 rm -f *.dat 18 19 geoip.dat: 20 wget https://github.com/v2fly/geoip/raw/release/geoip.dat 21 22 geoip-only-cn-private.dat: 23 wget https://github.com/v2fly/geoip/raw/release/geoip-only-cn-private.dat 24 25 geosite.dat: 26 wget https://github.com/v2fly/domain-list-community/raw/release/dlc.dat -O geosite.dat 27 28 test: 29 # Disable Bloomfilter when testing 30 SHADOWSOCKS_SF_CAPACITY="-1" $(GO_DIR)go test -v ./... 31 32 trojan-go: 33 mkdir -p $(BUILD_DIR) 34 $(GOBUILD) 35 36 install: $(BUILD_DIR)/$(NAME) geoip.dat geoip-only-cn-private.dat geosite.dat 37 mkdir -p /etc/$(NAME) 38 mkdir -p /usr/share/$(NAME) 39 cp example/*.json /etc/$(NAME) 40 cp $(BUILD_DIR)/$(NAME) /usr/bin/$(NAME) 41 cp example/$(NAME).service /usr/lib/systemd/system/ 42 cp example/$(NAME)@.service /usr/lib/systemd/system/ 43 systemctl daemon-reload 44 cp geosite.dat /usr/share/$(NAME)/geosite.dat 45 cp geoip.dat /usr/share/$(NAME)/geoip.dat 46 cp geoip-only-cn-private.dat /usr/share/$(NAME)/geoip-only-cn-private.dat 47 ln -fs /usr/share/$(NAME)/geoip.dat /usr/bin/ 48 ln -fs /usr/share/$(NAME)/geoip-only-cn-private.dat /usr/bin/ 49 ln -fs /usr/share/$(NAME)/geosite.dat /usr/bin/ 50 51 uninstall: 52 rm /usr/lib/systemd/system/$(NAME).service 53 rm /usr/lib/systemd/system/$(NAME)@.service 54 systemctl daemon-reload 55 rm /usr/bin/$(NAME) 56 rm -rd /etc/$(NAME) 57 rm -rd /usr/share/$(NAME) 58 rm /usr/bin/geoip.dat 59 rm /usr/bin/geoip-only-cn-private.dat 60 rm /usr/bin/geosite.dat 61 62 %.zip: % geosite.dat geoip.dat geoip-only-cn-private.dat 63 @zip -du $(NAME)-$@ -j $(BUILD_DIR)/$</* 64 @zip -du $(NAME)-$@ example/* 65 @-zip -du $(NAME)-$@ *.dat 66 @echo "<<< ---- $(NAME)-$@" 67 68 release: geosite.dat geoip.dat geoip-only-cn-private.dat darwin-amd64.zip darwin-arm64.zip linux-386.zip linux-amd64.zip \ 69 linux-arm.zip linux-armv5.zip linux-armv6.zip linux-armv7.zip linux-armv8.zip \ 70 linux-mips-softfloat.zip linux-mips-hardfloat.zip linux-mipsle-softfloat.zip linux-mipsle-hardfloat.zip \ 71 linux-mips64.zip linux-mips64le.zip freebsd-386.zip freebsd-amd64.zip \ 72 windows-386.zip windows-amd64.zip windows-arm.zip windows-armv6.zip windows-armv7.zip windows-arm64.zip 73 74 darwin-amd64: 75 mkdir -p $(BUILD_DIR)/$@ 76 GOARCH=amd64 GOOS=darwin $(GOBUILD)/$@ 77 78 darwin-arm64: 79 mkdir -p $(BUILD_DIR)/$@ 80 GOARCH=arm64 GOOS=darwin $(GOBUILD)/$@ 81 82 linux-386: 83 mkdir -p $(BUILD_DIR)/$@ 84 GOARCH=386 GOOS=linux $(GOBUILD)/$@ 85 86 linux-amd64: 87 mkdir -p $(BUILD_DIR)/$@ 88 GOARCH=amd64 GOOS=linux $(GOBUILD)/$@ 89 90 linux-arm: 91 mkdir -p $(BUILD_DIR)/$@ 92 GOARCH=arm GOOS=linux $(GOBUILD)/$@ 93 94 linux-armv5: 95 mkdir -p $(BUILD_DIR)/$@ 96 GOARCH=arm GOOS=linux GOARM=5 $(GOBUILD)/$@ 97 98 linux-armv6: 99 mkdir -p $(BUILD_DIR)/$@ 100 GOARCH=arm GOOS=linux GOARM=6 $(GOBUILD)/$@ 101 102 linux-armv7: 103 mkdir -p $(BUILD_DIR)/$@ 104 GOARCH=arm GOOS=linux GOARM=7 $(GOBUILD)/$@ 105 106 linux-armv8: 107 mkdir -p $(BUILD_DIR)/$@ 108 GOARCH=arm64 GOOS=linux $(GOBUILD)/$@ 109 110 linux-mips-softfloat: 111 mkdir -p $(BUILD_DIR)/$@ 112 GOARCH=mips GOMIPS=softfloat GOOS=linux $(GOBUILD)/$@ 113 114 linux-mips-hardfloat: 115 mkdir -p $(BUILD_DIR)/$@ 116 GOARCH=mips GOMIPS=hardfloat GOOS=linux $(GOBUILD)/$@ 117 118 linux-mipsle-softfloat: 119 mkdir -p $(BUILD_DIR)/$@ 120 GOARCH=mipsle GOMIPS=softfloat GOOS=linux $(GOBUILD)/$@ 121 122 linux-mipsle-hardfloat: 123 mkdir -p $(BUILD_DIR)/$@ 124 GOARCH=mipsle GOMIPS=hardfloat GOOS=linux $(GOBUILD)/$@ 125 126 linux-mips64: 127 mkdir -p $(BUILD_DIR)/$@ 128 GOARCH=mips64 GOOS=linux $(GOBUILD)/$@ 129 130 linux-mips64le: 131 mkdir -p $(BUILD_DIR)/$@ 132 GOARCH=mips64le GOOS=linux $(GOBUILD)/$@ 133 134 freebsd-386: 135 mkdir -p $(BUILD_DIR)/$@ 136 GOARCH=386 GOOS=freebsd $(GOBUILD)/$@ 137 138 freebsd-amd64: 139 mkdir -p $(BUILD_DIR)/$@ 140 GOARCH=amd64 GOOS=freebsd $(GOBUILD)/$@ 141 142 windows-386: 143 mkdir -p $(BUILD_DIR)/$@ 144 GOARCH=386 GOOS=windows $(GOBUILD)/$@ 145 146 windows-amd64: 147 mkdir -p $(BUILD_DIR)/$@ 148 GOARCH=amd64 GOOS=windows $(GOBUILD)/$@ 149 150 windows-arm: 151 mkdir -p $(BUILD_DIR)/$@ 152 GOARCH=arm GOOS=windows $(GOBUILD)/$@ 153 154 windows-armv6: 155 mkdir -p $(BUILD_DIR)/$@ 156 GOARCH=arm GOOS=windows GOARM=6 $(GOBUILD)/$@ 157 158 windows-armv7: 159 mkdir -p $(BUILD_DIR)/$@ 160 GOARCH=arm GOOS=windows GOARM=7 $(GOBUILD)/$@ 161 162 windows-arm64: 163 mkdir -p $(BUILD_DIR)/$@ 164 GOARCH=arm64 GOOS=windows $(GOBUILD)/$@