f7f7d168080d8e3d2aa33b373d7e080ac281acc9
[cascardo/ipsilon.git] / Makefile
1 RPMBUILD = $(PWD)/dist/rpmbuild
2
3 all: testdeps lint pep8 test
4         echo "All tests passed"
5
6 testdeps:
7         # Determine if test deps are installed
8         # First, some binaries
9         which lessc
10         which pylint
11         which pep8
12         which httpd
13         which postgres
14         which openssl
15         which slapd
16         # Now, python libraries
17         python -c 'import openid'
18         python -c 'import openid_teams'
19         python -c 'import openid_cla'
20         python -c 'import cherrypy'
21         python -c 'import M2Crypto'
22         python -c 'import lasso'
23         python -c 'import sqlalchemy'
24         python -c 'import ldap'
25         python -c 'import pam'
26         python -c 'import fedora'
27         python -c 'import ipapython'
28         python -c 'import jinja2'
29         python -c 'import psycopg2'
30         # And now everything else
31         ls /usr/share/doc/sssd
32         ls /usr/lib64/libsss_simpleifp.so.0
33         ls /usr/lib64/httpd/modules/mod_wsgi.so
34         ls /usr/libexec/mod_auth_mellon
35
36 lint:
37         # Analyze code
38         # don't show recommendations, info, comments, report
39         # W0613 - unused argument
40         # Ignore cherrypy class members as they are dynamically added
41         # Ignore IPA API class members as they are dynamically added
42         pylint -d c,r,i,W0613 -r n -f colorized \
43                    --notes= \
44                    --ignored-classes=cherrypy,API \
45                    --disable=star-args \
46                    ./ipsilon
47
48 pep8:
49         # Check style consistency
50         pep8 ipsilon
51
52 # Requires python-lesscpy
53 ui: less/ipsilon.less less/admin.less
54         # Create CSS
55         lesscpy less/ipsilon.less > ui/css/ipsilon.css
56         lesscpy less/admin.less > ui/css/admin.css
57
58 # Requires NodeJS less and clear-css packages
59 # Should be removed when lesscpy starts to work properly
60 ui-node: less/ipsilon.less less/admin.less
61
62         # Create and minify CSS
63         #lessc --clean-css less/ipsilon.less ui/css/ipsilon.css
64         #lessc --clean-css less/admin.less ui/css/admin.css
65
66         #FIXME: temporarily disable clean-css fo deveopment
67         lessc less/ipsilon.less ui/css/ipsilon.css
68         lessc less/admin.less ui/css/admin.css
69
70 clean:
71         rm -fr testdir cscope.out
72         find ./ -name '*.pyc' -exec rm -f {} \;
73
74 cscope:
75         git ls-files | xargs pycscope
76
77 lp-test:
78         pylint -d c,r,i,W0613 -r n -f colorized \
79                    --notes= \
80                    --ignored-classes=cherrypy \
81                    --disable=star-args \
82                    ./tests
83         pep8 tests
84
85 wrappers:
86         #rm -fr wrapdir
87         #mkdir wrapdir
88         #LD_PRELOAD=libsocket_wrapper.so
89         #SOCKET_WRAPPER_DIR=wrapdir
90         #SOCKET_WRAPPER_DEFAULT_IFACE=9
91
92 tests: wrappers
93         rm -rf testdir
94         PYTHONPATH=./ ./tests/tests.py --test=test1
95         PYTHONPATH=./ ./tests/tests.py --test=testlogout
96         PYTHONPATH=./ ./tests/tests.py --test=testnameid
97         PYTHONPATH=./ ./tests/tests.py --test=testrest
98         PYTHONPATH=./ ./tests/tests.py --test=testmapping
99         PYTHONPATH=./ ./tests/tests.py --test=testgssapi
100         PYTHONPATH=./ ./tests/tests.py --test=attrs
101         PYTHONPATH=./ ./tests/tests.py --test=trans
102         PYTHONPATH=./ ./tests/tests.py --test=pgdb
103         PYTHONPATH=./ ./tests/tests.py --test=fconf
104         PYTHONPATH=./ ./tests/tests.py --test=ldap
105         PYTHONPATH=./ ./tests/tests.py --test=openid
106
107 test: lp-test unittests tests
108
109 unittests:
110         PYTHONPATH=./ ./ipsilon/tools/saml2metadata.py
111         PYTHONPATH=./ python ./ipsilon/util/policy.py
112
113 sdist:
114         python setup.py sdist
115
116 rpmroot:
117         rm -rf $(RPMBUILD)
118         mkdir -p $(RPMBUILD)/BUILD
119         mkdir -p $(RPMBUILD)/RPMS
120         mkdir -p $(RPMBUILD)/SOURCES
121         mkdir -p $(RPMBUILD)/SPECS
122         mkdir -p $(RPMBUILD)/SRPMS
123
124 rpmdistdir:
125         mkdir -p dist/rpms
126         mkdir -p dist/srpms
127
128 rpms: rpmroot rpmdistdir sdist
129         cp dist/ipsilon*.tar.gz $(RPMBUILD)/SOURCES/
130         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
131         mv $(RPMBUILD)/RPMS/*/ipsilon-*.rpm dist/rpms/
132         mv $(RPMBUILD)/SRPMS/ipsilon-*.src.rpm dist/srpms/
133         rm -rf $(RPMBUILD)
134
135 releaserpms: rpmroot rpmdistdir sdist
136         cp dist/ipsilon*.tar.gz $(RPMBUILD)/SOURCES/
137         rpmbuild --define "_topdir $(RPMBUILD)" -ba contrib/fedora/ipsilon.spec
138         mv $(RPMBUILD)/RPMS/*/ipsilon-*.rpm dist/rpms/
139         mv $(RPMBUILD)/SRPMS/ipsilon-*.src.rpm dist/srpms/
140         rm -rf $(RPMBUILD)