forked from OSInside/kiwi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
129 lines (114 loc) · 4.12 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
buildroot = /
python_version = 3
python_lookup_name = python$(python_version)
python = $(shell which $(python_lookup_name))
LC = LC_MESSAGES
version := $(shell \
$(python) -c \
'from kiwi.version import __version__; print(__version__)'\
)
.PHONY: test
test:
tox -e unit_py3_4
tox -e unit_py3_6
flake:
tox -e check
.PHONY: tools
tools:
# apart from all python source we need to compile the
# C tools. see setup.py for details when this target is
# called
${MAKE} -C tools all
install:
# apart from all python source we also need to install
# the C tools, the manual pages and the completion
# see setup.py for details when this target is called
${MAKE} -C tools buildroot=${buildroot} install
# dracut modules
install -d -m 755 ${buildroot}usr/lib/dracut/modules.d
cp -a dracut/modules.d/* ${buildroot}usr/lib/dracut/modules.d
# manual pages
install -d -m 755 ${buildroot}usr/share/man/man8
for man in doc/build/man/*.8; do \
test -e $$man && gzip -f $$man || true ;\
done
for man in doc/build/man/*.8.gz; do \
install -m 644 $$man ${buildroot}usr/share/man/man8 ;\
done
# completion
install -d -m 755 ${buildroot}etc/bash_completion.d
$(python) helper/completion_generator \
> ${buildroot}etc/bash_completion.d/kiwi-ng-${python_version}.sh
# license
install -d -m 755 ${buildroot}/usr/share/doc/packages/python-kiwi
install -m 644 LICENSE \
${buildroot}/usr/share/doc/packages/python-kiwi/LICENSE
install -m 644 README.rst \
${buildroot}/usr/share/doc/packages/python-kiwi/README
tox:
tox
kiwi/schema/kiwi.rng: kiwi/schema/kiwi.rnc
# whenever the schema is changed this target will convert
# the short form of the RelaxNG schema to the format used
# in code and auto generates the python data structures
trang -I rnc -O rng kiwi/schema/kiwi.rnc kiwi/schema/kiwi.rng
# XML parser code is auto generated from schema using generateDS
# http://pythonhosted.org/generateDS
# ---
# a) modify arch-name xsd:token pattern to be generic because
# generateDS translates the regular expression into another
# expression which is different and wrong compared to the
# expression in the schema
cat kiwi/schema/kiwi.rnc | sed -e \
s'@arch-name = xsd:token.*@arch-name = xsd:token {pattern = ".*"}@' >\
kiwi/schema/kiwi_modified_for_generateDS.rnc
# convert schema rnc format into xsd format and call generateDS
trang -I rnc -O xsd kiwi/schema/kiwi_modified_for_generateDS.rnc \
kiwi/schema/kiwi_for_generateDS.xsd
generateDS.py -f --external-encoding='utf-8' --no-dates --no-warnings \
-o kiwi/xml_parse.py kiwi/schema/kiwi_for_generateDS.xsd
rm kiwi/schema/kiwi_for_generateDS.xsd
rm kiwi/schema/kiwi_modified_for_generateDS.rnc
obs_test_status:
./.obs_test_status
valid:
for i in `find build-tests test kiwi -name *.xml -o -name *.kiwi`; do \
if [ ! -L $$i ];then \
xsltproc -o $$i.converted kiwi/xsl/master.xsl $$i && \
mv $$i.converted $$i ;\
fi \
done
git_attributes:
# the following is required to update the $Format:%H$ git attribute
# for details on when this target is called see setup.py
git archive HEAD kiwi/version.py | tar -x
clean_git_attributes:
# cleanup version.py to origin state
# for details on when this target is called see setup.py
git checkout kiwi/version.py
build: clean tox
# create setup.py variant for rpm build.
# delete module versions from setup.py for building an rpm
# the dependencies to the python module rpm packages is
# managed in the spec file
sed -ie "s@>=[0-9.]*'@'@g" setup.py
# build the sdist source tarball
$(python) setup.py sdist
# restore original setup.py backed up from sed
mv setup.pye setup.py
# provide rpm source tarball
mv dist/kiwi-${version}.tar.gz dist/python-kiwi.tar.gz
# provide rpm changelog from git changelog
git log | helper/changelog_generator |\
helper/changelog_descending > dist/python-kiwi.changes
# update package version in spec file
cat package/python-kiwi-spec-template | sed -e s'@%%VERSION@${version}@' \
> dist/python-kiwi.spec
# provide rpm rpmlintrc
cp package/python-kiwi-rpmlintrc dist
pypi: clean tox
$(python) setup.py sdist upload
clean: clean_git_attributes
rm -rf dist
rm -rf build
${MAKE} -C tools clean