]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # TODO: | |
3 | # - think about building MPI. | |
4 | # - split shared libs from core package into -iostreams/-serialization. | |
5 | # | |
6 | # Conditional build: | |
7 | %bcond_without python2 # boost-python[2] support | |
8 | %bcond_without python3 # boost-python3 support | |
9 | %bcond_without numpy # boost-numpy support | |
10 | ||
11 | %define fver %(echo %{version} | tr . _) | |
12 | Summary: The Boost C++ Libraries | |
13 | Summary(pl.UTF-8): Biblioteki C++ "Boost" | |
14 | Name: boost | |
15 | Version: 1.70.0 | |
16 | Release: 2 | |
17 | License: Boost Software License and others | |
18 | Group: Libraries | |
19 | Source0: http://downloads.sourceforge.net/boost/%{name}_%{fver}.tar.bz2 | |
20 | # Source0-md5: 242ecc63507711d6706b9b0c0d0c7d4f | |
21 | Patch0: %{name}-link.patch | |
22 | Patch1: %{name}-clean-gcc-flags.patch | |
23 | # FC Patches: | |
24 | Patch201: %{name}-python-abi_letters.patch | |
25 | # https://svn.boost.org/trac/boost/ticket/5637 | |
26 | Patch203: %{name}-1.54.0-mpl-print.patch | |
27 | # https://svn.boost.org/trac/boost/ticket/8881 | |
28 | Patch221: %{name}-1.54.0-mpi-unused_typedef.patch | |
29 | URL: http://www.boost.org/ | |
30 | BuildRequires: bzip2-devel | |
31 | BuildRequires: expat-devel | |
32 | BuildRequires: libicu-devel | |
33 | BuildRequires: libstdc++-devel >= 6:4.7 | |
34 | BuildRequires: perl-base | |
35 | %if %{with python} | |
36 | BuildRequires: python-devel >= 2.2 | |
37 | %{?with_numpy:BuildRequires: python-numpy-devel} | |
38 | %endif | |
39 | %if %{with python3} | |
40 | BuildRequires: python3-devel | |
41 | %{?with_numpy:BuildRequires: python3-numpy-devel} | |
42 | %endif | |
43 | BuildRequires: rpm-pythonprov | |
44 | BuildRequires: rpmbuild(macros) >= 1.734 | |
45 | BuildRequires: zlib-devel | |
46 | Obsoletes: boost-signals | |
47 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
48 | ||
49 | %define specflags -DBOOST_IOSTREAMS_USE_DEPRECATED=1 | |
50 | ||
51 | %define py2v %(echo %{py_ver} | tr -d .) | |
52 | %define py3v %(echo %{py3_ver} | tr -d .) | |
53 | ||
54 | %description | |
55 | The Boost web site provides free peer-reviewed portable C++ source | |
56 | libraries. The emphasis is on libraries which work well with the C++ | |
57 | Standard Library. One goal is to establish "existing practice" and | |
58 | provide reference implementations so that the Boost libraries are | |
59 | suitable for eventual standardization. Some of the libraries have | |
60 | already been proposed for inclusion in the C++ Standards Committee's | |
61 | upcoming C++ Standard Library Technical Report. | |
62 | ||
63 | %description -l pl.UTF-8 | |
64 | Strona http://www.boost.org/ dostarcza darmowe biblioteki C++ wraz z | |
65 | kodem źródłowym. Nacisk położono na biblioteki, które dobrze | |
66 | współpracują ze standardową biblioteką C++. Celem jest ustanowienie | |
67 | "istniejącej praktyki" i dostarczenie implementacji, tak że biblioteki | |
68 | "Boost" nadają się do ewentualnej standaryzacji. Niektóre z bibliotek | |
69 | już zostały zgłoszone do komitetu standaryzacyjnego C++ w nadchodzącym | |
70 | Raporcie Technicznym Biblioteki Standardowej C++. | |
71 | ||
72 | %package devel | |
73 | Summary: Boost C++ development headers | |
74 | Summary(pl.UTF-8): Pliki nagłówkowe bibliotek C++ Boost | |
75 | Group: Development/Libraries | |
76 | Requires: %{name} = %{version}-%{release} | |
77 | Requires: %{name}-chrono = %{version}-%{release} | |
78 | Requires: %{name}-context = %{version}-%{release} | |
79 | Requires: %{name}-date_time = %{version}-%{release} | |
80 | Requires: %{name}-fiber = %{version}-%{release} | |
81 | Requires: %{name}-filesystem = %{version}-%{release} | |
82 | Requires: %{name}-graph = %{version}-%{release} | |
83 | Requires: %{name}-locale = %{version}-%{release} | |
84 | Requires: %{name}-log = %{version}-%{release} | |
85 | Requires: %{name}-program_options = %{version}-%{release} | |
86 | Requires: %{name}-regex = %{version}-%{release} | |
87 | Requires: %{name}-system = %{version}-%{release} | |
88 | Requires: %{name}-test = %{version}-%{release} | |
89 | Requires: %{name}-thread = %{version}-%{release} | |
90 | Requires: %{name}-timer = %{version}-%{release} | |
91 | Requires: %{name}-wave = %{version}-%{release} | |
92 | Requires: libstdc++-devel >= 6:4.7 | |
93 | Obsoletes: boost-any-devel | |
94 | Obsoletes: boost-array-devel | |
95 | Obsoletes: boost-asio | |
96 | Obsoletes: boost-bind-devel | |
97 | Obsoletes: boost-call_traits-devel | |
98 | Obsoletes: boost-compatibility-devel | |
99 | Obsoletes: boost-compose-devel | |
100 | Obsoletes: boost-compressed_pair-devel | |
101 | Obsoletes: boost-concept_check-devel | |
102 | Obsoletes: boost-conversion-devel | |
103 | Obsoletes: boost-crc-devel | |
104 | Obsoletes: boost-date_time-devel | |
105 | Obsoletes: boost-filesystem-devel | |
106 | Obsoletes: boost-graph-devel | |
107 | Obsoletes: boost-mem_fn-devel | |
108 | Obsoletes: boost-mpl-devel | |
109 | Obsoletes: boost-preprocessor-devel | |
110 | Obsoletes: boost-program_options-devel | |
111 | Obsoletes: boost-ref-devel | |
112 | Obsoletes: boost-regex-devel | |
113 | Obsoletes: boost-signals-devel | |
114 | Obsoletes: boost-spirit-devel | |
115 | Obsoletes: boost-statechart-devel | |
116 | Obsoletes: boost-static_assert-devel | |
117 | Obsoletes: boost-test-devel | |
118 | Obsoletes: boost-thread-devel | |
119 | Obsoletes: boost-tr1-devel | |
120 | Obsoletes: boost-type_traits-devel | |
121 | Obsoletes: boost-typeof-devel | |
122 | Obsoletes: boost-uBLAS-devel | |
123 | Obsoletes: boost-utility-devel | |
124 | Obsoletes: boost-wave-devel | |
125 | Obsoletes: boost-xpressive-devel | |
126 | ||
127 | %description devel | |
128 | Header files for the Boost C++ libraries. | |
129 | ||
130 | %description devel -l pl.UTF-8 | |
131 | Pliki nagłówkowe bibliotek C++ Boost. | |
132 | ||
133 | %package static | |
134 | Summary: Static version of base Boost C++ libraries | |
135 | Summary(pl.UTF-8): Statyczne wersje podstawowych bibliotek C++ Boost | |
136 | Group: Development/Libraries | |
137 | Requires: %{name}-devel = %{version}-%{release} | |
138 | Obsoletes: boost-static < 1.33 | |
139 | ||
140 | %description static | |
141 | Static version of base Boost C++ libraries. | |
142 | ||
143 | %description static -l pl.UTF-8 | |
144 | Statyczne wersje podstawowych bibliotek C++ Boost. | |
145 | ||
146 | %package python-devel-common | |
147 | Summary: Boost.Python development headers | |
148 | Summary(pl.UTF-8): Pliki nagłówkowe biblioteki Boost.Python | |
149 | Group: Development/Libraries | |
150 | Requires: %{name}-devel = %{version}-%{release} | |
151 | ||
152 | %description python-devel-common | |
153 | Headers for the Boost.Python library. | |
154 | ||
155 | %description python-devel-common -l pl.UTF-8 | |
156 | Pliki nagłówkowe biblioteki Boost.Python. | |
157 | ||
158 | %package python | |
159 | Summary: Boost.Python library for Python 2 | |
160 | Summary(pl.UTF-8): Biblioteka Boost.Python dla Pythona 2 | |
161 | Group: Libraries | |
162 | Requires: python-libs | |
163 | ||
164 | %description python | |
165 | Use the Boost Python Library to quickly and easily export a C++ | |
166 | library to Python 2 such that the Python 2 interface is very similar | |
167 | to the C++ interface. It is designed to be minimally intrusive on your | |
168 | C++ design. In most cases, you should not have to alter your C++ | |
169 | classes in any way in order to use them with Boost.Python. The system | |
170 | should simply ``reflect'' your C++ classes and functions into Python | |
171 | 3. | |
172 | ||
173 | %description python -l pl.UTF-8 | |
174 | Biblioteka Boost Python służy do szybkiego i prostego eksportu | |
175 | biblioteki C++ do Pythona 2, tak że interfejs Pythona 2 jest bardzo | |
176 | podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby | |
177 | narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W | |
178 | większości przypadków nie trzeba w ogóle zmieniać własnych klas C++, | |
179 | żeby używać ich z Boost.Python. System powinien po prostu ,,odbić'' | |
180 | klasy C++ i funkcje do Pythona 3. | |
181 | ||
182 | %package python-devel | |
183 | Summary: Boost.Python development files for Python 2 | |
184 | Summary(pl.UTF-8): Pliki programistyczne biblioteki Boost.Python dla Pythona 2 | |
185 | Group: Development/Libraries | |
186 | Requires: %{name}-devel = %{version}-%{release} | |
187 | Requires: %{name}-python = %{version}-%{release} | |
188 | Requires: %{name}-python-devel-common = %{version}-%{release} | |
189 | ||
190 | %description python-devel | |
191 | Boost.Python development files for Python 2. | |
192 | ||
193 | %description python-devel -l pl.UTF-8 | |
194 | Pliki programistyczne biblioteki Boost.Python dla Pythona 2. | |
195 | ||
196 | %package python-static | |
197 | Summary: Static version of Boost.Python library for Python 2 | |
198 | Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python dla Pythona 2 | |
199 | Group: Development/Libraries | |
200 | Requires: %{name}-python-devel = %{version}-%{release} | |
201 | ||
202 | %description python-static | |
203 | Static version of Boost.Python library for Python 2. | |
204 | ||
205 | %description python-static -l pl.UTF-8 | |
206 | Statyczna wersja biblioteki Boost.Python dla Pythona 2. | |
207 | ||
208 | %package python3 | |
209 | Summary: Boost.Python library for Python 3 | |
210 | Summary(pl.UTF-8): biblioteka Boost.Python dla Pythona 3 | |
211 | Group: Libraries | |
212 | Requires: python3-libs | |
213 | ||
214 | %description python3 | |
215 | Use the Boost Python Library to quickly and easily export a C++ | |
216 | library to Python 3 such that the Python 3 interface is very similar | |
217 | to the C++ interface. It is designed to be minimally intrusive on your | |
218 | C++ design. In most cases, you should not have to alter your C++ | |
219 | classes in any way in order to use them with Boost.Python. The system | |
220 | should simply ``reflect'' your C++ classes and functions into Python | |
221 | 3. | |
222 | ||
223 | %description python3 -l pl.UTF-8 | |
224 | Biblioteka Boost Python służy do szybkiego i prostego eksportu | |
225 | biblioteki C++ do Pythona 3, tak że interfejs Pythona 3 jest bardzo | |
226 | podobny do interfejsu C++. Biblioteka jest zaprojektowana tak, żeby | |
227 | narzucać jak najmniej wymagań dotyczących konstrukcjii C++. W | |
228 | większości przypadków nie trzeba w ogóle zmieniać własnych klas C++, | |
229 | żeby używać ich z Boost.Python. System powinien po prostu ,,odbić'' | |
230 | klasy C++ i funkcje do Pythona 3. | |
231 | ||
232 | %package python3-devel | |
233 | Summary: Boost.Python development files for Python 3 | |
234 | Summary(pl.UTF-8): Pliki programistyczne biblioteki Boost.Python dla Pythona 3 | |
235 | Group: Development/Libraries | |
236 | Requires: %{name}-devel = %{version}-%{release} | |
237 | Requires: %{name}-python-devel-common = %{version}-%{release} | |
238 | Requires: %{name}-python3 = %{version}-%{release} | |
239 | ||
240 | %description python3-devel | |
241 | Boost.Python development files for Python 3. | |
242 | ||
243 | %description python3-devel -l pl.UTF-8 | |
244 | Pliki programistyczne biblioteki Boost.Python dla Pythona 3. | |
245 | ||
246 | %package python3-static | |
247 | Summary: Static version of Boost.Python library for Python 3 | |
248 | Summary(pl.UTF-8): Statyczna wersja biblioteki Boost.Python dla Pythona 3 | |
249 | Group: Development/Libraries | |
250 | Requires: %{name}-python3-devel = %{version}-%{release} | |
251 | ||
252 | %description python3-static | |
253 | Static version of Boost.Python library for Python 3. | |
254 | ||
255 | %description python3-static -l pl.UTF-8 | |
256 | Statyczna wersja biblioteki Boost.Python dla Pythona 3. | |
257 | ||
258 | %package chrono | |
259 | Summary: Useful time utilities | |
260 | Summary(pl.UTF-8): Przydatne funkcje związane z czasem | |
261 | Group: Libraries | |
262 | Obsoletes: boost < 1.33 | |
263 | ||
264 | %description chrono | |
265 | Useful time utilities. | |
266 | ||
267 | %description chrono -l pl.UTF-8 | |
268 | Przydatne funkcje związane z czasem. | |
269 | ||
270 | %package context | |
271 | Summary: Boost.Context - context switching library | |
272 | Summary(pl.UTF-8): Boost.Context - biblioteka do zmiany kontekstu | |
273 | Group: Libraries | |
274 | ||
275 | %description context | |
276 | Boost.Context - context switching library, providing a sort of | |
277 | cooperative multitasking on a single thread. | |
278 | ||
279 | %description context -l pl.UTF-8 | |
280 | Boost.Context - biblioteka do zmiany kontekstu, zapewniająca pewną | |
281 | wielozadaniowość kooperatywnąw ramach pojedynczego wątku. | |
282 | ||
283 | %package date_time | |
284 | Summary: Date-Time library | |
285 | Summary(pl.UTF-8): Biblioteka daty-czasu | |
286 | Group: Libraries | |
287 | Obsoletes: boost < 1.33 | |
288 | ||
289 | %description date_time | |
290 | A set of date-time libraries. | |
291 | ||
292 | %description date_time -l pl.UTF-8 | |
293 | Zbiór bibliotek daty-czasu. | |
294 | ||
295 | %package fiber | |
296 | Summary: A framework for micro-/userland-threads (fibers) scheduled cooperatively | |
297 | Summary(pl.UTF-8): Szkielet mikrowątków przestrzeni użytkownika (fibers), szeregowanych kooperacyjnie | |
298 | Group: Libraries | |
299 | ||
300 | %description fiber | |
301 | boost::fiber provides a framework for micro-/userland-threads (fibers) | |
302 | scheduled cooperatively. The API contains classes and functions | |
303 | to manage and synchronize fibers similiar to boost.thread. | |
304 | ||
305 | %description fiber -l pl.UTF-8 | |
306 | boost::fiber to szkielt mikrowątków przestrzeni użytkownika (fibers) | |
307 | szeregowanych kooperacyjnie. API zawiera klasy i funkcje służące do | |
308 | zarządzania i synchronizacji wątków podobne do boost.thread. | |
309 | ||
310 | %package filesystem | |
311 | Summary: Portable paths, iteration over directories, and other useful filesystem operations | |
312 | Summary(pl.UTF-8): Przenośne ścieżki, iteracje katalogów i inne użyteczne operacje na systemie plików | |
313 | Group: Libraries | |
314 | Requires: %{name}-system = %{version}-%{release} | |
315 | Obsoletes: boost < 1.33 | |
316 | ||
317 | %description filesystem | |
318 | The boost::filesystem library provides portable facilities to query | |
319 | and manipulate paths, files, and directories. | |
320 | ||
321 | %description filesystem -l pl.UTF-8 | |
322 | Przenośna biblioteka boost::filesystem dostarcza ułatwienia w | |
323 | operacjach na ścieżkach, plikach i katalogach. | |
324 | ||
325 | %package graph | |
326 | Summary: General purpose, generic C++ library for graph data structures and graph algorithms | |
327 | Summary(pl.UTF-8): Biblioteka ogólnego przeznaczenia w C++ dla struktur danych typu grafy oraz algorytmów związanych z grafami | |
328 | Group: Libraries | |
329 | ||
330 | %description graph | |
331 | The boost::graph library provides portable facilities to operate on | |
332 | graph data structures using graph algorithms. | |
333 | ||
334 | %description graph -l pl.UTF-8 | |
335 | Przenośna biblioteka boost::graph dostarcza ułatwienia w operacjach na | |
336 | strukturach danych typu graf za pomocą algorytmów związanych z | |
337 | grafami. | |
338 | ||
339 | %package locale | |
340 | Summary: Provide localization and Unicode handling tools for C++ | |
341 | Summary(pl.UTF-8): Narzędzia do obsługi lokalizacji i Unikodu w C++ | |
342 | Group: Libraries | |
343 | ||
344 | %description locale | |
345 | Provide localization and Unicode handling tools for C++. | |
346 | ||
347 | %description locale -l pl.UTF-8 | |
348 | Narzędzia do obsługi lokalizacji i Unikodu w C++. | |
349 | ||
350 | %package log | |
351 | Summary: Provide logging tools for C++ | |
352 | Summary(pl.UTF-8): Narzędzia do logowania w C++ | |
353 | Group: Libraries | |
354 | ||
355 | %description log | |
356 | Provide logging tools for C++. | |
357 | ||
358 | %description log -l pl.UTF-8 | |
359 | Narzędzia do logowania w C++. | |
360 | ||
361 | %package program_options | |
362 | Summary: Access to program options, via conventional methods such as command line and config file | |
363 | Summary(pl.UTF-8): Dostęp do opcji programu za pomocą typowych metod, jak linia poleceń i plik konfiguracyjny | |
364 | Group: Libraries | |
365 | ||
366 | %description program_options | |
367 | The program_options library allows program developers to obtain | |
368 | program options, that is (name, value) pairs from the user, via | |
369 | conventional methods such as command line and config file. | |
370 | ||
371 | %description program_options -l pl.UTF-8 | |
372 | Biblioteka program_options umożliwia uzyskanie od użytkownika opcji | |
373 | programu, czyli par (nazwa, wartość), za pomocą typowych metod, takich | |
374 | jak linia poleceń, czy plik konfiguracyjny. | |
375 | ||
376 | %package regex | |
377 | Summary: Boost C++ regular expressions library | |
378 | Summary(pl.UTF-8): Biblioteka wyrażeń regularnych Boost C++ | |
379 | Group: Libraries | |
380 | ||
381 | %description regex | |
382 | Shared library for Boost C++ regular expressions. | |
383 | ||
384 | %description regex -l pl.UTF-8 | |
385 | Biblioteka współdzielona do obsługi wyrażeń regularnych w C++. | |
386 | ||
387 | %package system | |
388 | Summary: Support for getting system specific error codes | |
389 | Summary(pl.UTF-8): Wsparcie dla pobierania specyficznych dla systemu kodów błędów | |
390 | Group: Libraries | |
391 | ||
392 | %description system | |
393 | The Boost System library provides simple, light-weight error_code | |
394 | objects that encapsulate system-specific error code values, yet also | |
395 | provide access to more abstract and portable error conditions objects. | |
396 | ||
397 | %description system -l pl.UTF-8 | |
398 | Biblioteka Boost System udostępnia proste, lekkie obiekty error_code | |
399 | obudowujące wartości kodów błędów specyficznych dla systemu, dając | |
400 | jednocześnie dostęp do bardziej abstrakcyjnych i przenośnych obiektów | |
401 | błędów. | |
402 | ||
403 | %package test | |
404 | Summary: Support for program testing and execution monitoring | |
405 | Summary(pl.UTF-8): Wsparcie dla testowania i monitorowania programu | |
406 | Group: Libraries | |
407 | Obsoletes: boost < 1.33 | |
408 | ||
409 | %description test | |
410 | Support for simple program testing, full unit testing, and for program | |
411 | execution monitoring. | |
412 | ||
413 | %description test -l pl.UTF-8 | |
414 | Wsparcie dla prostego testowania programu, pełnego testowania i | |
415 | monitorowania wykonania programu. | |
416 | ||
417 | %package thread | |
418 | Summary: Portable C++ threads library | |
419 | Summary(pl.UTF-8): Przenośna biblioteka wątków C++ | |
420 | Group: Libraries | |
421 | Obsoletes: boost < 1.33 | |
422 | ||
423 | %description thread | |
424 | Portable C++ threads library - shared library. | |
425 | ||
426 | %description thread -l pl.UTF-8 | |
427 | Przenośna biblioteka wątków dla C++ - biblioteka dzielona. | |
428 | ||
429 | %package timer | |
430 | Summary: Event timer, progress timer, and progress display classes | |
431 | Summary(pl.UTF-8): Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu | |
432 | Group: Libraries | |
433 | Obsoletes: boost < 1.33 | |
434 | ||
435 | %description timer | |
436 | Event timer, progress timer, and progress display classes. | |
437 | ||
438 | %description timer -l pl.UTF-8 | |
439 | Klasy do obsługi pomiarów czasu, postępu i wyświetlania postępu. | |
440 | ||
441 | %package wave | |
442 | Summary: Boost.Wave - a standard compliant C++ preprocessor library | |
443 | Summary(pl.UTF-8): Boost.Wave - zgodna ze standardem biblioteka preprocesora C++ | |
444 | Group: Development/Libraries | |
445 | ||
446 | %description wave | |
447 | Boost.Wave - a standard compliant C++ preprocessor library. | |
448 | ||
449 | %description wave -l pl.UTF-8 | |
450 | Boost.Wave - zgodna ze standardem biblioteka preprocesora C++. | |
451 | ||
452 | %package doc | |
453 | Summary: Boost C++ Library documentation | |
454 | Summary(pl.UTF-8): Dokumentacja dla biblioteki Boost C++ | |
455 | Group: Documentation | |
456 | %if "%{_rpmversion}" >= "5" | |
457 | BuildArch: noarch | |
458 | %endif | |
459 | ||
460 | %description doc | |
461 | Documentation for the Boost C++ Library. | |
462 | ||
463 | %description doc -l pl.UTF-8 | |
464 | Dokumentacja dla biblioteki Boost C++. | |
465 | ||
466 | %prep | |
467 | %setup -q -n %{name}_%{fver} | |
468 | %patch0 -p1 | |
469 | %patch1 -p1 | |
470 | ||
471 | %patch201 -p1 | |
472 | %patch203 -p0 | |
473 | %patch221 -p1 | |
474 | ||
475 | %if "%{cc_version}" < "6.0" | |
476 | CPPSTD="-std=c++11" | |
477 | %else | |
478 | CPPSTD= | |
479 | %endif | |
480 | cat << EOF > tools/build/src/user-config.jam | |
481 | using gcc : %{cxx_version} : %{__cxx} : <cflags>"%{rpmcflags} -fPIC" <cxxflags>"%{rpmcxxflags} $CPPSTD -fPIC" <linkflags>"%{rpmldflags}" ; | |
482 | EOF | |
483 | ||
484 | # cleanup backups after patching | |
485 | find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f | |
486 | ||
487 | %build | |
488 | EXPAT_INCLUDE=%{_includedir} \ | |
489 | EXPAT_LIBPATH=%{_libdir} \ | |
490 | ICU_PATH=%{_prefix} \ | |
491 | ./bootstrap.sh \ | |
492 | --prefix=%{_prefix} \ | |
493 | -without-libraries=python | |
494 | ||
495 | # x32 detection need help (it's autodetected as address-model=32 abi=sysv, while context build expects address-model=64 abi=x32) | |
496 | ./b2 \ | |
497 | -d2 --toolset=gcc \ | |
498 | %ifarch x32 | |
499 | abi=x32 \ | |
500 | address-model=64 \ | |
501 | %endif | |
502 | debug-symbols=on \ | |
503 | inlining=on \ | |
504 | link=static,shared \ | |
505 | threading=multi \ | |
506 | variant=release | |
507 | ||
508 | %if %{with python3} | |
509 | echo "using python : %{py3_ver} : %{py3_prefix} : %{py3_incdir} : : : : m ;" >> project-config.jam | |
510 | ./b2 \ | |
511 | --with-python python=%{py3_ver} \ | |
512 | -a -d2 --toolset=gcc \ | |
513 | debug-symbols=on \ | |
514 | inlining=on \ | |
515 | link=static,shared \ | |
516 | threading=multi \ | |
517 | variant=release | |
518 | %endif | |
519 | ||
520 | %if %{with python2} | |
521 | %{__sed} -i -e '/^using python : 3/d' project-config.jam | |
522 | echo "using python : %{py_ver} : %{py_prefix} : %{py_incdir} ;" >> project-config.jam | |
523 | ./b2 \ | |
524 | --with-python python=%{py_ver} \ | |
525 | -a -d2 --toolset=gcc \ | |
526 | debug-symbols=on \ | |
527 | inlining=on \ | |
528 | link=static,shared \ | |
529 | threading=multi \ | |
530 | variant=release | |
531 | %endif | |
532 | ||
533 | %install | |
534 | rm -rf $RPM_BUILD_ROOT | |
535 | install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}} | |
536 | ||
537 | cp -rf boost $RPM_BUILD_ROOT%{_includedir} | |
538 | ||
539 | install -p stage/lib/lib*.a $RPM_BUILD_ROOT%{_libdir} | |
540 | install -p stage/lib/lib*.so.*.*.* $RPM_BUILD_ROOT%{_libdir} | |
541 | cp -a stage/lib/lib*.so $RPM_BUILD_ROOT%{_libdir} | |
542 | ||
543 | # documentation | |
544 | install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version} | |
545 | ||
546 | # as the documentation doesn't completely reside in a directory of its | |
547 | # own, we need to find out ourselves... this looks for HTML files and | |
548 | # then collects everything linked from those. this is certainly quite | |
549 | # unoptimized wrt mkdir calls, but does it really matter? | |
550 | installdocs() { | |
551 | for i in $(find -type f -name '*.htm*'); do | |
552 | # bjam docu is included in the boost-jam RPM | |
553 | if test "`echo $i | sed 's,jam_src,,'`" = "$i"; then | |
554 | install -d $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/${i%/*} | |
555 | for LINKED in `%{__perl} - $i $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$i <<'EOT' | |
556 | sub rewrite_link | |
557 | { | |
558 | my $link = shift; | |
559 | # rewrite links from boost/* to %{_includedir}/boost/* and | |
560 | # ignore external links as well as document-internal ones. | |
561 | # HTML files are also ignored as they get installed anyway. | |
562 | if (!($link =~ s,^(?:../)*boost/,%{_includedir}/boost/,) && !($link =~ m,(?:^[^/]+:|^\#|\.html?(?:$|\#)),)) | |
563 | { | |
564 | (my $file = $link) =~ s/\#.*//; | |
565 | print "$file\n"; | |
566 | } | |
567 | $link; | |
568 | } | |
569 | open IN, @ARGV[0]; | |
570 | open OUT, ">@ARGV[1]"; | |
571 | my $in_link; | |
572 | while (<IN>) | |
573 | { | |
574 | $in_link and s/^\s*"([^"> ]*)"/'"' . rewrite_link($1) . '"'/e; | |
575 | s/(href|src)="([^"> ]*)"/"$1=\"" . rewrite_link($2) . '"'/eig; | |
576 | print OUT; | |
577 | $in_link = /href|src=\s*$/; | |
578 | } | |
579 | EOT`; do | |
580 | TARGET=${i%/*}/$LINKED | |
581 | # ignore non-existant linked files | |
582 | if test -f $TARGET; then | |
583 | install -D -m 644 $TARGET $RPM_BUILD_ROOT%{_docdir}/boost-%{version}/$TARGET | |
584 | fi | |
585 | done | |
586 | fi | |
587 | done | |
588 | }; installdocs | |
589 | ||
590 | %clean | |
591 | rm -rf $RPM_BUILD_ROOT | |
592 | ||
593 | %post -p /sbin/ldconfig | |
594 | %postun -p /sbin/ldconfig | |
595 | ||
596 | %post chrono -p /sbin/ldconfig | |
597 | %postun chrono -p /sbin/ldconfig | |
598 | ||
599 | %post context -p /sbin/ldconfig | |
600 | %postun context -p /sbin/ldconfig | |
601 | ||
602 | %post date_time -p /sbin/ldconfig | |
603 | %postun date_time -p /sbin/ldconfig | |
604 | ||
605 | %post fiber -p /sbin/ldconfig | |
606 | %postun fiber -p /sbin/ldconfig | |
607 | ||
608 | %post filesystem -p /sbin/ldconfig | |
609 | %postun filesystem -p /sbin/ldconfig | |
610 | ||
611 | %post graph -p /sbin/ldconfig | |
612 | %postun graph -p /sbin/ldconfig | |
613 | ||
614 | %post locale -p /sbin/ldconfig | |
615 | %postun locale -p /sbin/ldconfig | |
616 | ||
617 | %post python -p /sbin/ldconfig | |
618 | %postun python -p /sbin/ldconfig | |
619 | ||
620 | %post python3 -p /sbin/ldconfig | |
621 | %postun python3 -p /sbin/ldconfig | |
622 | ||
623 | %post program_options -p /sbin/ldconfig | |
624 | %postun program_options -p /sbin/ldconfig | |
625 | ||
626 | %post regex -p /sbin/ldconfig | |
627 | %postun regex -p /sbin/ldconfig | |
628 | ||
629 | %post system -p /sbin/ldconfig | |
630 | %postun system -p /sbin/ldconfig | |
631 | ||
632 | %post test -p /sbin/ldconfig | |
633 | %postun test -p /sbin/ldconfig | |
634 | ||
635 | %post thread -p /sbin/ldconfig | |
636 | %postun thread -p /sbin/ldconfig | |
637 | ||
638 | %post timer -p /sbin/ldconfig | |
639 | %postun timer -p /sbin/ldconfig | |
640 | ||
641 | %post wave -p /sbin/ldconfig | |
642 | %postun wave -p /sbin/ldconfig | |
643 | ||
644 | %files | |
645 | %defattr(644,root,root,755) | |
646 | %attr(755,root,root) %{_libdir}/libboost_atomic.so.*.*.* | |
647 | %attr(755,root,root) %{_libdir}/libboost_container.so.*.*.* | |
648 | %attr(755,root,root) %{_libdir}/libboost_contract.so.*.*.* | |
649 | %attr(755,root,root) %{_libdir}/libboost_coroutine.so.*.*.* | |
650 | %attr(755,root,root) %{_libdir}/libboost_iostreams.so.*.*.* | |
651 | %attr(755,root,root) %{_libdir}/libboost_math_*.so.*.*.* | |
652 | %attr(755,root,root) %{_libdir}/libboost_random.so.*.*.* | |
653 | %attr(755,root,root) %{_libdir}/libboost_serialization.so.*.*.* | |
654 | %attr(755,root,root) %{_libdir}/libboost_stacktrace_*.so.*.*.* | |
655 | %attr(755,root,root) %{_libdir}/libboost_type_erasure.so.*.*.* | |
656 | %attr(755,root,root) %{_libdir}/libboost_wserialization.so.*.*.* | |
657 | ||
658 | %files devel | |
659 | %defattr(644,root,root,755) | |
660 | %attr(755,root,root) %{_libdir}/libboost_atomic.so | |
661 | %attr(755,root,root) %{_libdir}/libboost_chrono.so | |
662 | %attr(755,root,root) %{_libdir}/libboost_container.so | |
663 | %attr(755,root,root) %{_libdir}/libboost_context.so | |
664 | %attr(755,root,root) %{_libdir}/libboost_contract.so | |
665 | %attr(755,root,root) %{_libdir}/libboost_coroutine.so | |
666 | %attr(755,root,root) %{_libdir}/libboost_date_time.so | |
667 | %attr(755,root,root) %{_libdir}/libboost_fiber.so | |
668 | %attr(755,root,root) %{_libdir}/libboost_filesystem.so | |
669 | %attr(755,root,root) %{_libdir}/libboost_graph.so | |
670 | %attr(755,root,root) %{_libdir}/libboost_iostreams.so | |
671 | %attr(755,root,root) %{_libdir}/libboost_locale.so | |
672 | %attr(755,root,root) %{_libdir}/libboost_log.so | |
673 | %attr(755,root,root) %{_libdir}/libboost_log_setup.so | |
674 | %attr(755,root,root) %{_libdir}/libboost_math_*.so | |
675 | %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so | |
676 | %attr(755,root,root) %{_libdir}/libboost_program_options.so | |
677 | %attr(755,root,root) %{_libdir}/libboost_regex.so | |
678 | %attr(755,root,root) %{_libdir}/libboost_random.so | |
679 | %attr(755,root,root) %{_libdir}/libboost_serialization.so | |
680 | %attr(755,root,root) %{_libdir}/libboost_stacktrace_*.so | |
681 | %attr(755,root,root) %{_libdir}/libboost_system.so | |
682 | %attr(755,root,root) %{_libdir}/libboost_thread.so | |
683 | %attr(755,root,root) %{_libdir}/libboost_timer.so | |
684 | %attr(755,root,root) %{_libdir}/libboost_type_erasure.so | |
685 | %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so | |
686 | %attr(755,root,root) %{_libdir}/libboost_wave.so | |
687 | %attr(755,root,root) %{_libdir}/libboost_wserialization.so | |
688 | %{_includedir}/boost | |
689 | %exclude %{_includedir}/boost/python | |
690 | %exclude %{_includedir}/boost/python.hpp | |
691 | ||
692 | %files static | |
693 | %defattr(644,root,root,755) | |
694 | %{_libdir}/libboost_atomic.a | |
695 | %{_libdir}/libboost_chrono.a | |
696 | %{_libdir}/libboost_container.a | |
697 | %{_libdir}/libboost_context.a | |
698 | %{_libdir}/libboost_contract.a | |
699 | %{_libdir}/libboost_coroutine.a | |
700 | %{_libdir}/libboost_date_time.a | |
701 | %{_libdir}/libboost_exception.a | |
702 | %{_libdir}/libboost_fiber.a | |
703 | %{_libdir}/libboost_filesystem.a | |
704 | %{_libdir}/libboost_graph.a | |
705 | %{_libdir}/libboost_iostreams.a | |
706 | %{_libdir}/libboost_locale.a | |
707 | %{_libdir}/libboost_log.a | |
708 | %{_libdir}/libboost_log_setup.a | |
709 | %{_libdir}/libboost_math_*.a | |
710 | %{_libdir}/libboost_prg_exec_monitor.a | |
711 | %{_libdir}/libboost_program_options.a | |
712 | %{_libdir}/libboost_random.a | |
713 | %{_libdir}/libboost_regex.a | |
714 | %{_libdir}/libboost_serialization.a | |
715 | %{_libdir}/libboost_stacktrace_*.a | |
716 | %{_libdir}/libboost_system.a | |
717 | %{_libdir}/libboost_test_exec_monitor.a | |
718 | %{_libdir}/libboost_timer.a | |
719 | %{_libdir}/libboost_thread.a | |
720 | %{_libdir}/libboost_type_erasure.a | |
721 | %{_libdir}/libboost_unit_test_framework.a | |
722 | %{_libdir}/libboost_wave.a | |
723 | %{_libdir}/libboost_wserialization.a | |
724 | ||
725 | %if %{with python2} || %{with python3} | |
726 | %files python-devel-common | |
727 | %defattr(644,root,root,755) | |
728 | %{_includedir}/boost/python | |
729 | %{_includedir}/boost/python.hpp | |
730 | %endif | |
731 | ||
732 | %if %{with python2} | |
733 | %files python | |
734 | %defattr(644,root,root,755) | |
735 | %if %{with numpy} | |
736 | %attr(755,root,root) %{_libdir}/libboost_numpy%{py2v}.so.*.*.* | |
737 | %endif | |
738 | %attr(755,root,root) %{_libdir}/libboost_python%{py2v}.so.*.*.* | |
739 | ||
740 | %files python-devel | |
741 | %defattr(644,root,root,755) | |
742 | %if %{with numpy} | |
743 | %attr(755,root,root) %{_libdir}/libboost_numpy%{py2v}.so | |
744 | %endif | |
745 | %attr(755,root,root) %{_libdir}/libboost_python%{py2v}.so | |
746 | ||
747 | %files python-static | |
748 | %defattr(644,root,root,755) | |
749 | %if %{with numpy} | |
750 | %{_libdir}/libboost_numpy%{py2v}.a | |
751 | %endif | |
752 | %{_libdir}/libboost_python%{py2v}.a | |
753 | %endif | |
754 | ||
755 | %if %{with python3} | |
756 | %files python3 | |
757 | %defattr(644,root,root,755) | |
758 | %if %{with numpy} | |
759 | %attr(755,root,root) %{_libdir}/libboost_numpy%{py3v}.so.*.*.* | |
760 | %endif | |
761 | %attr(755,root,root) %{_libdir}/libboost_python%{py3v}.so.*.*.* | |
762 | ||
763 | %files python3-devel | |
764 | %defattr(644,root,root,755) | |
765 | %if %{with numpy} | |
766 | %attr(755,root,root) %{_libdir}/libboost_numpy%{py3v}.so | |
767 | %endif | |
768 | %attr(755,root,root) %{_libdir}/libboost_python%{py3v}.so | |
769 | ||
770 | %files python3-static | |
771 | %defattr(644,root,root,755) | |
772 | %if %{with numpy} | |
773 | %{_libdir}/libboost_numpy%{py3v}.a | |
774 | %endif | |
775 | %{_libdir}/libboost_python%{py3v}.a | |
776 | %endif | |
777 | ||
778 | %files chrono | |
779 | %defattr(644,root,root,755) | |
780 | %attr(755,root,root) %{_libdir}/libboost_chrono.so.*.*.* | |
781 | ||
782 | %files context | |
783 | %defattr(644,root,root,755) | |
784 | %attr(755,root,root) %{_libdir}/libboost_context.so.*.*.* | |
785 | ||
786 | %files date_time | |
787 | %defattr(644,root,root,755) | |
788 | %attr(755,root,root) %{_libdir}/libboost_date_time.so.*.*.* | |
789 | ||
790 | %files fiber | |
791 | %defattr(644,root,root,755) | |
792 | %attr(755,root,root) %{_libdir}/libboost_fiber.so.*.*.* | |
793 | ||
794 | %files filesystem | |
795 | %defattr(644,root,root,755) | |
796 | %attr(755,root,root) %{_libdir}/libboost_filesystem.so.*.*.* | |
797 | ||
798 | %files graph | |
799 | %defattr(644,root,root,755) | |
800 | %attr(755,root,root) %{_libdir}/libboost_graph.so.*.*.* | |
801 | ||
802 | %files locale | |
803 | %defattr(644,root,root,755) | |
804 | %attr(755,root,root) %{_libdir}/libboost_locale.so.*.*.* | |
805 | ||
806 | %files log | |
807 | %defattr(644,root,root,755) | |
808 | %attr(755,root,root) %{_libdir}/libboost_log.so.*.*.* | |
809 | %attr(755,root,root) %{_libdir}/libboost_log_setup.so.*.*.* | |
810 | ||
811 | %files program_options | |
812 | %defattr(644,root,root,755) | |
813 | %attr(755,root,root) %{_libdir}/libboost_program_options.so.*.*.* | |
814 | ||
815 | %files regex | |
816 | %defattr(644,root,root,755) | |
817 | %attr(755,root,root) %{_libdir}/libboost_regex.so.*.*.* | |
818 | ||
819 | %files system | |
820 | %defattr(644,root,root,755) | |
821 | %attr(755,root,root) %{_libdir}/libboost_system.so.*.*.* | |
822 | ||
823 | %files test | |
824 | %defattr(644,root,root,755) | |
825 | %attr(755,root,root) %{_libdir}/libboost_prg_exec_monitor.so.*.*.* | |
826 | %attr(755,root,root) %{_libdir}/libboost_unit_test_framework.so.*.*.* | |
827 | ||
828 | %files thread | |
829 | %defattr(644,root,root,755) | |
830 | %attr(755,root,root) %{_libdir}/libboost_thread.so.*.*.* | |
831 | ||
832 | %files timer | |
833 | %defattr(644,root,root,755) | |
834 | %attr(755,root,root) %{_libdir}/libboost_timer.so.*.*.* | |
835 | ||
836 | %files wave | |
837 | %defattr(644,root,root,755) | |
838 | %attr(755,root,root) %{_libdir}/libboost_wave.so.*.*.* | |
839 | ||
840 | %files doc | |
841 | %defattr(644,root,root,755) | |
842 | %{_docdir}/%{name}-%{version} |