0a506ceaeb1f1ec4bf981df9a871487e22e67fcb
[scm/bb/tizen.git] / proto-meta-Tizen_generic / rpm_tizen_macro / lib / tizen_macros
1 # directories
2 %_infodir               ${infodir}
3 %_mandir                ${mandir}
4 %_sysconfdir            %{_buildPrefix}${sysconfdir}
5 %_localstatedir         %{_buildPrefix}${localstatedir}
6 %_defaultdocdir         %{_usr}/share/doc/packages
7 %_unitdir_user ${systemd_unitdir}/user
8 %_unitdir ${systemd_unitdir}/system
9
10 # package build macros
11 # %make_install           make install DESTDIR=%{?buildroot}
12 # %makeinstall            make DESTDIR=%{?buildroot:%{buildroot}} install
13 %rb_arch                %(echo %{_host_cpu}-linux | sed -e "s/i686/i586/" -e "s/armv5tel/armv4l/" -e "s/hppa2.0/hppa/")
14 %rb_ver                 %(/usr/bin/ruby -e 'puts VERSION.sub(/\\\.\\\d$/, "")')
15
16 # this script calls all scripts in /usr/lib/rpm/brp-tizen.d
17 %__os_install_post  \
18         /usr/lib/rpm/brp-compress \
19         /usr/lib/rpm/brp-tizen  \
20         %{!?disable_docs_package:/usr/lib/rpm/tizen/find-docs.sh %{buildroot}} \
21 %{nil}
22
23 # macro: %configure_kernel_source
24 #
25 #
26 %configure_kernel_source() \
27         if test -d /usr/src/linux ; then \
28             pushd /usr/src/linux \
29             test -f .config || cp arch/%_arch/defconfig.default .config \
30             yes "" | make oldconfig \
31             make dep \
32             popd \
33         fi \
34         %nil
35
36 %install_info(:-:) \
37     ALL_ARGS=(%{**}) \
38     NUM_ARGS=${#ALL_ARGS[@]} \
39     if test -x /sbin/install-info ; then \
40         if test -e "${ALL_ARGS[$((NUM_ARGS-1))]}" ; then \
41             /sbin/install-info "${ALL_ARGS[@]}" \
42         fi \
43     fi ;
44
45 %install_info_delete(:-:) \
46     ALL_ARGS=(%{**}) \
47     NUM_ARGS=${#ALL_ARGS[@]} \
48     if test -x /sbin/install-info ; then \
49         if ! test -e "${ALL_ARGS[$((NUM_ARGS-1))]}" ; then \
50             /sbin/install-info --quiet --delete "${ALL_ARGS[@]}" \
51         fi ; \
52     fi ;
53
54 # find-supplements.ksyms parses this macro directly out of the spec file:
55 %supplements_kernel_module() \
56     %{expand:%(if ! rpm -q kernel-syms > /dev/null; then echo "%fail Please add the kernel-syms package to BuildRequires"; fi)}
57
58 %do_profiling 0
59 %cflags_profile_generate -fprofile-generate
60 %cflags_profile_feedback -fprofile-use
61
62
63
64 # Tizen
65 #
66 %configure \
67  %{_configure} 
68
69 %reconfigure \
70  %{_configure} 
71
72 %autogen \
73  %reconfigure
74
75
76 %makeinstall \
77   %{__make} \\\
78         DESTDIR=%{?buildroot:%{buildroot}} \\\
79         BINDIR=%{_bindir} \\\
80         prefix=%{_prefix} \\\
81         exec_prefix=%{_exec_prefix} \\\
82         bindir=%{_bindir} \\\
83         sbindir=%{_sbindir} \\\
84         sysconfdir=%{_sysconfdir} \\\
85         datadir=%{_datadir} \\\
86         includedir=%{_includedir} \\\
87         libdir=%{_libdir} \\\
88         libexecdir=%{_libexecdir} \\\
89         localstatedir=}%{_localstatedir} \\\
90         sharedstatedir=%{_sharedstatedir} \\\
91         mandir=%{_mandir} \\\
92         infodir=%{_infodir} \\\
93   install
94
95
96 %make_install \
97   %{__make} \\\
98         DESTDIR=%{?buildroot:%{buildroot}} \\\
99         INSTALL_ROOT=%{?buildroot:%{buildroot}} \\\
100         BINDIR=%{_bindir} \\\
101   install  \
102   rm -f %{?buildroot:%{buildroot}}%{_infodir}/dir \
103   find %{?buildroot:%{buildroot}} -regex ".*\\.la$" | xargs rm -f -- \
104   %{!?keepstatic:find %{?buildroot:%{buildroot}} -regex ".*\\.a$" | xargs rm -f --}
105
106 %_smp_mflags \${PARALLEL_MAKE}
107
108 %lang_package(n:f:) \
109 %package %{-n:-n %{-n*}-}locale \
110 Summary: Translations and Locale for package %{name}\
111 Group: System/Localization\
112 Requires: %{-n:%{-n*}}%{!-n:%{name}} = %{version} \
113 Provides: %{-n:%{-n*}}%{!-n:%{name}}-lang-all = %{version} \
114 BuildArch:  noarch \
115 %description %{-n:-n %{-n*}-}locale\
116 This package provides translations for package %{name}.\
117 %files %{-n:-n %{-n*}-}locale -f %{-f:%{-f*}.lang} %{!-f:%{name}.lang}\
118 %defattr(-,root,root,-)\
119 %{nil}
120
121 %docs_package \
122 %package docs \
123 Summary: Documentation for package %{name}\
124 Group: Documentation\
125 AutoReqProv: 0\
126 %description docs\
127 This package provides documentation for package %{name}.\
128 %files docs -f documentation.list\
129 %defattr(-,root,root,-)\
130 %{nil}
131
132 # Bad hack to set $LANG to C during all RPM builds
133 %prep \
134 %%prep\
135 LANG=C\
136 export LANG\
137 unset DISPLAY\
138 %{nil}
139
140 %build %%build\
141 LANG=C\
142 export LANG\
143 unset DISPLAY\
144 LD_AS_NEEDED=1; export LD_AS_NEEDED ;\
145 %{nil}
146
147 %install %{?_enable_debug_packages:%{?buildsubdir:%{debug_package}}}\
148 %%install\
149 LANG=C\
150 export LANG\
151 unset DISPLAY\
152 rm -rf %{?buildroot:%{buildroot}}\
153 mkdir -p %{?buildroot:%{buildroot}}\
154 %{nil}
155
156
157 %clean %%clean\
158 rm -rf %{?buildroot:%{buildroot}}\
159 %{nil}
160
161 %find_lang      %{_rpmconfigdir}/lib/find-lang.sh \${D}%{_buildPrefix}
162 %find_docs      %{_rpmconfigdir}/lib/tizen/find-docs.sh %{buildroot}
163
164
165
166 #==============================================================================
167 # ---- default .desktop directories per the desktop-entry freedesktop.org spec
168
169 %_desktopdir    %{_datadir}/applications
170
171 #==============================================================================
172 # ---- Generic auto req/prov filtering macros
173 #
174 # http://fedoraproject.org/wiki/PackagingDrafts/AutoProvidesAndRequiresFiltering
175
176 # prevent anything matching from being scanned for provides
177 %filter_provides_in(P) %{expand: \
178 %global __filter_prov_cmd %{?__filter_prov_cmd} %{__grep} -v %{-P} '%*' | \
179 }
180
181 # prevent anything matching from being scanned for requires
182 %filter_requires_in(P) %{expand: \
183 %global __filter_req_cmd %{?__filter_req_cmd} %{__grep} -v %{-P} '%*' | \
184 }
185
186 # filter anything matching out of the provides stream
187 %filter_from_provides() %{expand: \
188 %global __filter_from_prov %{?__filter_from_prov} | %{__sed} -e '%*' \
189 }
190
191 # filter anything matching out of the requires stream
192 %filter_from_requires() %{expand: \
193 %global __filter_from_req %{?__filter_from_req} | %{__sed} -e '%*' \
194 }
195
196 # actually set up the filtering bits
197 %filter_setup %{expand: \
198 %global _use_internal_dependency_generator 0 \
199 %global __deploop() while read FILE; do /usr/lib/rpm/rpmdeps -%{1} ${FILE}; done | /bin/sort -u \
200 %global __find_provides /bin/sh -c "%{?__filter_prov_cmd} %{__deploop P} %{?__filter_from_prov}" \
201 %global __find_requires /bin/sh -c "%{?__filter_req_cmd}  %{__deploop R} %{?__filter_from_req}" \
202 }
203
204 %remove_docs \
205   rm -rf %{?buildroot:%{buildroot}}%{_infodir} \
206   rm -rf %{?buildroot:%{buildroot}}%{_defaultdocdir} \
207   rm -rf %{?buildroot:%{buildroot}}%{_datadir}/doc/%{name} \
208   rm -rf %{?buildroot:%{buildroot}}%{_datadir}/doc/%{name}-%{version} \
209   rm -rf %{?buildroot:%{buildroot}}%{_datadir}/gtk-doc \
210   rm -rf %{?buildroot:%{buildroot}}%{_datadir}/doc \
211   rm -rf %{?buildroot:%{buildroot}}%{_datadir}/man \
212   find %{?buildroot:%{buildroot}} -regex ".*/man/man./.*\.[0-9]" | xargs rm -f -- \
213   find %{?buildroot:%{buildroot}} -regex ".*/man/../man./.*\.[0-9]" | xargs rm -f -- \
214   find %{?buildroot:%{buildroot}} -regex ".*/man/man./.*\.[0-9]pm" | xargs rm -f --
215
216
217 %install_service() \
218 mkdir -p %{buildroot}/%{_unitdir}/%{1} \
219 ln -s ../%{2}  %{buildroot}/%{_unitdir}/%{1}/%{2}  \
220 %{nil}
221
222
223 %_fontsdir               %{_usr}/share/fonts
224 %_ttfontsdir             %{_fontsdir}/truetype
225 %_miscfontsdir           %{_fontsdir}/misc
226 %_fontsconfdir           %{_sysconfdir}/fonts
227 %_fontsconfddir          %{_fontsconfdir}/conf.d
228 %_fontsconfavaildir      %{_datadir}/%{name}/conf.avail
229
230 %devel_package \
231 %package devel \
232 Summary: Development files for package %{name}\
233 Group: Development\
234 %description devel\
235 This package provides header files and other developer releated files for package %{name}.\
236 %files devel \
237 %{_includedir}/*\
238 %{_libdir}/pkgconfig/*.pc\
239 %{_libdir}/*.so\
240 %{nil}
241
242 %devel_desc This package contains all necessary include files and libraries needed \
243 to develop applications that require %{name}.\
244 %{nil}
245