Build 64 integer version
This commit is contained in:
		
							parent
							
								
									787b10aa99
								
							
						
					
					
						commit
						fc6e664b05
					
				
							
								
								
									
										153
									
								
								metis.spec
									
									
									
									
									
								
							
							
						
						
									
										153
									
								
								metis.spec
									
									
									
									
									
								
							@ -6,9 +6,15 @@
 | 
			
		||||
%{!?__global_ldflags: %global __global_ldflags -Wl,-z,relro}
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%if %{?__isa_bits:%{__isa_bits}}%{!?__isa_bits:32} == 64
 | 
			
		||||
%global arch64 1
 | 
			
		||||
%else
 | 
			
		||||
%global arch64 0
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
Name:    metis
 | 
			
		||||
Version: 5.1.0
 | 
			
		||||
Release: 11%{?dist}
 | 
			
		||||
Release: 12%{?dist}
 | 
			
		||||
Summary: Serial Graph Partitioning and Fill-reducing Matrix Ordering
 | 
			
		||||
License: ASL 2.0 and BSD and LGPLv2+
 | 
			
		||||
Group:   Development/Libraries
 | 
			
		||||
@ -30,7 +36,10 @@ Patch1:  %{name}-shared-GKlib.patch
 | 
			
		||||
Patch2:  %{name}-width-datatype.patch
 | 
			
		||||
 | 
			
		||||
## This patch sets up GKREGEX, GKRAND, libsuffix options to the Makefiles 
 | 
			
		||||
Patch4:  %{name}-GKREGEX-GKRAND-LIBSUFFIX-fix.patch
 | 
			
		||||
Patch3:  %{name}-GKREGEX-GKRAND-LIBSUFFIX-fix.patch
 | 
			
		||||
 | 
			
		||||
## Rename library of 64 integer version
 | 
			
		||||
Patch4: %{name}_lib64.patch
 | 
			
		||||
 | 
			
		||||
BuildRequires: cmake
 | 
			
		||||
BuildRequires: pcre-devel
 | 
			
		||||
@ -53,29 +62,55 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
 | 
			
		||||
%description devel
 | 
			
		||||
Header and library files of Metis, OpenMP version.
 | 
			
		||||
 | 
			
		||||
%if 0%{?arch64}
 | 
			
		||||
%package -n metis64
 | 
			
		||||
Summary: Serial Graph Partitioning and Fill-reducing Matrix Ordering (64bit INTEGER)
 | 
			
		||||
Group: System Environment/Libraries
 | 
			
		||||
 | 
			
		||||
%description -n metis64
 | 
			
		||||
METIS is a set of serial programs for partitioning graphs, 
 | 
			
		||||
partitioning finite element meshes, and producing fill reducing 
 | 
			
		||||
orderings for sparse matrices. 
 | 
			
		||||
The algorithms implemented in METIS are based on the multilevel 
 | 
			
		||||
recursive-bisection, multilevel k-way, and multi-constraint 
 | 
			
		||||
partitioning schemes developed in our lab.
 | 
			
		||||
METIS is distributed with OpenMP support.
 | 
			
		||||
This build has 64bit INTEGER support.
 | 
			
		||||
 | 
			
		||||
%package -n metis64-devel
 | 
			
		||||
Summary: LAPACK development libraries (64bit INTEGER)
 | 
			
		||||
Group: Development/Libraries
 | 
			
		||||
Requires: metis64%{?_isa} = %{version}-%{release}
 | 
			
		||||
 | 
			
		||||
%description -n metis64-devel
 | 
			
		||||
Header and library files of Metis,
 | 
			
		||||
OpenMP version (64bit INTEGER).
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%prep
 | 
			
		||||
%setup -q -n %{name}-%{version}
 | 
			
		||||
%setup -qc 
 | 
			
		||||
 | 
			
		||||
pushd %{name}-%{version}
 | 
			
		||||
%patch0 -p0
 | 
			
		||||
%patch1 -p0
 | 
			
		||||
 | 
			
		||||
if [ %{__isa_bits} = "64" ]; then
 | 
			
		||||
%patch2 -p0
 | 
			
		||||
fi
 | 
			
		||||
%patch4 -p0
 | 
			
		||||
%patch3 -p0
 | 
			
		||||
 | 
			
		||||
## Remove default compiler flag
 | 
			
		||||
sed -e 's|-O3||g' -i GKlib/GKlibSystem.cmake
 | 
			
		||||
popd
 | 
			
		||||
 | 
			
		||||
%if 0%{?arch64}
 | 
			
		||||
cp -a %{name}-%{version} metis64
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%build
 | 
			
		||||
pushd build
 | 
			
		||||
pushd %{name}-%{version}/build
 | 
			
		||||
export CC=gcc
 | 
			
		||||
%cmake \
 | 
			
		||||
 -DCMAKE_C_COMPILER:FILEPATH=%{_bindir}/gcc \
 | 
			
		||||
 -DCMAKE_CXX_COMPILER:FILEPATH=%{_bindir}/g++ \
 | 
			
		||||
 -DGKLIB_PATH=../GKlib  \
 | 
			
		||||
 -DSHARED:BOOL=TRUE \
 | 
			
		||||
 -DOPENMP:BOOL=ON \
 | 
			
		||||
 -DPCRE:BOOL=ON \
 | 
			
		||||
 -DCMAKE_CXX_FLAGS:STRING="%{optflags} -Wl,-z,relro -fPIC -pie -Wl,-z,now -pthread" \
 | 
			
		||||
 -DCMAKE_C_FLAGS:STRING="%{optflags} -Wl,-z,relro -fPIC -pie -Wl,-z,now -pthread" \
 | 
			
		||||
 -DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} -fPIC -pie -Wl,-z,now" \
 | 
			
		||||
 -DCMAKE_EXE_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} -fPIC -pie -Wl,-z,now" \
 | 
			
		||||
@ -84,12 +119,31 @@ pushd build
 | 
			
		||||
make %{?_smp_mflags}
 | 
			
		||||
popd
 | 
			
		||||
 | 
			
		||||
%install
 | 
			
		||||
pushd build
 | 
			
		||||
%make_install
 | 
			
		||||
%if 0%{?arch64}
 | 
			
		||||
cd metis64
 | 
			
		||||
patch -p0 < %{PATCH2}
 | 
			
		||||
patch -p0 < %{PATCH4}
 | 
			
		||||
mkdir -p build64
 | 
			
		||||
pushd build64
 | 
			
		||||
export CC=gcc
 | 
			
		||||
%cmake \
 | 
			
		||||
 -DGKLIB_PATH=../GKlib  \
 | 
			
		||||
 -DSHARED:BOOL=TRUE \
 | 
			
		||||
 -DOPENMP:BOOL=ON \
 | 
			
		||||
 -DPCRE:BOOL=ON \
 | 
			
		||||
 -DCMAKE_C_FLAGS:STRING="%{optflags} -Wl,-z,relro -fPIC -pie -Wl,-z,now -pthread" \
 | 
			
		||||
 -DCMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} -fPIC -pie -Wl,-z,now" \
 | 
			
		||||
 -DCMAKE_EXE_LINKER_FLAGS_RELEASE:STRING="%{__global_ldflags} -fPIC -pie -Wl,-z,now" \
 | 
			
		||||
 -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE \
 | 
			
		||||
 -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} ..
 | 
			
		||||
make %{?_smp_mflags}
 | 
			
		||||
popd
 | 
			
		||||
cd ../
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
## Remove rpaths
 | 
			
		||||
chrpath -d %{buildroot}%{_bindir}/*
 | 
			
		||||
%install
 | 
			
		||||
pushd %{name}-%{version}/build
 | 
			
		||||
%make_install
 | 
			
		||||
 | 
			
		||||
## Generate manpages from binaries
 | 
			
		||||
%if 0%{?el6}
 | 
			
		||||
@ -129,24 +183,58 @@ mkdir -p %{buildroot}%{_mandir}/man1
 | 
			
		||||
mv *.1 %{buildroot}%{_mandir}/man1
 | 
			
		||||
popd
 | 
			
		||||
 | 
			
		||||
# Save metis.h with IDXTYPEWIDTH = 32
 | 
			
		||||
mv %{buildroot}%{_includedir}/metis.h %{buildroot}%{_includedir}/metis32.h
 | 
			
		||||
 | 
			
		||||
%if 0%{?arch64}
 | 
			
		||||
pushd metis64/build64
 | 
			
		||||
%make_install
 | 
			
		||||
# Save metis.h with IDXTYPEWIDTH = 64
 | 
			
		||||
mv %{buildroot}%{_includedir}/metis.h %{buildroot}%{_includedir}/metis64.h
 | 
			
		||||
popd
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
# Save metis.h with IDXTYPEWIDTH = 32
 | 
			
		||||
mv %{buildroot}%{_includedir}/metis32.h %{buildroot}%{_includedir}/metis.h
 | 
			
		||||
 | 
			
		||||
## Remove rpaths
 | 
			
		||||
chrpath -d %{buildroot}%{_bindir}/*
 | 
			
		||||
 | 
			
		||||
%check
 | 
			
		||||
cp -p %{buildroot}%{_bindir}/* graphs
 | 
			
		||||
pushd graphs
 | 
			
		||||
cp -p %{buildroot}%{_bindir}/* %{name}-%{version}/graphs
 | 
			
		||||
pushd %{name}-%{version}/graphs
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./ndmetis mdual.graph
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./mpmetis metis.mesh 2
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./gpmetis test.mgraph 4
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./gpmetis copter2.graph 4
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./graphchk 4elt.graph
 | 
			
		||||
%if 0%{?arch64}
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./ndmetis64 mdual.graph
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./mpmetis64 metis.mesh 2
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./gpmetis64 test.mgraph 4
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./gpmetis64 copter2.graph 4
 | 
			
		||||
LD_LIBRARY_PATH=%{buildroot}%{_libdir}:$LD_LIBRARY_PATH ./graphchk64 4elt.graph
 | 
			
		||||
%endif
 | 
			
		||||
popd
 | 
			
		||||
 | 
			
		||||
%post -p /sbin/ldconfig
 | 
			
		||||
%postun -p /sbin/ldconfig
 | 
			
		||||
 | 
			
		||||
%if 0%{?arch64}
 | 
			
		||||
%post -n metis64 -p /sbin/ldconfig
 | 
			
		||||
%postun -n metis64 -p /sbin/ldconfig
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%files
 | 
			
		||||
%{!?_licensedir:%global license %doc}
 | 
			
		||||
%doc Changelog manual/manual.pdf
 | 
			
		||||
%license LICENSE.txt
 | 
			
		||||
%{_bindir}/*
 | 
			
		||||
%doc %{name}-%{version}/Changelog %{name}-%{version}/manual/manual.pdf
 | 
			
		||||
%license %{name}-%{version}/LICENSE.txt
 | 
			
		||||
%{_bindir}/cmpfillin
 | 
			
		||||
%{_bindir}/gpmetis
 | 
			
		||||
%{_bindir}/graphchk
 | 
			
		||||
%{_bindir}/m2gmetis
 | 
			
		||||
%{_bindir}/mpmetis
 | 
			
		||||
%{_bindir}/ndmetis
 | 
			
		||||
%{_mandir}/man1/*.1.gz
 | 
			
		||||
%{_libdir}/lib%{name}.so.*
 | 
			
		||||
 | 
			
		||||
@ -154,7 +242,28 @@ popd
 | 
			
		||||
%{_includedir}/%{name}.h
 | 
			
		||||
%{_libdir}/lib%{name}.so
 | 
			
		||||
 | 
			
		||||
%if 0%{?arch64}
 | 
			
		||||
%files -n metis64
 | 
			
		||||
%{!?_licensedir:%global license %doc}
 | 
			
		||||
%doc metis64/Changelog metis64/manual/manual.pdf
 | 
			
		||||
%license metis64/LICENSE.txt
 | 
			
		||||
%{_bindir}/cmpfillin64
 | 
			
		||||
%{_bindir}/gpmetis64
 | 
			
		||||
%{_bindir}/graphchk64
 | 
			
		||||
%{_bindir}/m2gmetis64
 | 
			
		||||
%{_bindir}/mpmetis64
 | 
			
		||||
%{_bindir}/ndmetis64
 | 
			
		||||
%{_libdir}/lib%{name}64.so.*
 | 
			
		||||
 | 
			
		||||
%files -n metis64-devel
 | 
			
		||||
%{_includedir}/%{name}64.h
 | 
			
		||||
%{_libdir}/lib%{name}64.so
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%changelog
 | 
			
		||||
* Mon Feb 15 2016 Antonio Trande <sagitter@fedoraproject.org> - 5.1.0-12
 | 
			
		||||
- Build 64 integer version
 | 
			
		||||
 | 
			
		||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 5.1.0-11
 | 
			
		||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										52
									
								
								metis_lib64.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								metis_lib64.patch
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,52 @@
 | 
			
		||||
--- libmetis/CMakeLists.orig.txt	2016-02-16 19:06:56.480139000 +0100
 | 
			
		||||
+++ libmetis/CMakeLists.txt	2016-02-16 19:07:55.511134162 +0100
 | 
			
		||||
@@ -3,14 +3,14 @@
 | 
			
		||||
 # Find sources.
 | 
			
		||||
 file(GLOB metis_sources *.c)
 | 
			
		||||
 # Build libmetis.
 | 
			
		||||
-add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
 | 
			
		||||
-set_target_properties(metis PROPERTIES SOVERSION 0)
 | 
			
		||||
+add_library(metis64 ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
 | 
			
		||||
+set_target_properties(metis64 PROPERTIES SOVERSION 0)
 | 
			
		||||
 if(UNIX)
 | 
			
		||||
-  target_link_libraries(metis m)
 | 
			
		||||
+  target_link_libraries(metis64 m)
 | 
			
		||||
 endif()
 | 
			
		||||
 
 | 
			
		||||
 if(METIS_INSTALL)
 | 
			
		||||
-  install(TARGETS metis
 | 
			
		||||
+  install(TARGETS metis64
 | 
			
		||||
     LIBRARY DESTINATION lib${LIB_SUFFIX}
 | 
			
		||||
     RUNTIME DESTINATION lib${LIB_SUFFIX}
 | 
			
		||||
     ARCHIVE DESTINATION lib${LIB_SUFFIX})
 | 
			
		||||
--- programs/CMakeLists.orig.txt	2013-03-30 17:24:45.000000000 +0100
 | 
			
		||||
+++ programs/CMakeLists.txt	2016-02-16 22:42:18.625946692 +0100
 | 
			
		||||
@@ -2,19 +2,19 @@
 | 
			
		||||
 include_directories(../libmetis)
 | 
			
		||||
 link_directories(/home/karypis/local/lib)
 | 
			
		||||
 # Build program.
 | 
			
		||||
-add_executable(gpmetis gpmetis.c cmdline_gpmetis.c io.c stat.c)
 | 
			
		||||
-add_executable(ndmetis ndmetis.c cmdline_ndmetis.c io.c smbfactor.c)
 | 
			
		||||
-add_executable(mpmetis mpmetis.c cmdline_mpmetis.c io.c stat.c)
 | 
			
		||||
-add_executable(m2gmetis m2gmetis.c cmdline_m2gmetis.c io.c)
 | 
			
		||||
-add_executable(graphchk graphchk.c io.c)
 | 
			
		||||
-add_executable(cmpfillin cmpfillin.c io.c smbfactor.c)
 | 
			
		||||
-foreach(prog gpmetis ndmetis mpmetis m2gmetis graphchk cmpfillin)
 | 
			
		||||
-  target_link_libraries(${prog} metis)
 | 
			
		||||
+add_executable(gpmetis64 gpmetis.c cmdline_gpmetis.c io.c stat.c)
 | 
			
		||||
+add_executable(ndmetis64 ndmetis.c cmdline_ndmetis.c io.c smbfactor.c)
 | 
			
		||||
+add_executable(mpmetis64 mpmetis.c cmdline_mpmetis.c io.c stat.c)
 | 
			
		||||
+add_executable(m2gmetis64 m2gmetis.c cmdline_m2gmetis.c io.c)
 | 
			
		||||
+add_executable(graphchk64 graphchk.c io.c)
 | 
			
		||||
+add_executable(cmpfillin64 cmpfillin.c io.c smbfactor.c)
 | 
			
		||||
+foreach(prog gpmetis64 ndmetis64 mpmetis64 m2gmetis64 graphchk64 cmpfillin64)
 | 
			
		||||
+  target_link_libraries(${prog} metis64)
 | 
			
		||||
 #  target_link_libraries(${prog} metis profiler)
 | 
			
		||||
 endforeach(prog)
 | 
			
		||||
 
 | 
			
		||||
 if(METIS_INSTALL)
 | 
			
		||||
-  install(TARGETS gpmetis ndmetis mpmetis m2gmetis graphchk cmpfillin
 | 
			
		||||
+  install(TARGETS gpmetis64 ndmetis64 mpmetis64 m2gmetis64 graphchk64 cmpfillin64
 | 
			
		||||
     RUNTIME DESTINATION bin)
 | 
			
		||||
 endif()
 | 
			
		||||
 
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user