1# generic Makefile for py_sems applications
2.DEFAULT_GOAL := all
3
4COREPATH ?= ../../core
5PYSEMSPATH ?= ../py_sems
6
7include $(COREPATH)/../Makefile.defs
8include $(PYSEMSPATH)/Makefile.defs
9
10LIB_INSTALLDIR?=$(modules_prefix)/$(py-sems-modules_dir)
11TARBALL_PREFIX=sems-app-${NAME}
12TARBALL="${TARBALL_PREFIX}-${VERSION}.tar.gz"
13
14BASEDIR?=${basedir}
15
16BIN_PERMISSIONS="755"
17LIB_PERMISSIONS="644"
18
19PYCHECKERARGS = --stdlib
20PYCHECKERDOCARGS = --classdoc --funcdoc
21
22module_conf_files =  $(notdir $(wildcard etc/*.conf))
23
24.PHONY: all
25all: clean compile
26
27.PHONY: clean
28clean:
29	find . -iname "*\.pyc" -o -iname "*\.py~" | xargs rm -f
30	rm -f ${TARBALL_PREFIX}*.tar.gz
31
32.PHONY: compile
33compile:
34	python${PYTHON_VERSION} $(PYSEMSPATH)/py_comp -q .
35
36.PHONY: install
37install: all
38	install -d $(DESTDIR)${BASEDIR}/${LIB_INSTALLDIR}
39	install -m ${LIB_PERMISSIONS}  *.pyc $(DESTDIR)${BASEDIR}/${LIB_INSTALLDIR}
40	install -d $(DESTDIR)${BASEDIR}/${LIB_INSTALLDIR}/${LIBDIR}
41	install -m ${LIB_PERMISSIONS}  ${LIBDIR}/*.pyc $(DESTDIR)${BASEDIR}/${LIB_INSTALLDIR}/${LIBDIR}
42
43.PHONY: install-cfg
44install-cfg:
45	mkdir -p $(cfg_target)
46	@set -e ; \
47	for r in $(module_conf_files); do \
48			echo installing $$r ;  \
49			$(INSTALL_TOUCH) $(cfg_target)$$r ; \
50			sed -e "s#/usr/.*lib/sems/audio/#$(audio_target)#g" \
51			-e "s#/usr/.*lib/sems/plug-in/#$(modules_target)#g" \
52			-e "s#/usr/.*etc/sems/#$(cfg_target)#g" \
53			< etc/$$r > $(DESTDIR)$(cfg_target)$$r; \
54	done
55
56
57uninstall:
58	@echo "please remove the files from $(DESTDIR)${LIB_INSTALLDIR} manually."
59
60fulltest:
61	find | grep /Test | grep -v ".svn" | grep \\.py$$ | sed -e "s#^./##g" | bash -e -
62
63check:
64	find ${LIBDIR}/ | grep \\.py$$ | grep -v Test | PYTHONPATH=$(PYTHONPATH):$(PYSEMSPATH)/moc xargs pychecker ${PYCHECKERARGS}
65
66doccheck:
67	find ${LIBDIR}/  | grep \\.py$$ | grep -v Test | xargs pychecker ${PYCHECKERARGS} ${PYCHECKERDOCARGS}
68
69dist: all
70	tar -cvzf ${TARBALL} . --exclude=*.tar.gz \
71				--exclude=.svn \
72				--exclude=*~ \
73				--exclude=*.pyc
74
75
76
77