github.com/go-enry/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