# # # WARNING: DO NOT UPDATE THIS PACKAGE IF YOU DON'T PLAN TO FIX GCC RIGHT AFTER. # gcc-4.7 series requires 0.11 branch # %define name ppl %define version 0.11.2 %define ppl_major 9 %define libppl %mklibname ppl %ppl_major %define libppl_devel %mklibname -d ppl %define libppl_static_devel %mklibname -d -s ppl %define ppl_c_major 4 %define libppl_c %mklibname ppl_c %ppl_c_major %define libppl_c_devel %mklibname -d ppl_c %define libppl_c_static_devel %mklibname -d -s ppl_c %define pwl_major 5 %define libpwl %mklibname pwl %pwl_major %define libpwl_devel %mklibname -d pwl %define libpwl_static_devel %mklibname -d -s pwl %define arch_has_prolog 1 %ifarch %arm %mips %define arch_has_prolog 0 %endif %define arch_has_java 1 %ifarch %arm %mips %define arch_has_java 0 %endif Name: ppl Version: %{version} Release: %mkrel 5 Group: Development/C Summary: The Parma Polyhedra Library: a library of numerical abstractions License: GPLv3+ URL: http://www.cs.unipr.it/ppl/ Source0: ftp://ftp.cs.unipr.it/pub/ppl/releases/%{version}/%{name}-%{version}.tar.lzma Source1: ppl.hh Source2: ppl_c.h Source3: pwl.hh Patch0: ppl-0.10.2-Makefile.patch Patch1: ppl-remove-dist-lzma.patch Patch2: 0001-Prolog-sources-must-go-under-.-share-ppl-as-these-fi.patch Patch3: ppl-fix-gmp-5.1.0.patch BuildRequires: gmp-devel >= 4.1.3, gmpxx-devel >= 4.1.3, m4 >= 1.4.8 %description The Parma Polyhedra Library (PPL) is a library for the manipulation of (not necessarily closed) convex polyhedra and other numerical abstractions. The applications of convex polyhedra include program analysis, optimized compilation, integer and combinatorial optimization and statistical data-editing. The Parma Polyhedra Library comes with several user friendly interfaces, is fully dynamic (available virtual memory is the only limitation to the dimension of anything), written in accordance to all the applicable standards, exception-safe, rather efficient, thoroughly documented, and free software. This package provides all what is necessary to run applications using the PPL through its C and C++ interfaces. #----------------------------------------------------------------------- %package -n %{libppl} Group: Development/C Summary: The Parma Polyhedra Library: a library of numerical abstractions %description -n %{libppl} The Parma Polyhedra Library (PPL) is a library for the manipulation of (not necessarily closed) convex polyhedra and other numerical abstractions. The applications of convex polyhedra include program analysis, optimized compilation, integer and combinatorial optimization and statistical data-editing. The Parma Polyhedra Library comes with several user friendly interfaces, is fully dynamic (available virtual memory is the only limitation to the dimension of anything), written in accordance to all the applicable standards, exception-safe, rather efficient, thoroughly documented, and free software. This package provides all what is necessary to run applications using the PPL through its C and C++ interfaces. %files -n %{libppl} %doc %{_datadir}/doc/%{name}-%{version}/BUGS %doc %{_datadir}/doc/%{name}-%{version}/COPYING %doc %{_datadir}/doc/%{name}-%{version}/CREDITS %doc %{_datadir}/doc/%{name}-%{version}/NEWS %doc %{_datadir}/doc/%{name}-%{version}/README %doc %{_datadir}/doc/%{name}-%{version}/README.configure %doc %{_datadir}/doc/%{name}-%{version}/TODO %doc %{_datadir}/doc/%{name}-%{version}/gpl.txt %{_libdir}/libppl.so.%{ppl_major} %{_libdir}/libppl.so.%{ppl_major}.* %dir %{_libdir}/%{name} %dir %{_datadir}/doc/%{name}-%{version} #----------------------------------------------------------------------- %package -n %{libppl_devel} Summary: Development tools for the Parma Polyhedra Library C and C++ interfaces Group: Development/C Requires: %{libppl} = %{version}-%{release} Requires: gmp-devel >= 4.1.3 Requires: gmpxx-devel >= 4.1.3 Provides: %{name}-devel = %version-%release #Conflicts: %{_lib}ppl7 < 0.11-3 %description -n %{libppl_devel} The header files, Autoconf macro and minimal documentation for developing applications using the Parma Polyhedra Library through its C and C++ interfaces. %files -n %{libppl_devel} %{_bindir}/ppl-config %{_includedir}/ppl*.hh %{_libdir}/libppl.so %{_libdir}/libppl.la %{_mandir}/man1/ppl-config.1.* %{_mandir}/man3/libppl.3.* %{_datadir}/aclocal/ppl.m4 #----------------------------------------------------------------------- %package -n %{libppl_static_devel} Summary: Static archives for the Parma Polyhedra Library C and C++ interfaces Group: Development/C Requires: %{name}-devel = %{version}-%{release} Provides: libppl-static-devel = %{version}-%{release} Obsoletes: %{_lib}ppl7-static-devel < 0.10.2-5 %description -n %{libppl_static_devel} The static archives for the Parma Polyhedra Library C and C++ interfaces. %files -n %{libppl_static_devel} %{_libdir}/libppl.a #----------------------------------------------------------------------- %package -n %{libppl_c} Group: Development/C Summary: The Parma Polyhedra Library: a library of numerical abstractions %description -n %{libppl_c} The Parma Polyhedra Library (PPL) is a library for the manipulation of (not necessarily closed) convex polyhedra and other numerical abstractions. The applications of convex polyhedra include program analysis, optimized compilation, integer and combinatorial optimization and statistical data-editing. The Parma Polyhedra Library comes with several user friendly interfaces, is fully dynamic (available virtual memory is the only limitation to the dimension of anything), written in accordance to all the applicable standards, exception-safe, rather efficient, thoroughly documented, and free software. This package provides all what is necessary to run applications using the PPL through its C and C++ interfaces. %files -n %{libppl_c} %{_libdir}/libppl_c.so.%{ppl_c_major} %{_libdir}/libppl_c.so.%{ppl_c_major}.* #----------------------------------------------------------------------- %package -n %{libppl_c_devel} Summary: Development tools for the Parma Polyhedra Library C and C++ interfaces Group: Development/C Requires: %{libppl_c} = %{version}-%{release} #Conflicts: %{_lib}ppl-devel < 0.11-3 Provides: ppl_c-devel = %{version}-%{release} %description -n %{libppl_c_devel} The header files, Autoconf macro and minimal documentation for developing applications using the Parma Polyhedra Library through its C and C++ interfaces. %files -n %{libppl_c_devel} %{_includedir}/ppl_c*.h %{_libdir}/libppl_c.so %{_libdir}/libppl_c.la %{_mandir}/man3/libppl_c.3.* %{_datadir}/aclocal/ppl_c.m4 #----------------------------------------------------------------------- %package -n %{libppl_c_static_devel} Summary: Static archives for the Parma Polyhedra Library C and C++ interfaces Group: Development/C Requires: %{libppl_c_devel} = %{version}-%{release} Provides: libppl_c-static-devel = %{version}-%{release} Provides: ppl_c-static-devel = %{version}-%{release} Conflicts: %{_lib}ppl7-static-devel %description -n %{libppl_c_static_devel} The static archives for the Parma Polyhedra Library C and C++ interfaces. %files -n %{libppl_c_static_devel} %{_libdir}/libppl_c.a #----------------------------------------------------------------------- %package utils Summary: Utilities using the Parma Polyhedra Library Group: Development/C Requires: %{libppl} = %{version}-%{release} BuildRequires: glpk-devel >= 4.13 %description utils This package contains the mixed integer linear programming solver ppl_lpsol and the program ppl_lcdd for vertex/facet enumeration of convex polyhedra. %files utils %{_bindir}/ppl_lcdd %{_bindir}/ppl_lpsol %{_bindir}/ppl_pips %{_mandir}/man1/ppl_lcdd.1.* %{_mandir}/man1/ppl_lpsol.1.* %{_mandir}/man1/ppl_pips.1.* #----------------------------------------------------------------------- %if %arch_has_prolog %package gprolog # The `gprolog' package is not available on ppc64: # the GNU Prolog interface must thus be disabled for that architecture. Summary: The GNU Prolog interface of the Parma Polyhedra Library Group: Development/Other BuildRequires: gprolog >= 1.2.19 Requires: %{libppl} = %{version}-%{release}, Requires: %{libpwl} = %{version}-%{release} Requires: gprolog >= 1.2.19 %description gprolog This package adds GNU Prolog support to the Parma Polyhedra Library (PPL). Install this package if you want to use the library in GNU Prolog programs. %files gprolog %{_bindir}/ppl_gprolog %{_datadir}/%{name}/ppl_gprolog.pl %{_libdir}/%{name}/libppl_gprolog.so #----------------------------------------------------------------------- %package gprolog-static Summary: The static archive for the GNU Prolog interface of the Parma Polyhedra Library Group: Development/Other Requires: %{name}-gprolog = %{version}-%{release} %description gprolog-static This package contains the static archive for the GNU Prolog interface of the Parma Polyhedra Library. %files gprolog-static %{_libdir}/%{name}/libppl_gprolog.a %{_libdir}/%{name}/libppl_gprolog.la %endif #----------------------------------------------------------------------- #%package ocaml #Summary: The OCaml interface of the Parma Polyhedra Library #Group: Development/Other #BuildRequires: ocaml >= 3.09 #Requires: %{name} = %{version}-%{release} #%description ocaml #This package adds Objective Caml (OCaml) support to the Parma #Polyhedra Library. Install this package if you want to use the #library in OCaml programs. #%files ocaml #%doc interfaces/OCaml/README.ocaml #%{_libdir}/%{name}/ppl_ocaml.cma #%{_libdir}/%{name}/ppl_ocaml.cmi #%{_libdir}/%{name}/ppl_ocaml_globals.cmi #----------------------------------------------------------------------- #%package ocaml-devel #Summary: The OCaml interface of the Parma Polyhedra Library #Group: Development/Other #Requires: %{name}-ocaml = %{version}-%{release} #%description ocaml-devel #This package contains libraries and signature files for developing #applications using the OCaml interface of the Parma Polyhedra Library. #%files ocaml-devel #%{_libdir}/%{name}/libppl_ocaml.a #%{_libdir}/%{name}/ppl_ocaml.mli #----------------------------------------------------------------------- %if %arch_has_java %package java Summary: The Java interface of the Parma Polyhedra Library Group: Development/Java BuildRequires: java-devel >= 0:1.6.0 BuildRequires: jpackage-utils Requires: java >= 0:1.6.0 Requires: jpackage-utils Requires: %{libppl} = %{version}-%{release} %description java This package adds Java support to the Parma Polyhedra Library. Install this package if you want to use the library in Java programs. %files java %{_libdir}/%{name}/libppl_java.so %{_libdir}/%{name}/libppl_java.la %{_libdir}/%{name}/ppl_java.jar #----------------------------------------------------------------------- %package java-javadoc Summary: Javadocs for %{name}-java Group: Development/Java Requires: %{name}-java = %{version}-%{release} Requires: jpackage-utils %description java-javadoc This package contains the API documentation for Java interface of the Parma Polyhedra Library. %files java-javadoc %{_javadocdir}/%{name}-java %endif #----------------------------------------------------------------------- %package docs Summary: Documentation for the Parma Polyhedra Library Group: Development/C BuildArch: noarch %description docs This package contains all the documentations required by programmers using the Parma Polyhedra Library (PPL). Install this package if you want to program with the PPL. %files docs %doc %{_datadir}/doc/%{name}-%{version}/ChangeLog* %doc %{_datadir}/doc/%{name}-%{version}/README.doc %doc %{_datadir}/doc/%{name}-%{version}/fdl.* %doc %{_datadir}/doc/%{name}-%{version}/gpl.pdf %doc %{_datadir}/doc/%{name}-%{version}/gpl.ps.gz %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-%{version}-html/ %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-c-interface-%{version}-html/ #%doc %{_datadir}/doc/%{name}-%{version}/ppl-user-ocaml-interface-%{version}-html/ %if %arch_has_prolog %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-prolog-interface-%{version}-html/ %endif %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-%{version}.pdf %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-c-interface-%{version}.pdf %if %arch_has_java %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-java-interface-%{version}.pdf %endif #%doc %{_datadir}/doc/%{name}-%{version}/ppl-user-ocaml-interface-%{version}.pdf %if %arch_has_prolog %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-prolog-interface-%{version}.pdf %endif %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-%{version}.ps.gz %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-c-interface-%{version}.ps.gz %if %arch_has_java %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-java-interface-%{version}.ps.gz %endif #%doc %{_datadir}/doc/%{name}-%{version}/ppl-user-ocaml-interface-%{version}.ps.gz %if %arch_has_prolog %doc %{_datadir}/doc/%{name}-%{version}/ppl-user-prolog-interface-%{version}.ps.gz %endif #----------------------------------------------------------------------- %package -n %{libpwl} Summary: The Parma Watchdog Library: a C++ library for watchdog timers Group: Development/C++ %description -n %{libpwl} The Parma Watchdog Library (PWL) provides support for multiple, concurrent watchdog timers on systems providing setitimer(2). This package provides all what is necessary to run applications using the PWL. The PWL is currently distributed with the Parma Polyhedra Library, but is totally independent from it. %files -n %{libpwl} %{_libdir}/libpwl.so.%{pwl_major} %{_libdir}/libpwl.so.%{pwl_major}.* #----------------------------------------------------------------------- %package -n %{libpwl_devel} Summary: Development tools for the Parma Watchdog Library Group: Development/C++ Requires: %{libpwl} = %{version}-%{release} Provides: %{name}-pwl-devel = %{version}-%{release} Provides: pwl-devel = %{version}-%{release} %description -n %{libpwl_devel} The header files, documentation and static libraries for developing applications using the Parma Watchdog Library. %files -n %{libpwl_devel} %{_includedir}/pwl*.hh %{_libdir}/libpwl.so %{_libdir}/libpwl.la #----------------------------------------------------------------------- %package -n %{libpwl_static_devel} Summary: Static archive for the Parma Watchdog Library Group: Development/C++ Requires: %{name}-pwl-devel = %{version}-%{release} Provides: libpwl-static-devel = %{version}-%{release} Obsoletes: %{_lib}pwl4-static-devel < 0.10.2-5 %description -n %{libpwl_static_devel} This package contains the static archive for the Parma Watchdog Library. %files -n %{libpwl_static_devel} %{_libdir}/libpwl.a #----------------------------------------------------------------------- %package pwl-docs Summary: Documentation for the Parma Watchdog Library Group: Development/C++ Requires: %{libpwl} = %{version}-%{release} %description pwl-docs This package contains all the documentations required by programmers using the Parma Watchdog Library (PWL). Install this package if you want to program with the PWL. %files pwl-docs %doc %{_datadir}/doc/%{name}-%{version}/pwl-user-0.8-html/ %doc %{_datadir}/doc/%{name}-%{version}/pwl-user-0.8.pdf %doc %{_datadir}/doc/%{name}-%{version}/pwl-user-0.8.ps.gz #----------------------------------------------------------------------- %prep %setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p0 #----------------------------------------------------------------------- %build autoreconf -fi %if %arch_has_prolog CPPFLAGS="%{optflags} -I%{_libdir}/gprolog-`gprolog --version 2>&1 | head -1 | sed -e "s/.* \([^ ]*\)$/\1/g"`/include" %endif %configure2_5x --docdir=%{_datadir}/doc/%{name}-%{version} --enable-shared --enable-interfaces="c++ c gnu_prolog java" CPPFLAGS="$CPPFLAGS" #sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool #sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool #sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' Watchdog/libtool #sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' Watchdog/libtool %make #----------------------------------------------------------------------- %install rm -rf $RPM_BUILD_ROOT %makeinstall_std # In order to avoid multiarch conflicts when installed for multiple # architectures (e.g., i386 and x86_64), we rename the header files # of the ppl-devel and ppl-pwl-devel packages. They are substituted with # ad-hoc switchers that select the appropriate header file depending on # the architecture for which the compiler is compiling. # Since our header files only depend on the sizeof things, we smash # ix86 onto i386 and arm* onto arm. For the SuperH RISC engine family, # we smash sh3 and sh4 onto sh. normalized_arch=%{_arch} %ifarch %{ix86} normalized_arch=i386 %endif %ifarch %{arm} normalized_arch=arm %endif %ifarch sh3 sh4 normalized_arch=sh %endif mv %{buildroot}/%{_includedir}/ppl.hh %{buildroot}/%{_includedir}/ppl-${normalized_arch}.hh install -m644 %{SOURCE1} %{buildroot}/%{_includedir}/ppl.hh mv %{buildroot}/%{_includedir}/ppl_c.h %{buildroot}/%{_includedir}/ppl_c-${normalized_arch}.h install -m644 %{SOURCE2} %{buildroot}/%{_includedir}/ppl_c.h mv %{buildroot}/%{_includedir}/pwl.hh %{buildroot}/%{_includedir}/pwl-${normalized_arch}.hh install -m644 %{SOURCE3} %{buildroot}/%{_includedir}/pwl.hh # Install the Javadocs for ppl-java. %if %arch_has_java mkdir -p %{buildroot}%{_javadocdir} mv \ %{buildroot}/%{_datadir}/doc/%{name}-%{version}/ppl-user-java-interface-%{version}-html \ %{buildroot}%{_javadocdir}/%{name}-java %endif # in case of no plugin enabled if [ ! -d %{buildroot}%{_libdir}/%{name} ]; then mkdir %{buildroot}%{_libdir}/%{name} -p fi #----------------------------------------------------------------------- %clean rm -rf $RPM_BUILD_ROOT %changelog * Fri Feb 08 2013 fwang <fwang> 0.11.2-5.mga3 + Revision: 395600 - recall pwl.hh - fix build with latest gmp + umeabot <umeabot> - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild + tmb <tmb> - add note that gcc-4.7 requires 0.11 branch - restore 0.11.2 - pwl libs is merged with ppl libs - drop P0 (obsolete) - drop P1, P2 (merged) - ppl new major is 12 - update to 1.0 * Mon Jul 16 2012 rtp <rtp> 0.11.2-3.mga3 + Revision: 271321 - fix build with newer autotools * Sun Dec 04 2011 fwang <fwang> 0.11.2-2.mga2 + Revision: 176168 - doc is a non-arch package * Sun Dec 04 2011 tmb <tmb> 0.11.2-1.mga2 + Revision: 175909 - update to 0.11.2 (needed for gcc-4.6.2) - drop p1, not needed anymore - bump library majors - drop buildroot and defattr * Wed Mar 30 2011 ahmad <ahmad> 0.10.2-6.mga1 + Revision: 79003 - obsolete old %%{_lib}pwl4-static-devel and %%{_lib}ppl7-static-devel * Fri Feb 11 2011 rtp <rtp> 0.10.2-5.mga1 + Revision: 49992 - disable java and prolog on arm and mips - teach ppl_c.h some knowledge about mips + dmorgan <dmorgan> - Merge with mdv to have a package better splitted - Add a warning * Wed Feb 02 2011 dmorgan <dmorgan> 0.10.2-4.mga1 + Revision: 46406 - revert to old version, to not break the BS * Wed Feb 02 2011 dmorgan <dmorgan> 0.11-1.mga1 + Revision: 46368 - Do not apply patch1 - New version * Sun Jan 09 2011 blino <blino> 0.10.2-3.mga1 + Revision: 2999 - remove old ldconfig scriptlets - imported package ppl