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)/$@