You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Makefile
		
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Makefile
		
	
# TODO: This contains a lot of {c|p}ython build boilerplate, this needs cleanup.
 | 
						|
PYTHON     ?= python
 | 
						|
SETUP      := setup.py
 | 
						|
BUILD_ARGS := build --build-lib .
 | 
						|
INST_ARGS  := install
 | 
						|
ifdef DESTDIR
 | 
						|
INST_ARGS  += --root=$(DESTDIR)
 | 
						|
endif
 | 
						|
CLEAN_ARGS := clean --all
 | 
						|
 | 
						|
MANPAGES := $(patsubst %.txt,%,$(wildcard *.txt))
 | 
						|
TXTTOMAN := a2x -f manpage
 | 
						|
 | 
						|
# Where our library resides. It is split between includes and the binary
 | 
						|
# library in lib
 | 
						|
RGB_LIBDIR=../../lib
 | 
						|
RGB_LIBRARY_NAME=rgbmatrix
 | 
						|
RGB_LIBRARY=$(RGB_LIBDIR)/lib$(RGB_LIBRARY_NAME).a
 | 
						|
 | 
						|
ifneq "$(wildcard debian/changelog)" ""
 | 
						|
PKGNAME := $(shell dpkg-parsechangelog | sed -n 's/^Source: //p')
 | 
						|
VERSION := $(shell dpkg-parsechangelog | sed -n 's/^Version: \([^-]*\).*/\1/p')
 | 
						|
UPSDIST := $(PKGNAME)-$(VERSION).tar.gz
 | 
						|
DEBDIST := $(PKGNAME)_$(VERSION).orig.tar.gz
 | 
						|
endif
 | 
						|
 | 
						|
all: build
 | 
						|
build: build-python
 | 
						|
install: install-python
 | 
						|
clean: clean-python
 | 
						|
	find ./rgbmatrix -type f -name \*.so -delete
 | 
						|
	find . -type f -name \*.pyc -delete
 | 
						|
	$(RM) build-* install-* test-*
 | 
						|
 | 
						|
$(RGB_LIBRARY): FORCE
 | 
						|
	$(MAKE) -C $(RGB_LIBDIR)
 | 
						|
 | 
						|
test: test-python
 | 
						|
test-python:
 | 
						|
ifneq "$(wildcard tests/*.py)" ""
 | 
						|
	nosetests -v -w tests
 | 
						|
else
 | 
						|
	$(info Test suite is not implemented...)
 | 
						|
endif
 | 
						|
 | 
						|
ifneq "$(wildcard debian/control)" ""
 | 
						|
PYVERS := $(shell pyversions -r -v debian/control)
 | 
						|
PYEXEC := $(shell pyversions -d)
 | 
						|
BUILD_ARGS += --executable=/usr/bin/$(PYEXEC)
 | 
						|
INST_ARGS  += --no-compile -O0
 | 
						|
 | 
						|
build-python: $(PYVERS:%=build-python-%)
 | 
						|
build-python-%: $(RGB_LIBRARY)
 | 
						|
	$(info * Doing build for $(PYTHON)$* ...)
 | 
						|
	$(PYTHON)$* $(SETUP) $(BUILD_ARGS)
 | 
						|
 | 
						|
install-python: $(PYVERS:%=install-python-%)
 | 
						|
install-python-%:
 | 
						|
	$(info * Doing install for $(PYTHON)$* ...)
 | 
						|
	$(PYTHON)$* $(SETUP) $(INST_ARGS)
 | 
						|
 | 
						|
clean-python: $(PYVERS:%=clean-python-%)
 | 
						|
clean-python-%:
 | 
						|
	$(PYTHON)$* $(SETUP) $(CLEAN_ARGS)
 | 
						|
else
 | 
						|
build-python: $(RGB_LIBRARY)
 | 
						|
	$(PYTHON) $(SETUP) $(BUILD_ARGS)
 | 
						|
 | 
						|
install-python:
 | 
						|
	$(PYTHON) $(SETUP) $(INST_ARGS)
 | 
						|
 | 
						|
clean-python:
 | 
						|
	$(PYTHON) $(SETUP) $(CLEAN_ARGS)
 | 
						|
endif
 | 
						|
 | 
						|
distclean: clean
 | 
						|
dist: distclean
 | 
						|
	$(info * Creating ../$(UPSDIST) and ../$(DEBDIST))
 | 
						|
	@tar --exclude='.svn' \
 | 
						|
	    --exclude='*.swp' \
 | 
						|
	    --exclude='debian' \
 | 
						|
	    -czvf ../$(UPSDIST) \
 | 
						|
	    -C ../ $(notdir $(CURDIR))
 | 
						|
	@cp ../$(UPSDIST) ../$(DEBDIST)
 | 
						|
	@if test -d ../tarballs; then \
 | 
						|
		mv -v ../$(DEBDIST) ../tarballs; \
 | 
						|
	fi
 | 
						|
 | 
						|
FORCE:
 | 
						|
.PHONY: FORCE
 | 
						|
.PHONY: build install test clean dist distclean
 | 
						|
.PHONY: build-python install-python clean-python
 |