github.com/mcuadros/go-enry@v1.7.3/Makefile (about) 1 # Package configuration 2 PROJECT = enry 3 COMMANDS = cmd/enry 4 5 # Including ci Makefile 6 CI_REPOSITORY ?= https://github.com/src-d/ci.git 7 CI_BRANCH ?= v1 8 CI_PATH ?= .ci 9 MAKEFILE := $(CI_PATH)/Makefile.main 10 $(MAKEFILE): 11 git clone --quiet --depth 1 -b $(CI_BRANCH) $(CI_REPOSITORY) $(CI_PATH); 12 -include $(MAKEFILE) 13 14 # Docsrv: configure the languages whose api-doc can be auto generated 15 LANGUAGES = go 16 # Docs: do not edit this 17 DOCS_REPOSITORY := https://github.com/src-d/docs 18 SHARED_PATH ?= $(shell pwd)/.docsrv-resources 19 DOCS_PATH ?= $(SHARED_PATH)/.docs 20 $(DOCS_PATH)/Makefile.inc: 21 git clone --quiet --depth 1 $(DOCS_REPOSITORY) $(DOCS_PATH); 22 -include $(DOCS_PATH)/Makefile.inc 23 24 LINGUIST_PATH = .linguist 25 26 # shared objects 27 RESOURCES_DIR=./.shared 28 LINUX_DIR=$(RESOURCES_DIR)/linux-x86-64 29 LINUX_SHARED_LIB=$(LINUX_DIR)/libenry.so 30 DARWIN_DIR=$(RESOURCES_DIR)/darwin 31 DARWIN_SHARED_LIB=$(DARWIN_DIR)/libenry.dylib 32 HEADER_FILE=libenry.h 33 NATIVE_LIB=./shared/enry.go 34 35 $(LINGUIST_PATH): 36 git clone https://github.com/github/linguist.git $@ 37 38 clean-linguist: 39 rm -rf $(LINGUIST_PATH) 40 41 clean-shared: 42 rm -rf $(RESOURCES_DIR) 43 44 clean: clean-linguist clean-shared 45 46 code-generate: $(LINGUIST_PATH) 47 mkdir -p data && \ 48 go run internal/code-generator/main.go 49 ENRY_TEST_REPO="$${PWD}/.linguist" go test -v \ 50 -run Test_GeneratorTestSuite \ 51 ./internal/code-generator/generator \ 52 -testify.m TestUpdateGeneratorTestSuiteGold \ 53 -update_gold 54 55 benchmarks: $(LINGUIST_PATH) 56 go test -run=NONE -bench=. && \ 57 benchmarks/linguist-total.rb 58 59 benchmarks-samples: $(LINGUIST_PATH) 60 go test -run=NONE -bench=. -benchtime=5us && \ 61 benchmarks/linguist-samples.rb 62 63 benchmarks-slow: $(LINGUIST_PATH) 64 mkdir -p benchmarks/output && \ 65 go test -run=NONE -bench=. -slow -benchtime=100ms -timeout=100h > benchmarks/output/enry_samples.bench && \ 66 benchmarks/linguist-samples.rb 5 > benchmarks/output/linguist_samples.bench 67 68 linux-shared: $(LINUX_SHARED_LIB) 69 70 darwin-shared: $(DARWIN_SHARED_LIB) 71 72 $(DARWIN_SHARED_LIB): 73 mkdir -p $(DARWIN_DIR) && \ 74 CC="o64-clang" CXX="o64-clang++" CGO_ENABLED=1 GOOS=darwin go build -buildmode=c-shared -o $(DARWIN_SHARED_LIB) $(NATIVE_LIB) && \ 75 mv $(DARWIN_DIR)/$(HEADER_FILE) $(RESOURCES_DIR)/$(HEADER_FILE) 76 77 $(LINUX_SHARED_LIB): 78 mkdir -p $(LINUX_DIR) && \ 79 CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -buildmode=c-shared -o $(LINUX_SHARED_LIB) $(NATIVE_LIB) && \ 80 mv $(LINUX_DIR)/$(HEADER_FILE) $(RESOURCES_DIR)/$(HEADER_FILE) 81 82 .PHONY: benchmarks benchmarks-samples benchmarks-slow