6068024633854d0f303fe040d09f1c552b274025
[cascardo/ipsilon.git] / Makefile
1 RPMBUILD = $(PWD)/dist/rpmbuild
2
3 all: lint pep8 test
4         echo "All tests passed"
5
6 lint:
7         # Analyze code
8         # don't show recommendations, info, comments, report
9         # W0613 - unused argument
10         # Ignore cherrypy class members as they are dynamically added
11         # Ignore IPA API class members as they are dynamically added
12         pylint -d c,r,i,W0613 -r n -f colorized \
13                    --notes= \
14                    --ignored-classes=cherrypy,API \
15                    ./ipsilon
16
17 pep8:
18         # Check style consistency
19         pep8 ipsilon
20
21 # Requires python-lesscpy
22 ui: less/ipsilon.less less/admin.less
23         # Create CSS
24         lesscpy less/ipsilon.less > ui/css/ipsilon.css
25         lesscpy less/admin.less > ui/css/admin.css
26
27 # Requires NodeJS less and clear-css packages
28 # Should be removed when lesscpy starts to work properly
29 ui-node: less/ipsilon.less less/admin.less
30
31         # Create and minify CSS
32         #lessc --clean-css less/ipsilon.less ui/css/ipsilon.css
33         #lessc --clean-css less/admin.less ui/css/admin.css
34
35         #FIXME: temporarily disable clean-css fo deveopment
36         lessc less/ipsilon.less ui/css/ipsilon.css
37         lessc less/admin.less ui/css/admin.css
38
39 clean:
40         rm -fr testdir cscope.out
41         find ./ -name '*.pyc' -exec rm -f {} \;
42
43 cscope:
44         git ls-files | xargs pycscope
45
46 lp-test:
47         pylint -d c,r,i,W0613 -r n -f colorized \
48                    --notes= \
49                    --ignored-classes=cherrypy \
50                    ./tests
51         pep8 tests
52
53 wrappers:
54         #rm -fr wrapdir
55         #mkdir wrapdir
56         #LD_PRELOAD=libsocket_wrapper.so
57         #SOCKET_WRAPPER_DIR=wrapdir
58         #SOCKET_WRAPPER_DEFAULT_IFACE=9
59
60 tests: wrappers
61         PYTHONPATH=./ ./tests/tests.py --test=test1
62         PYTHONPATH=./ ./tests/tests.py --test=testlogout
63         PYTHONPATH=./ ./tests/tests.py --test=testrest
64         PYTHONPATH=./ ./tests/tests.py --test=attrs
65         PYTHONPATH=./ ./tests/tests.py --test=trans
66         PYTHONPATH=./ ./tests/tests.py --test=pgdb
67         PYTHONPATH=./ ./tests/tests.py --test=fconf
68         PYTHONPATH=./ ./tests/tests.py --test=ldap
69
70 test: lp-test unittests tests
71
72 unittests:
73         PYTHONPATH=./ ./ipsilon/tools/saml2metadata.py
74         PYTHONPATH=./ python ./ipsilon/util/policy.py
75
76 sdist:
77         python setup.py sdist
78
79 rpmroot:
80         rm -rf $(RPMBUILD)
81         mkdir -p $(RPMBUILD)/BUILD
82         mkdir -p $(RPMBUILD)/RPMS
83         mkdir -p $(RPMBUILD)/SOURCES
84         mkdir -p $(RPMBUILD)/SPECS
85         mkdir -p $(RPMBUILD)/SRPMS
86
87 rpmdistdir:
88         mkdir -p dist/rpms
89         mkdir -p dist/srpms
90
91 rpms: rpmroot rpmdistdir sdist
92         cp dist/ipsilon*.tar.gz $(RPMBUILD)/SOURCES/
93         rpmbuild --define "gittag .git`git rev-parse --short HEAD`" --define "builddate .`date +%Y%m%d%H%M`" --define "_topdir $(RPMBUILD)" -ba contrib/fedora/ipsilon.spec
94         mv $(RPMBUILD)/RPMS/*/ipsilon-*.rpm dist/rpms/
95         mv $(RPMBUILD)/SRPMS/ipsilon-*.src.rpm dist/srpms/
96         rm -rf $(RPMBUILD)
97
98 releaserpms: rpmroot rpmdistdir sdist
99         cp dist/ipsilon*.tar.gz $(RPMBUILD)/SOURCES/
100         rpmbuild --define "_topdir $(RPMBUILD)" -ba contrib/fedora/ipsilon.spec
101         mv $(RPMBUILD)/RPMS/*/ipsilon-*.rpm dist/rpms/
102         mv $(RPMBUILD)/SRPMS/ipsilon-*.src.rpm dist/srpms/
103         rm -rf $(RPMBUILD)