github.com/xzntrc/go-enry/v2@v2.0.0-20230215091818-766cc1d65498/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