1 # Copyright 2016 The Brotli Authors. All rights reserved. 2 # 3 # Distributed under MIT license. 4 # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT 5 6 7 # Default 8 .PHONY: all 9 # Build 10 .PHONY: build 11 # Test 12 .PHONY: test tests 13 # Clean 14 .PHONY: clean 15 # Format 16 .PHONY: fix 17 18 19 PYTHON ?= python 20 YAPF ?= yapf 21 22 EXT_SUFFIX=$(shell $(PYTHON) -c 'import sysconfig; print(sysconfig.get_config_var("EXT_SUFFIX"))') 23 EXT_SOURCES=$(shell find . -name '*.cc') 24 EXTENSIONS=$(EXT_SOURCES:%.cc=%$(EXT_SUFFIX)) 25 26 27 all: build 28 29 build: $(EXTENSIONS) 30 31 $(EXTENSIONS): $(EXT_SOURCES) 32 @cd .. && $(PYTHON) setup.py develop 33 34 test: tests 35 36 tests: build 37 @echo 'running tests' 38 @$(PYTHON) -m unittest discover -p '*_test.py' 39 40 clean: 41 @cd .. && $(PYTHON) setup.py clean 42 @find .. -name '*.pyc' | xargs rm -v 43 @find .. -name '*.so' | xargs rm -v 44 @find .. -type d -name '__pycache__' | xargs rm -v -r 45 @find .. -type d -name '*.egg-info' | xargs rm -v -r 46 47 fix: 48 @echo 'formatting code' 49 -@$(YAPF) --in-place --recursive --verify . 50