gitlab.com/thomasboni/go-enry/v2@v2.8.3-0.20220418031202-30b0d7a3de98/Makefile (about) 1 LINGUIST_PATH = .linguist 2 3 # shared objects 4 RESOURCES_DIR=./.shared 5 LINUX_DIR=$(RESOURCES_DIR)/linux-x86-64 6 LINUX_SHARED_LIB=$(LINUX_DIR)/libenry.so 7 DARWIN_DIR=$(RESOURCES_DIR)/darwin 8 DARWIN_SHARED_LIB=$(DARWIN_DIR)/libenry.dylib 9 STATIC_LIB=$(RESOURCES_DIR)/libenry.a 10 HEADER_FILE=libenry.h 11 NATIVE_LIB=./shared/enry.go 12 13 $(LINGUIST_PATH): 14 git clone https://github.com/github/linguist.git $@ 15 16 clean-linguist: 17 rm -rf $(LINGUIST_PATH) 18 19 clean-shared: 20 rm -rf $(RESOURCES_DIR) 21 22 clean: clean-linguist clean-shared 23 24 code-generate: $(LINGUIST_PATH) 25 mkdir -p data && \ 26 go run internal/code-generator/main.go 27 ENRY_TEST_REPO="$${PWD}/.linguist" go test -v \ 28 -run Test_GeneratorTestSuite \ 29 ./internal/code-generator/generator \ 30 -testify.m TestUpdateGeneratorTestSuiteGold \ 31 -update_gold 32 33 benchmarks: $(LINGUIST_PATH) 34 go test -run=NONE -bench=. && \ 35 benchmarks/linguist-total.rb 36 37 benchmarks-samples: $(LINGUIST_PATH) 38 go test -run=NONE -bench=. -benchtime=5us && \ 39 benchmarks/linguist-samples.rb 40 41 benchmarks-slow: $(LINGUIST_PATH) 42 mkdir -p benchmarks/output && \ 43 go test -run=NONE -bench=. -slow -benchtime=100ms -timeout=100h > benchmarks/output/enry_samples.bench && \ 44 benchmarks/linguist-samples.rb 5 > benchmarks/output/linguist_samples.bench 45 46 linux-shared: $(LINUX_SHARED_LIB) 47 48 darwin-shared: $(DARWIN_SHARED_LIB) 49 50 $(DARWIN_SHARED_LIB): 51 mkdir -p $(DARWIN_DIR) && \ 52 CC="o64-clang" CXX="o64-clang++" CGO_ENABLED=1 GOOS=darwin go build -buildmode=c-shared -o $(DARWIN_SHARED_LIB) $(NATIVE_LIB) && \ 53 mv $(DARWIN_DIR)/$(HEADER_FILE) $(RESOURCES_DIR)/$(HEADER_FILE) 54 55 $(LINUX_SHARED_LIB): 56 mkdir -p $(LINUX_DIR) && \ 57 CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildmode=c-shared -o $(LINUX_SHARED_LIB) $(NATIVE_LIB) && \ 58 mv $(LINUX_DIR)/$(HEADER_FILE) $(RESOURCES_DIR)/$(HEADER_FILE) 59 60 61 static: $(STATIC_LIB) 62 63 $(STATIC_LIB): 64 CGO_ENABLED=1 go build -buildmode=c-archive -o $(STATIC_LIB) $(NATIVE_LIB) 65 66 .PHONY: benchmarks benchmarks-samples benchmarks-slow