Пакет cilk: Specfile

Name: cilk
Version: 5.4.6
Release: alt5
Summary: Language for multithreaded parallel programming based on ANSI C
License: GPL v2 or later
Group: Development/C
Url: http://supertech.csail.mit.edu/cilk/
Packager: Eugeny A. Rostovtsev (REAL) <real at altlinux.org>

Source: http://supertech.csail.mit.edu/cilk/cilk-5.4.6.tar.gz

Requires: lib%name-devel = %version-%release
Conflicts: lib%name-devel-static < %version-%release
Obsoletes: lib%name-devel-static < %version-%release

BuildPreReq: perfctr libperfctr-devel flex chrpath

%description
Cilk is a language for multithreaded parallel programming based on ANSI
C. Cilk is designed for general-purpose parallel programming, but it is
especially effective for exploiting dynamic, highly asynchronous
parallelism, which can be difficult to write in data-parallel or
message-passing style. Using Cilk, our group has developed three
world-class chess programs, StarTech, *Socrates, and Cilkchess. Cilk
provides an effective platform for programming dense and sparse
numerical algorithms, such as matrix factorization and N-body
simulations, and we are working on other types of applications. Unlike
many other multithreaded programming systems, Cilk is algorithmic, in
that the runtime system employs a scheduler that allows the performance
of programs to be estimated accurately based on abstract complexity
measures.

%package -n lib%name
Summary: Shared libraries of Cilk
Group: System/Libraries

%description -n lib%name
Cilk is a language for multithreaded parallel programming based on ANSI
C. Cilk is designed for general-purpose parallel programming, but it is
especially effective for exploiting dynamic, highly asynchronous
parallelism, which can be difficult to write in data-parallel or
message-passing style. Using Cilk, our group has developed three
world-class chess programs, StarTech, *Socrates, and Cilkchess. Cilk
provides an effective platform for programming dense and sparse
numerical algorithms, such as matrix factorization and N-body
simulations, and we are working on other types of applications. Unlike
many other multithreaded programming systems, Cilk is algorithmic, in
that the runtime system employs a scheduler that allows the performance
of programs to be estimated accurately based on abstract complexity
measures.

This package contains shared libraries of Cilk.

%package -n lib%name-devel
Summary: Development files of Cilk
Group: Development/C
Requires: lib%name = %version-%release
Requires: libperfctr-devel

%description -n lib%name-devel
Cilk is a language for multithreaded parallel programming based on ANSI
C. Cilk is designed for general-purpose parallel programming, but it is
especially effective for exploiting dynamic, highly asynchronous
parallelism, which can be difficult to write in data-parallel or
message-passing style. Using Cilk, our group has developed three
world-class chess programs, StarTech, *Socrates, and Cilkchess. Cilk
provides an effective platform for programming dense and sparse
numerical algorithms, such as matrix factorization and N-body
simulations, and we are working on other types of applications. Unlike
many other multithreaded programming systems, Cilk is algorithmic, in
that the runtime system employs a scheduler that allows the performance
of programs to be estimated accurately based on abstract complexity
measures.

This package contains development files of Cilk.

%package -n lib%name-devel-static
Summary: Static libraries of Cilk
Group: Development/C
Requires: lib%name-devel = %version-%release

%description -n lib%name-devel-static
Cilk is a language for multithreaded parallel programming based on ANSI
C. Cilk is designed for general-purpose parallel programming, but it is
especially effective for exploiting dynamic, highly asynchronous
parallelism, which can be difficult to write in data-parallel or
message-passing style. Using Cilk, our group has developed three
world-class chess programs, StarTech, *Socrates, and Cilkchess. Cilk
provides an effective platform for programming dense and sparse
numerical algorithms, such as matrix factorization and N-body
simulations, and we are working on other types of applications. Unlike
many other multithreaded programming systems, Cilk is algorithmic, in
that the runtime system employs a scheduler that allows the performance
of programs to be estimated accurately based on abstract complexity
measures.

This package contains static libraries of Cilk.

%package examples
Summary: Examples for Cilk
Group: Development/Documentation
Requires: lib%name = %version-%release

%description examples
Cilk is a language for multithreaded parallel programming based on ANSI
C. Cilk is designed for general-purpose parallel programming, but it is
especially effective for exploiting dynamic, highly asynchronous
parallelism, which can be difficult to write in data-parallel or
message-passing style. Using Cilk, our group has developed three
world-class chess programs, StarTech, *Socrates, and Cilkchess. Cilk
provides an effective platform for programming dense and sparse
numerical algorithms, such as matrix factorization and N-body
simulations, and we are working on other types of applications. Unlike
many other multithreaded programming systems, Cilk is algorithmic, in
that the runtime system employs a scheduler that allows the performance
of programs to be estimated accurately based on abstract complexity
measures.

This package contains examples for Cilk.

%package doc
Summary: Documentation for Cilk
Group: Development/Documentation
BuildArch: noarch

%description doc
Cilk is a language for multithreaded parallel programming based on ANSI
C. Cilk is designed for general-purpose parallel programming, but it is
especially effective for exploiting dynamic, highly asynchronous
parallelism, which can be difficult to write in data-parallel or
message-passing style. Using Cilk, our group has developed three
world-class chess programs, StarTech, *Socrates, and Cilkchess. Cilk
provides an effective platform for programming dense and sparse
numerical algorithms, such as matrix factorization and N-body
simulations, and we are working on other types of applications. Unlike
many other multithreaded programming systems, Cilk is algorithmic, in
that the runtime system employs a scheduler that allows the performance
of programs to be estimated accurately based on abstract complexity
measures.

This package contains documentation for Cilk.

%prep
%setup

%build
%add_optflags %optflags_shared
%autoreconf
%configure \
	--with-perfctr
%make_build

%install
%makeinstall_std

install -d %buildroot%_infodir
install -m644 FAQ/*.info %buildroot%_infodir

install -d %buildroot%_docdir/%name/FAQ
install -p -m644 doc/*.pdf %buildroot%_docdir/%name
install -m644 FAQ/%name-faq.html/* \
	%buildroot%_docdir/%name/FAQ

cp -fR examples %buildroot%_libdir/%name/
rm -f %buildroot%_libdir/%name/examples/*.o

pushd %buildroot%_libdir/%name/examples
for i in $(ls); do
	TYPE="$(file $i|sed 's|.*\(ELF\).*|\1|')"
	if [ "$TYPE" = "ELF" -a "$(readelf -a $i|grep RPATH)" != "" ]; then
		chrpath -r %_libdir $i
	fi
done
popd

%files
%doc AUTHORS ChangeLog COPYING NEWS README THANKS
%_bindir/*
%_libdir/%name/*.a
%_libdir/%name/cilk2c

%files -n lib%name
%dir %_libdir/%name
%_libdir/*.so.*

%files -n lib%name-devel
%_libdir/*.so
%_includedir/*

%files -n lib%name-devel-static
%_libdir/*.a

%files doc
%_infodir/*
%_docdir/%name

%files examples
%_libdir/%name/examples

%changelog
* Thu Feb 10 2011 Eugeny A. Rostovtsev (REAL) <real at altlinux.org> 5.4.6-alt5
- Rebuilt for debuginfo

* Fri Oct 22 2010 Eugeny A. Rostovtsev (REAL) <real at altlinux.org> 5.4.6-alt4
- Rebuilt with set-versioned libperfctr

* Tue Oct 19 2010 Eugeny A. Rostovtsev (REAL) <real at altlinux.org> 5.4.6-alt3
- Rebuilt for soname set-versions

* Mon Sep 28 2009 Eugeny A. Rostovtsev (REAL) <real at altlinux.org> 5.4.6-alt2
- Fixed packaging errors

* Sun Sep 27 2009 Eugeny A. Rostovtsev (REAL) <real at altlinux.org> 5.4.6-alt1
- Initial build for Sisyphus