2011-04-20 15:53:17 +02:00
|
|
|
#
|
2011-06-03 15:52:45 +02:00
|
|
|
# spec file for package llvm
|
2011-04-20 15:53:17 +02:00
|
|
|
#
|
2011-06-03 15:52:45 +02:00
|
|
|
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
2011-04-20 15:53:17 +02:00
|
|
|
#
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
# published by the Open Source Initiative.
|
|
|
|
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
|
|
#
|
|
|
|
|
|
|
|
|
2011-05-29 19:48:28 +02:00
|
|
|
%define _sharedir %{_prefix}/share
|
2011-08-12 12:31:37 +02:00
|
|
|
%define _revision 137452
|
2011-05-29 19:48:28 +02:00
|
|
|
%define _release_version 3.0
|
2011-05-26 13:59:52 +02:00
|
|
|
|
|
|
|
%if 0%{?suse_version} >= 1200
|
|
|
|
%define _gcc_ver 4.6
|
|
|
|
%else
|
|
|
|
%define _gcc_ver 4.5
|
|
|
|
%endif
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
Name: llvm
|
2011-08-12 12:31:37 +02:00
|
|
|
Version: 2.9.99.svn20110812
|
2011-07-20 09:41:29 +02:00
|
|
|
Release: 1
|
2011-04-20 18:02:22 +02:00
|
|
|
License: NCSA
|
2011-05-30 16:35:16 +02:00
|
|
|
Summary: Low Level Virtual Machine
|
2011-04-20 15:53:17 +02:00
|
|
|
Url: http://www.llvm.org
|
2011-05-30 16:35:16 +02:00
|
|
|
Group: Development/Languages/Other
|
2011-08-03 13:49:17 +02:00
|
|
|
Source0: %{name}-%{version}.tar.xz
|
2011-04-20 15:53:17 +02:00
|
|
|
Source100: %{name}-rpmlintrc
|
2011-05-29 18:36:18 +02:00
|
|
|
# PATCH-FIX-OPENSUSE set-revision.patch idoenmez@suse.de -- Allow us to set revision
|
|
|
|
Patch1: set-revision.patch
|
|
|
|
# PATCH-FIX-OPENSUSE set-revision.patch idoenmez@suse.de -- Use correct lib prefix
|
|
|
|
Patch2: clang-cmake-lib.patch
|
2011-08-12 12:31:37 +02:00
|
|
|
# PATCH-FIX-OPENSUSE assume-opensuse.patch idoenmez@suse.de -- Always enable openSUSE/SUSE features
|
|
|
|
Patch3: assume-opensuse.patch
|
2011-04-20 15:53:17 +02:00
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
2011-05-30 16:35:16 +02:00
|
|
|
BuildRequires: autoconf
|
|
|
|
BuildRequires: automake
|
|
|
|
BuildRequires: bison
|
|
|
|
BuildRequires: chrpath
|
|
|
|
BuildRequires: cmake
|
|
|
|
BuildRequires: dejagnu
|
2011-04-20 15:53:17 +02:00
|
|
|
BuildRequires: fdupes
|
2011-05-30 16:35:16 +02:00
|
|
|
BuildRequires: flex
|
|
|
|
BuildRequires: gcc
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
BuildRequires: libtool
|
|
|
|
BuildRequires: python-devel
|
|
|
|
BuildRequires: tcl-devel
|
|
|
|
BuildRequires: tk-devel
|
2011-05-26 13:59:52 +02:00
|
|
|
BuildRequires: xz
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
# Code10 does not have libffi
|
|
|
|
%if 0%{?suse_version} > 1100
|
|
|
|
BuildRequires: libffi-devel
|
|
|
|
%endif
|
|
|
|
|
|
|
|
# LLVM is not supported on PPC64
|
|
|
|
# http://llvm.org/bugs/show_bug.cgi?id=3729
|
|
|
|
ExcludeArch: ppc64
|
|
|
|
|
|
|
|
%description
|
|
|
|
LLVM is a compiler infrastructure designed for compile-time,
|
|
|
|
link-time, runtime, and idle-time optimization of programs from
|
|
|
|
arbitrary programming languages.
|
|
|
|
|
2011-05-30 16:35:16 +02:00
|
|
|
The compiler infrastructure includes mirror sets of programming
|
2011-04-20 15:53:17 +02:00
|
|
|
tools as well as libraries with equivalent functionality.
|
|
|
|
|
|
|
|
%package devel
|
2011-06-10 11:29:12 +02:00
|
|
|
|
2011-07-11 10:27:41 +02:00
|
|
|
|
2011-04-20 15:53:17 +02:00
|
|
|
Summary: Libraries and Header Files for LLVM
|
|
|
|
Group: Development/Languages/Other
|
2011-05-30 16:35:16 +02:00
|
|
|
Requires: %{name} = %{version}
|
|
|
|
Requires: libffi-devel
|
|
|
|
Requires: libstdc++-devel >= 3.4
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%description devel
|
|
|
|
This package contains library and header files needed to develop
|
|
|
|
new native programs that use the LLVM infrastructure.
|
|
|
|
|
|
|
|
%package doc
|
2011-06-10 11:29:12 +02:00
|
|
|
|
2011-07-11 10:27:41 +02:00
|
|
|
|
2011-04-20 15:53:17 +02:00
|
|
|
Summary: Documentation for LLVM
|
|
|
|
Group: Documentation/HTML
|
2011-05-30 16:35:16 +02:00
|
|
|
Requires: %{name} = %{version}
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%description doc
|
|
|
|
Documentation for the LLVM compiler infrastructure.
|
|
|
|
|
|
|
|
%package clang
|
2011-06-10 11:29:12 +02:00
|
|
|
|
2011-07-11 10:27:41 +02:00
|
|
|
|
2011-04-20 15:53:17 +02:00
|
|
|
Summary: CLANG frontend for LLVM
|
|
|
|
Group: Development/Languages/Other
|
2011-05-30 16:35:16 +02:00
|
|
|
Requires: %{name} = %{version}
|
2011-07-11 14:41:14 +02:00
|
|
|
Provides: clang
|
2011-04-20 15:53:17 +02:00
|
|
|
%{py_requires}
|
|
|
|
|
|
|
|
%description clang
|
|
|
|
This package contains the clang (C language) frontend for LLVM.
|
|
|
|
|
2011-05-30 16:35:16 +02:00
|
|
|
%package clang-devel
|
2011-06-10 11:29:12 +02:00
|
|
|
|
2011-07-11 10:27:41 +02:00
|
|
|
|
2011-04-20 15:53:17 +02:00
|
|
|
Summary: CLANG frontend for LLVM (devel package)
|
|
|
|
Group: Development/Languages/Other
|
2011-05-30 16:35:16 +02:00
|
|
|
Requires: %{name} = %{version}
|
2011-04-20 15:53:17 +02:00
|
|
|
%{py_requires}
|
|
|
|
|
|
|
|
%description clang-devel
|
|
|
|
This package contains the clang (C language) frontend for LLVM.
|
|
|
|
(development files)
|
|
|
|
|
|
|
|
%package vim-plugins
|
2011-06-10 11:29:12 +02:00
|
|
|
|
2011-07-11 10:27:41 +02:00
|
|
|
|
2011-04-20 15:53:17 +02:00
|
|
|
Summary: Vim plugins for LLVM
|
|
|
|
Group: Productivity/Text/Editors
|
|
|
|
Requires: vim
|
|
|
|
|
|
|
|
%description vim-plugins
|
|
|
|
This package contains vim plugins for LLVM like syntax highlighting.
|
|
|
|
|
|
|
|
%prep
|
2011-05-26 13:59:52 +02:00
|
|
|
%setup -q
|
2011-05-29 18:36:18 +02:00
|
|
|
%patch1
|
|
|
|
%patch2
|
2011-08-12 12:31:37 +02:00
|
|
|
%patch3
|
2011-05-29 18:36:18 +02:00
|
|
|
sed -i s,SVN_REVISION,\"%{_revision}\",g tools/clang/lib/Basic/Version.cpp
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%build
|
2011-05-26 13:59:52 +02:00
|
|
|
TOPLEVEL=$PWD
|
|
|
|
mkdir stage1 stage2
|
|
|
|
cd stage1
|
|
|
|
|
2011-05-29 18:36:18 +02:00
|
|
|
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
|
|
|
-DLLVM_ENABLE_ASSERTIONS=TRUE \
|
2011-06-05 21:49:13 +02:00
|
|
|
-DLLVM_TARGETS_TO_BUILD=X86 \
|
2011-05-29 18:36:18 +02:00
|
|
|
..
|
2011-04-20 15:53:17 +02:00
|
|
|
|
2011-05-29 18:36:18 +02:00
|
|
|
make %{?_smp_mflags}
|
2011-05-26 13:59:52 +02:00
|
|
|
|
|
|
|
cd ../stage2
|
2011-05-29 18:36:18 +02:00
|
|
|
# Needed to make clang resource dir working inside build tree
|
|
|
|
ln -s lib lib64
|
|
|
|
|
|
|
|
export CC=$TOPLEVEL/stage1/bin/clang
|
|
|
|
export CXX=$TOPLEVEL/stage1/bin/clang++
|
2011-07-07 14:17:56 +02:00
|
|
|
export CXXFLAGS="%{optflags} -frtti"
|
2011-05-29 18:36:18 +02:00
|
|
|
|
|
|
|
cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
|
|
|
|
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
2011-07-07 14:17:56 +02:00
|
|
|
-DLLVM_ENABLE_ASSERTIONS=FALSE \
|
2011-05-29 18:36:18 +02:00
|
|
|
-DLLVM_ENABLE_PIC=TRUE \
|
|
|
|
-DLLVM_ENABLE_TIMESTAMPS=FALSE \
|
2011-06-05 21:37:37 +02:00
|
|
|
-DLLVM_TARGETS_TO_BUILD=X86 \
|
2011-05-29 18:36:18 +02:00
|
|
|
-DCLANG_VENDOR="SUSE Linux" \
|
|
|
|
%ifarch x86_64
|
|
|
|
-DLLVM_LIBDIR_SUFFIX=64 \
|
2011-04-20 15:53:17 +02:00
|
|
|
%endif
|
2011-05-29 18:36:18 +02:00
|
|
|
-DCLANG_RESOURCE_DIR="../%{_lib}/clang/%{_release_version}" \
|
|
|
|
-DC_INCLUDE_DIRS="/usr/include:\
|
|
|
|
%{_libdir}/gcc/%{_target_cpu}-suse-linux/%{_gcc_ver}/include:\
|
|
|
|
%{_libdir}/gcc/%{_target_cpu}-suse-linux/%{_gcc_ver}/include-fixed" \
|
|
|
|
..
|
|
|
|
make %{?_smp_mflags}
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%check
|
2011-05-26 13:59:52 +02:00
|
|
|
cd stage2
|
2011-04-20 15:53:17 +02:00
|
|
|
make check
|
2011-05-29 18:36:18 +02:00
|
|
|
make clang-test
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%install
|
2011-05-26 13:59:52 +02:00
|
|
|
cd stage2
|
2011-05-29 18:36:18 +02:00
|
|
|
%makeinstall
|
2011-05-26 13:59:52 +02:00
|
|
|
cd ..
|
|
|
|
|
2011-04-20 15:53:17 +02:00
|
|
|
# cleanup
|
|
|
|
file %{buildroot}/%{_bindir}/* | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
|
|
|
|
file %{buildroot}/%{_libdir}/%{name}/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
|
|
|
|
|
|
|
|
find %{buildroot}%{_includedir}/clang -name '*.tmp' -exec rm {} +
|
|
|
|
|
|
|
|
for file in `find examples -type f`; do
|
|
|
|
install -d %{buildroot}%{_docdir}/%{name}-doc/`dirname $file`
|
|
|
|
install -m 644 $file %{buildroot}%{_docdir}/%{name}-doc/$file
|
|
|
|
done
|
|
|
|
|
|
|
|
find %{buildroot}%{_docdir}/%{name}-doc/ -name '*.tar.gz' -exec rm {} \;
|
|
|
|
|
|
|
|
# install scan-build et al
|
|
|
|
install -d %{buildroot}%{_sharedir}/clang
|
2011-05-29 18:36:18 +02:00
|
|
|
install -d %{buildroot}%{py_sitedir}
|
|
|
|
|
2011-04-20 15:53:17 +02:00
|
|
|
pushd tools/clang/tools
|
|
|
|
for file in scan-build/ccc-analyzer scan-build/scan-build \
|
|
|
|
scan-view/scan-view; do
|
|
|
|
install $file %{buildroot}%{_bindir}
|
|
|
|
done
|
|
|
|
for file in scan-build/scanview.css scan-build/sorttable.js; do
|
|
|
|
install -m 644 $file %{buildroot}%{_sharedir}/clang/
|
|
|
|
done
|
|
|
|
for file in scan-view/Reporter.py scan-view/ScanView.py \
|
|
|
|
scan-view/startfile.py; do
|
|
|
|
install -m 644 $file %{buildroot}%{py_sitedir}
|
|
|
|
done
|
|
|
|
install -d %{buildroot}%{py_sitedir}/Resources/
|
|
|
|
for file in scan-view/Resources/*; do
|
|
|
|
install -m 644 $file %{buildroot}%{py_sitedir}/Resources/
|
|
|
|
done
|
|
|
|
popd
|
|
|
|
pushd %{buildroot}%{_bindir}
|
|
|
|
ln -s ccc-analyzer c++-analyzer
|
|
|
|
popd
|
|
|
|
|
|
|
|
sed -i 's,RealBin/bin/clang,RealBin/clang,' \
|
|
|
|
%{buildroot}%{_bindir}/scan-build
|
|
|
|
|
|
|
|
sed -i 's,RealBin/bin/ccc-analyzer,RealBin/ccc-analyzer,' \
|
|
|
|
%{buildroot}%{_bindir}/scan-build
|
|
|
|
|
|
|
|
sed -i 's,RealBin/bin/ccc-analyzer,RealBin/ccc-analyzer,' \
|
|
|
|
%{buildroot}%{_bindir}/scan-build
|
|
|
|
|
|
|
|
sed -i 's,$RealBin/sorttable.js,%{_sharedir}/clang/sorttable.js,' \
|
|
|
|
%{buildroot}%{_bindir}/scan-build
|
|
|
|
|
|
|
|
sed -i 's,$RealBin/scanview.css,%{_sharedir}/clang/scanview.css,' \
|
|
|
|
%{buildroot}%{_bindir}/scan-build
|
|
|
|
|
|
|
|
sed -i 's,RealBin/bin,RealBin,' \
|
|
|
|
%{buildroot}%{_bindir}/scan-build
|
|
|
|
|
|
|
|
install -m 755 -d %{buildroot}%{_datadir}/vim/site/syntax/
|
|
|
|
install -m 644 utils/vim/*.vim %{buildroot}%{_datadir}/vim/site/syntax/
|
|
|
|
mv utils/vim/README utils/vim/README.vim
|
|
|
|
|
2011-05-30 16:35:16 +02:00
|
|
|
# Create man pages because cmake buildsystem doesn't do for us
|
|
|
|
install -m 755 -d %{buildroot}%{_mandir}/man1
|
|
|
|
for i in docs/CommandGuide/*.pod tools/clang/docs/tools/*.pod; do
|
2011-06-01 15:32:18 +02:00
|
|
|
page=`echo $i|awk -F"/" '{print $(NF)}'|sed s,.pod,,` &&
|
2011-07-02 21:57:45 +02:00
|
|
|
pod2man -s1 $i %{buildroot}%{_mandir}/man1/$page.1;
|
2011-05-30 16:35:16 +02:00
|
|
|
done
|
|
|
|
|
2011-06-01 21:48:25 +02:00
|
|
|
# Remove gtest library
|
2011-06-01 23:01:24 +02:00
|
|
|
rm -f %{buildroot}%{_libdir}/*gtest*
|
|
|
|
|
|
|
|
# Wrong lib name + static
|
|
|
|
rm -f %{buildroot}%{_libdir}/liblibclang.a
|
2011-06-01 21:48:25 +02:00
|
|
|
|
2011-06-02 13:29:39 +02:00
|
|
|
# Stuff we don't want to include
|
|
|
|
rm -f %{buildroot}%{_libdir}/BugpointPasses.*
|
|
|
|
rm -f %{buildroot}%{_libdir}/LLVMHello.*
|
|
|
|
rm -f %{buildroot}%{_libdir}/libCompilerDriver.*
|
|
|
|
rm -f %{buildroot}%{_libdir}/libEnhancedDisassembly.*
|
|
|
|
|
2011-04-20 15:53:17 +02:00
|
|
|
%fdupes -s %{buildroot}%{_docdir}/%{name}
|
|
|
|
%fdupes -s %{buildroot}%{_docdir}/%{name}-doc
|
|
|
|
|
|
|
|
%post -p /sbin/ldconfig
|
|
|
|
|
|
|
|
%postun -p /sbin/ldconfig
|
|
|
|
|
|
|
|
%files
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%doc *.TXT *.txt
|
|
|
|
%{_bindir}/bugpoint
|
2011-08-12 12:31:37 +02:00
|
|
|
%{_bindir}/diagtool
|
2011-04-20 15:53:17 +02:00
|
|
|
%{_bindir}/llc
|
|
|
|
%{_bindir}/lli
|
|
|
|
%{_bindir}/macho-dump
|
|
|
|
%exclude %{_bindir}/%{name}-config
|
|
|
|
%{_bindir}/%{name}*
|
|
|
|
%{_bindir}/opt
|
2011-05-30 16:35:16 +02:00
|
|
|
%{_mandir}/man1/bugpoint.1%{ext_man}
|
|
|
|
%exclude %{_mandir}/man1/lit.1%{ext_man}
|
|
|
|
%{_mandir}/man1/llc.1%{ext_man}
|
|
|
|
%{_mandir}/man1/lli.1%{ext_man}
|
|
|
|
%exclude %{_mandir}/man1/%{name}-config.1%{ext_man}
|
|
|
|
%{_mandir}/man1/llvm*.1%{ext_man}
|
|
|
|
%{_mandir}/man1/opt.1%{ext_man}
|
2011-06-01 21:48:25 +02:00
|
|
|
%{_mandir}/man1/FileCheck.1%{ext_man}
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%files clang
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%{_bindir}/clang
|
2011-05-29 18:36:18 +02:00
|
|
|
%{_bindir}/clang-*
|
2011-04-20 15:53:17 +02:00
|
|
|
%{_bindir}/clang++
|
|
|
|
%{_bindir}/tblgen
|
|
|
|
%{_bindir}/ccc-analyzer
|
|
|
|
%{_bindir}/c++-analyzer
|
|
|
|
%{_bindir}/scan-build
|
|
|
|
%{_bindir}/scan-view
|
|
|
|
%{py_sitedir}/ScanView.py
|
|
|
|
%{py_sitedir}/Reporter.py
|
|
|
|
%{py_sitedir}/startfile.py
|
|
|
|
%{py_sitedir}/Resources
|
|
|
|
%{_sharedir}/clang
|
|
|
|
%{_mandir}/man1/clang.1.gz
|
|
|
|
%{_mandir}/man1/tblgen.1.gz
|
2011-05-30 16:35:16 +02:00
|
|
|
%dir %{_libdir}/clang
|
|
|
|
%dir %{_libdir}/clang/*
|
|
|
|
%dir %{_libdir}/clang/*/include
|
|
|
|
%{_libdir}/clang/*/include/altivec.h
|
|
|
|
%{_libdir}/clang/*/include/arm_neon.h
|
|
|
|
%{_libdir}/clang/*/include/avxintrin.h
|
|
|
|
%{_libdir}/clang/*/include/emmintrin.h
|
|
|
|
%{_libdir}/clang/*/include/float.h
|
|
|
|
%{_libdir}/clang/*/include/immintrin.h
|
|
|
|
%{_libdir}/clang/*/include/iso646.h
|
|
|
|
%{_libdir}/clang/*/include/limits.h
|
|
|
|
%{_libdir}/clang/*/include/mm_malloc.h
|
|
|
|
%{_libdir}/clang/*/include/mmintrin.h
|
|
|
|
%{_libdir}/clang/*/include/nmmintrin.h
|
|
|
|
%{_libdir}/clang/*/include/pmmintrin.h
|
|
|
|
%{_libdir}/clang/*/include/smmintrin.h
|
|
|
|
%{_libdir}/clang/*/include/stdarg.h
|
|
|
|
%{_libdir}/clang/*/include/stdbool.h
|
|
|
|
%{_libdir}/clang/*/include/stddef.h
|
|
|
|
%{_libdir}/clang/*/include/stdint.h
|
|
|
|
%{_libdir}/clang/*/include/tgmath.h
|
|
|
|
%{_libdir}/clang/*/include/tmmintrin.h
|
|
|
|
%{_libdir}/clang/*/include/varargs.h
|
|
|
|
%{_libdir}/clang/*/include/wmmintrin.h
|
|
|
|
%{_libdir}/clang/*/include/x86intrin.h
|
|
|
|
%{_libdir}/clang/*/include/xmmintrin.h
|
|
|
|
%{_libdir}/clang/*/include/mm3dnow.h
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%files clang-devel
|
|
|
|
%defattr(-,root,root)
|
|
|
|
%{_includedir}/clang
|
|
|
|
%{_includedir}/clang-c
|
2011-06-01 21:48:25 +02:00
|
|
|
%{_libdir}/libclang*
|
2011-06-01 23:01:24 +02:00
|
|
|
%{_libdir}/libLTO.*
|
|
|
|
%{_libdir}/*profile_rt*
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%files devel
|
|
|
|
%defattr(-,root,root,-)
|
|
|
|
%{_bindir}/%{name}-config
|
2011-06-02 13:29:39 +02:00
|
|
|
%dir %{_datadir}/llvm/
|
2011-06-02 09:50:08 +02:00
|
|
|
%{_datadir}/llvm/*
|
2011-05-30 16:35:16 +02:00
|
|
|
%doc %{_mandir}/man1/%{name}-config.1%{ext_man}
|
|
|
|
%{_includedir}/%{name}/
|
|
|
|
%{_includedir}/%{name}-c/
|
2011-06-01 21:48:25 +02:00
|
|
|
%{_libdir}/libLLVM*
|
2011-04-20 15:53:17 +02:00
|
|
|
|
|
|
|
%files doc
|
|
|
|
%defattr(-,root,root,-)
|
|
|
|
%{_docdir}/%{name}-doc
|
|
|
|
|
|
|
|
%files vim-plugins
|
|
|
|
%defattr(-,root,root,-)
|
|
|
|
%doc utils/vim/README.vim
|
|
|
|
%{_datadir}/vim/
|
|
|
|
|
|
|
|
%changelog
|