Add missing requirement on mod_ssl for ipsilon-client
[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         PYTHONPATH=./ ./tests/tests.py --test=test1
94         PYTHONPATH=./ ./tests/tests.py --test=testlogout
95         PYTHONPATH=./ ./tests/tests.py --test=testnameid
96         PYTHONPATH=./ ./tests/tests.py --test=testrest
97         PYTHONPATH=./ ./tests/tests.py --test=testmapping
98         PYTHONPATH=./ ./tests/tests.py --test=testgssapi
99         PYTHONPATH=./ ./tests/tests.py --test=attrs
100         PYTHONPATH=./ ./tests/tests.py --test=trans
101         PYTHONPATH=./ ./tests/tests.py --test=pgdb
102         PYTHONPATH=./ ./tests/tests.py --test=fconf
103         PYTHONPATH=./ ./tests/tests.py --test=ldap
104         PYTHONPATH=./ ./tests/tests.py --test=openid
105
106 test: lp-test unittests tests
107
108 unittests:
109         PYTHONPATH=./ ./ipsilon/tools/saml2metadata.py
110         PYTHONPATH=./ python ./ipsilon/util/policy.py
111
112 sdist:
113         python setup.py sdist
114
115 rpmroot:
116         rm -rf $(RPMBUILD)
117         mkdir -p $(RPMBUILD)/BUILD
118         mkdir -p $(RPMBUILD)/RPMS
119         mkdir -p $(RPMBUILD)/SOURCES
120         mkdir -p $(RPMBUILD)/SPECS
121         mkdir -p $(RPMBUILD)/SRPMS
122
123 rpmdistdir:
124         mkdir -p dist/rpms
125         mkdir -p dist/srpms
126
127 rpms: rpmroot rpmdistdir sdist
128         cp dist/ipsilon*.tar.gz $(RPMBUILD)/SOURCES/
129         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
130         mv $(RPMBUILD)/RPMS/*/ipsilon-*.rpm dist/rpms/
131         mv $(RPMBUILD)/SRPMS/ipsilon-*.src.rpm dist/srpms/
132         rm -rf $(RPMBUILD)
133
134 releaserpms: rpmroot rpmdistdir sdist
135         cp dist/ipsilon*.tar.gz $(RPMBUILD)/SOURCES/
136         rpmbuild --define "_topdir $(RPMBUILD)" -ba contrib/fedora/ipsilon.spec
137         mv $(RPMBUILD)/RPMS/*/ipsilon-*.rpm dist/rpms/
138         mv $(RPMBUILD)/SRPMS/ipsilon-*.src.rpm dist/srpms/
139         rm -rf $(RPMBUILD)