Home | History | Annotate | Download | only in python
      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