a3627a0
# There have been no releases, so we use a git snapshot
b7cafdc
%global gitdate         20200709
b7cafdc
%global gittag          777c5d2d341ff742850b86e2fb29d24007ac9bae
a3627a0
%global shorttag        %(cut -b -7 <<< %{gittag})
a6d497d
%global user            Macaulay2
a3627a0
a3627a0
Name:           memtailor
a6d497d
Version:        1.0
b7cafdc
Release:        15.%{gitdate}.git%{shorttag}%{?dist}
a3627a0
Summary:        C++ library of special-purpose memory allocators
a3627a0
a3627a0
License:        BSD
a3627a0
URL:            https://github.com/%{user}/%{name}
a3627a0
Source0:        https://github.com/%{user}/%{name}/tarball/%{gittag}/%{user}-%{name}-%{shorttag}.tar.gz
a3627a0
a6d497d
# Upstream wants to download gtest and compile it in; we don't
be37c91
Patch0:         %{name}-gtest.patch
a6d497d
be37c91
BuildRequires:  gcc-c++
a3627a0
BuildRequires:  gtest-devel
a3627a0
BuildRequires:  libtool
3310964
BuildRequires:  make
a3627a0
a3627a0
%description
a3627a0
Memtailor is a C++ library of special purpose memory allocators.  It
a3627a0
currently offers an arena allocator and a memory pool.
a3627a0
a3627a0
The main motivation to use a memtailor allocator is better and more
a3627a0
predictable performance than you get with new/delete.  Sometimes a
a3627a0
memtailor allocator can also be more convenient due to the ability to
a3627a0
free many allocations at one time.
a3627a0
a3627a0
The Memtailor memory pool is useful if you need to do many allocations
a3627a0
of a fixed size.  For example a memory pool is well suited to allocate
a3627a0
the nodes in a linked list.
a3627a0
a3627a0
You can think of the Memtailor arena allocator as being similar to stack
a3627a0
allocation.  Both kinds of allocation are very fast and require you to
a3627a0
allocate/deallocate memory in last-in-first-out order.  Arena allocation
a3627a0
has the further benefits that it stays within the C++ standard, it will
a3627a0
not cause a stack overflow, you can have multiple arena allocators at
a3627a0
the same time and allocation is not tied to a function invocation.
a3627a0
a3627a0
%package devel
a3627a0
Summary:        Development files for memtailor
a3627a0
Requires:       %{name}%{?_isa} = %{version}-%{release}
a3627a0
a3627a0
%description devel
a3627a0
Files for developing applications that use memtailor.
a3627a0
a3627a0
%prep
825bcba
%autosetup -p0 -n %{user}-%{name}-%{shorttag}
a3627a0
825bcba
# Remove spurious executable bits
825bcba
chmod a-x src/test/*.cpp
a3627a0
a3627a0
# Upstream doesn't generate the configure script
a3627a0
autoreconf -fi
a3627a0
a3627a0
%build
a3627a0
export GTEST_PATH=%{_prefix}
a6d497d
export GTEST_VERSION=$(gtest-config --version)
be37c91
%configure --disable-static --enable-shared --with-gtest=yes
a3627a0
a3627a0
# Get rid of undesirable hardcoded rpaths; workaround libtool reordering
a3627a0
# -Wl,--as-needed after all the libraries.
a3627a0
sed -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \
a3627a0
    -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' \
a3627a0
    -e 's|CC=.g..|& -Wl,--as-needed|' \
a3627a0
    -i libtool
a3627a0
825bcba
%make_build
a3627a0
a3627a0
%install
a3627a0
%make_install
a3627a0
a3627a0
# We don't want the libtool archive
a3627a0
rm -f %{buildroot}%{_libdir}/lib%{name}.la
a3627a0
a3627a0
%check
825bcba
LD_LIBRARY_PATH=$PWD/.libs make check
a3627a0
a3627a0
%files
a3627a0
%doc README.md
a3627a0
%license license.txt
a3627a0
%{_libdir}/lib%{name}.so.*
a3627a0
a3627a0
%files devel
a3627a0
%{_includedir}/%{name}/
a3627a0
%{_includedir}/%{name}.h
a3627a0
%{_libdir}/lib%{name}.so
a3627a0
%{_libdir}/pkgconfig/%{name}.pc
a3627a0
a3627a0
%changelog
b7cafdc
* Thu Jun 17 2021 Jerry James <loganjerry@gmail.com> - 1.0-15.20200709.git777c5d2
b7cafdc
- Update to latest upstream snapshot
b7cafdc
a7afbc2
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-14.20200526.git1d13f96
a7afbc2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
a7afbc2
b90bca4
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-13.20200526.git1d13f96
b90bca4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
b90bca4
825bcba
* Wed Jul  1 2020 Jerry James <loganjerry@gmail.com> - 1.0-12.20200526.git1d13f96
825bcba
- Update to latest upstream snapshot
825bcba
3b05d99
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-11.20160311.gite85453b
3b05d99
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
3b05d99
a051b15
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-10.20160311.gite85453b
a051b15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
a051b15
ed520cd
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-9.20160311.gite85453b
ed520cd
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
ed520cd
d0a6359
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-8.20160311.gite85453b
d0a6359
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
d0a6359
f675e3f
* Thu Feb 08 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-7.20160311.gite85453b
f675e3f
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
f675e3f
1f6dd0d
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-6.20160311.gite85453b
1f6dd0d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
1f6dd0d
5d4ea66
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-5.20160311.gite85453b
5d4ea66
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
5d4ea66
1a52d04
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-4.20160311.gite85453b
1a52d04
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
1a52d04
be37c91
* Mon Apr  4 2016 Jerry James <loganjerry@gmail.com> - 1.0-3.20160311.gite85453b
be37c91
- Update to latest upstream snapshot
be37c91
77330f0
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-2.20140924.git7b48b98
77330f0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
77330f0
a6d497d
* Sat Jan 16 2016 Jerry James <loganjerry@gmail.com> - 1.0-1.20140924.git7b48b98
a6d497d
- Change to Macaulay2 repo
a6d497d
- Revert Macaulay2 patch to disable libtool (memtailor-libtool.patch)
a6d497d
- Use a patch instead of sed for gtest manipulations (memtailor-gtest.patch)
a6d497d
a3627a0
* Fri Sep  4 2015 Jerry James <loganjerry@gmail.com> - 0-1.20130809.git722a30c
a3627a0
- Initial RPM