llvm/llvm.spec

500 lines
16 KiB
RPMSpec

%define gccver %(gcc -dumpversion)
Name: llvm
Version: 3.8.0
Release: 3mamba
Summary: The Low Level Virtual Machine
Group: Development/Languages
Vendor: openmamba
Distribution: openmamba
Packager: Davide Madrisan <davide.madrisan@gmail.com>
URL: http://llvm.org/
Source0: http://llvm.org/releases/%{version}/llvm-%{version}.src.tar.xz
Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz
Patch0: %{name}-3.1-llvm-config.patch
Patch1: llvm-3.4-default-to-i586.patch
Patch2: llvm-3.7.0-openmamba-triplet.patch
Patch3: llvm-3.5.0-buildfix-CommandLine_h-getOption.patch
Patch4: llvm-3.5.0-x86_64-llvm-config.patch
Patch5: llvm-3.5.0-llvm-config.patch
Patch6: llvm-3.8.0-ocamldoc-install.patch
License: NCSA
## AUTOBUILDREQ-BEGIN
BuildRequires: glibc-devel
BuildRequires: libedit-devel
BuildRequires: libgcc
BuildRequires: libncurses-devel
BuildRequires: libperl
BuildRequires: libstdc++6-devel
BuildRequires: libxml2-devel
BuildRequires: libz-devel
BuildRequires: perl-devel
## AUTOBUILDREQ-END
BuildRequires: gcc-c++
BuildRequires: glibc-devel
BuildRequires: ocaml
BuildRequires: ocaml-ctypes
BuildRequires: ocaml-ounit
#Requires: gcc >= %{gccver}
#Requires: gcc-c++ >= %{gccver}
BuildRoot: %{_tmppath}/%{name}-%{version}-root
%description
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.
%package -n lib%{name}
Group: System/Libraries
Summary: Shared libraries for %{name}
%description -n lib%{name}
This package contains shared libraries for %{name}.
%package -n lib%{name}-devel
Summary: Libraries and header files for LLVM
Group: Development/Languages
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
Provides: llvm-devel
Obsoletes: llvm-devel
Requires: libstdc++6-devel
%description -n lib%{name}-devel
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.
This package contains library and header files needed to develop new native programs that use the LLVM infrastructure.
%package devel
Summary: Libraries and header files for LLVM
Group: Development/Languages
Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release}
Requires: libstdc++6-devel
%description devel
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.
This package contains library and header files needed to develop new native programs that use the LLVM infrastructure.
%package -n clang
Summary: LLVM native C/C++/Objective-C compiler
Group: Development/Languages
Requires: gcc-c++
Provides: cfe
Provides: llvm-clang
Obsoletes: llvm-clang
%description -n clang
Cfe is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, extremely useful error and warning messages and to provide a platform for building great source level tools.
The Cfe Static Analyzer is a tool automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Cfe frontend as a library to parse C/C++ code.
%package -n clang-devel
Summary: Libraries and header files for LLVM cfe
Group: Development/Languages
Requires: clang = %{?epoch:%epoch:}%{version}-%{release}
Provides: cfe-devel
Provides: llvm-clang-devel
Obsoletes: llvm-clang-devel
%description -n clang-devel
Cfe is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles, extremely useful error and warning messages and to provide a platform for building great source level tools.
The Cfe Static Analyzer is a tool automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Cfe frontend as a library to parse C/C++ code.
This package contains header files for the Cfe compiler.
%package ocaml
Summary: OCaml binding for LLVM
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
#Requires: ocaml-runtime
%description ocaml
OCaml binding for LLVM.
%package ocaml-devel
Summary: Development files for %{name}-ocaml
Group: Development/Libraries
Requires: %{name}-devel = %{?epoch:%epoch:}%{version}-%{release}
Requires: %{name}-ocaml = %{?epoch:%epoch:}%{version}-%{release}
Requires: ocaml
%description ocaml-devel
The %{name}-ocaml-devel package contains libraries and signature files for developing applications that use %{name}-ocaml.
%prep
%setup -q -a1 -n %{name}-%{version}.src
#-D -T
#:<< __EOF
#%patch0 -p1
#%patch1 -p1
mv cfe-%{version}.src tools/clang
%patch2 -p1
#%patch3 -p1
#%ifarch x86_64
#%patch4 -p1
#%else
#%patch5 -p1
#%endif
%patch6 -p1
%build
%cmake -d build \
-DCMAKE_BUILD_TYPE=Release \
%ifarch x86_64
-DLLVM_LIBDIR_SUFFIX="64/llvm" \
%else
-DLLVM_LIBDIR_SUFFIX="/llvm" \
%endif
-DLLVM_BUILD_LLVM_DYLIB=ON \
-DLLVM_DYLIB_EXPORT_ALL=ON \
-DLLVM_LINK_LLVM_DYLIB=OFF \
%ifnarch arm
-DLLVM_ENABLE_RTTI=ON \
%else
-DCOMPILER_RT_BUILD_BUILTINS=OFF \
%endif
-DLLVM_ENABLE_FFI=ON \
-DLLVM_BUILD_TESTS=ON \
-DLLVM_BUILD_DOCS=ON \
-DLLVM_ENABLE_SPHINX=ON \
-DLLVM_ENABLE_DOXYGEN=OFF \
-DSPHINX_WARNINGS_AS_ERRORS=OFF \
-DBUILD_SHARED_LIBS=ON \
-DFFI_INCLUDE_DIR=`pkg-config --variable=includedir libffi` \
-DLLVM_BINUTILS_INCDIR=/usr/include \
:<< __OLD
mkdir -p build
cd build
# 3.8.0: set libdir as %{_libdir}/llvm
%ifarch x86_64
sed -i 's|@LLVM_LIBDIR_SUFFIX@|64/%{name}|g' ../tools/llvm-config/BuildVariables.inc.in
%else
sed -i 's|@LLVM_LIBDIR_SUFFIX@|/%{name}|g' ../tools/llvm-config/BuildVariables.inc.in
%endif
#:<< ___EOF
ln -sf ../configure .
%configure \
--with-arch=%{_target_cpu} \
--target=%{_target_cpu} \
--libdir=%{_libdir}/%{name} \
--datadir=%{_libdir}/%{name} \
--disable-assertions \
--disable-expensive-checks \
--disable-debug-runtime \
--enable-jit \
--enable-shared \
--enable-lffi \
--enable-targets=all \
--with-gcc-toolchain=%{_prefix} \
--with-c-include-dirs=%{_includedir}:%{_libdir}/gcc/%{_target_platform}/%{gccver}/include \
--with-cxx-include-root=%{_includedir}/c++/%{gccver} \
--with-cxx-include-arch=%{_target_platform} \
--with-extra-ld-options="-Wl,-R,%{_libdir}/gcc/%{_target_platform}/%{gccver}"
# --enable-doxygen
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
#___EOF
__OLD
%make
%install
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%makeinstall -C build
install -d %{buildroot}%{_sysconfdir}/ld.so.conf.d
cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF
%{_libdir}/llvm
EOF
rm -f %{buildroot}%{_datadir}/doc/clang/html/.buildinfo
rm -f %{buildroot}%{_datadir}/doc/llvm/html/.buildinfo
mv %{buildroot}%{_prefix}/docs/ocaml %{buildroot}%{_docdir}/ocaml
%ifarch x86_64
mv %{buildroot}%{_prefix}/lib/ocaml %{buildroot}%{_libdir}/
%endif
# Static analyzer not installed by default:
# http://clang-analyzer.llvm.org/installation#OtherPlatforms
#install -d %{buildroot}%{_libdir}/cfe-analyzer
## create launchers
#for f in scan-{build,view}; do
# ln -s %{_libdir}/cfe-analyzer/$f/$f %{buildroot}%{_bindir}/$f
#done
#( cd tools/clang/tools &&
# cp -pr scan-{build,view} %{buildroot}%{_libdir}/cfe-analyzer/ )
#rm -rf ./llvm-extradocs
#mv %{buildroot}%{_prefix}/docs/llvm ./llvm-extradocs || true
#rm -f ./llvm-extradocs/*.tar.gz
#rm -f ./llvm-extradocs/ocamldoc/html/*.tar.gz
#
#install -d cfe-extradocs
#for f in LICENSE.TXT NOTES.txt README.txt; do
# cp tools/clang/$f cfe-extradocs/
#done
##rm -rf tools/clang/docs/{doxygen*,Makefile*,*.graffle,tools}
#rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.*
#find examples -name 'Makefile' | xargs -0r rm -f
%clean
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
%post
/sbin/ldconfig
:
%postun
/sbin/ldconfig
:
%files
%defattr(-,root,root)
%{_bindir}/bugpoint
%{_bindir}/llc
%{_bindir}/lli
#%{_bindir}/lli-child-target
%{_bindir}/llvm*
#%{_bindir}/macho-dump
#%{_bindir}/c-index-test
%{_bindir}/obj2yaml
%{_bindir}/sancov
%{_bindir}/verify-uselistorder
%{_bindir}/yaml2obj
#%{_libdir}/ocaml/META.llvm
%exclude %{_bindir}/llvm-config
%{_bindir}/opt
%{_bindir}/scan-build
%{_bindir}/scan-view
%dir %{_datadir}/scan-build
%{_datadir}/scan-build/*
%dir %{_datadir}/scan-view
%{_datadir}/scan-view/*
%{_mandir}/man1/FileCheck.1*
%{_mandir}/man1/bugpoint.1*
%{_mandir}/man1/lit.1*
%{_mandir}/man1/llc.1*
%{_mandir}/man1/lli.1*
%{_mandir}/man1/llvm-ar.1*
%{_mandir}/man1/llvm-as.1*
%{_mandir}/man1/llvm-bcanalyzer.1*
%{_mandir}/man1/llvm-build.1*
%{_mandir}/man1/llvm-config.1*
%{_mandir}/man1/llvm-cov.1*
%{_mandir}/man1/llvm-diff.1*
%{_mandir}/man1/llvm-dis.1*
%{_mandir}/man1/llvm-dwarfdump.1*
%{_mandir}/man1/llvm-extract.1*
%{_mandir}/man1/llvm-lib.1*
%{_mandir}/man1/llvm-link.1*
%{_mandir}/man1/llvm-nm.1*
%{_mandir}/man1/llvm-profdata.1*
%{_mandir}/man1/llvm-readobj.1*
%{_mandir}/man1/llvm-stress.1*
%{_mandir}/man1/llvm-symbolizer.1*
%{_mandir}/man1/opt.1*
%{_mandir}/man1/scan-build.1*
%{_mandir}/man1/tblgen.1*
%doc CREDITS.TXT LICENSE.TXT
#doc llvm-testlog.txt
%files -n libllvm
%defattr(-,root,root)
%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf
%dir %{_libdir}/llvm
%{_libdir}/llvm/*.so
%files -n libllvm-devel
%defattr(-,root,root)
%{_bindir}/llvm-config
%{_includedir}/%{name}
%{_includedir}/%{name}-c
#%{_libdir}/%{name}/*.a
%dir %{_datadir}/doc/llvm/html/
%{_datadir}/doc/llvm/html/*
%doc README.txt
%files -n clang
%defattr(-,root,root)
#%{_bindir}/FileCheck
%{_bindir}/c-index-test
%{_bindir}/clang
%{_bindir}/clang++
%{_bindir}/clang-3.8
%{_bindir}/clang-cl
%{_bindir}/clang-check
%{_bindir}/clang-format
%{_bindir}/git-clang-format
#%{_bindir}/clang-tblgen
#%{_bindir}/count
#%{_bindir}/not
%{_prefix}/libexec/c++-analyzer
%{_prefix}/libexec/ccc-analyzer
%dir %{_libdir}/llvm/clang
%dir %{_libdir}/llvm/clang/%{version}
%{_libdir}/llvm/clang/%{version}/*
%{_libdir}/llvm/libclang.so.*
%dir %{_datadir}/clang/
%{_datadir}/clang/*
%{_mandir}/man1/clang.1*
%doc tools/clang/LICENSE.TXT
%files -n clang-devel
%defattr(-,root,root)
%dir %{_includedir}/clang-c
%{_includedir}/clang-c/*.h
#%{_includedir}/clang-c/module.modulemap
%dir %{_includedir}/clang/ARCMigrate
%{_includedir}/clang/ARCMigrate/*.h
%dir %{_includedir}/clang/AST
%{_includedir}/clang/AST/*.h
%{_includedir}/clang/AST/*.def
%{_includedir}/clang/AST/*.inc
%dir %{_includedir}/clang/Analysis
%dir %{_includedir}/clang/Analysis/Analyses
%{_includedir}/clang/Analysis/Analyses/ThreadSafetyOps.def
%dir %{_includedir}/clang/Analysis/DomainSpecific
%{_includedir}/clang/Analysis/DomainSpecific/*.h
%dir %{_includedir}/clang/Analysis/FlowSensitive
%{_includedir}/clang/Analysis/FlowSensitive/DataflowValues.h
%dir %{_includedir}/clang/Analysis/Support
%{_includedir}/clang/Analysis/Support/BumpVector.h
%dir %{_includedir}/clang/ASTMatchers/
%{_includedir}/clang/ASTMatchers/*.h
%dir %{_includedir}/clang/ASTMatchers/Dynamic
%{_includedir}/clang/ASTMatchers/Dynamic/*.h
%dir %{_includedir}/clang/Analysis/Analyses
%{_includedir}/clang/Analysis/Analyses/*.h
%{_includedir}/clang/Analysis/*.h
%dir %{_includedir}/clang/Basic
%{_includedir}/clang/Basic/*.h
%{_includedir}/clang/Basic/*.def
%{_includedir}/clang/Basic/*.inc
%dir %{_includedir}/clang/CodeGen
%{_includedir}/clang/CodeGen/*.h
%dir %{_includedir}/clang/Config
%{_includedir}/clang/Config/config.h
%dir %{_includedir}/clang/Driver
%{_includedir}/clang/Driver/*.h
%{_includedir}/clang/Driver/Options.inc
%{_includedir}/clang/Driver/Types.def
%dir %{_includedir}/clang/Edit
%{_includedir}/clang/Edit/*.h
%dir %{_includedir}/clang/Format
%{_includedir}/clang/Format/Format.h
%dir %{_includedir}/clang/Frontend
%{_includedir}/clang/Frontend/*.h
%{_includedir}/clang/Frontend/*.def
%dir %{_includedir}/clang/FrontendTool
%{_includedir}/clang/FrontendTool/Utils.h
%dir %{_includedir}/clang/Index
%{_includedir}/clang/Index/*.h
%dir %{_includedir}/clang/Lex
%{_includedir}/clang/Lex/*.h
%dir %{_includedir}/clang/Parse
%{_includedir}/clang/Parse/*.h
%{_includedir}/clang/Parse/AttrParserStringSwitches.inc
%dir %{_includedir}/clang/Rewrite
%dir %{_includedir}/clang/Rewrite/Core
%{_includedir}/clang/Rewrite/Core/*.h
%dir %{_includedir}/clang/Rewrite/Frontend
%{_includedir}/clang/Rewrite/Frontend/*.h
%dir %{_includedir}/clang/Sema
%{_includedir}/clang/Sema/*.h
%{_includedir}/clang/Sema/*.inc
%dir %{_includedir}/clang/Serialization
%{_includedir}/clang/Serialization/*.h
%{_includedir}/clang/Serialization/*.inc
%dir %{_includedir}/clang/StaticAnalyzer
%dir %{_includedir}/clang/StaticAnalyzer/Checkers
%{_includedir}/clang/StaticAnalyzer/Checkers/*.h
%dir %{_includedir}/clang/StaticAnalyzer/Core
%{_includedir}/clang/StaticAnalyzer/Core/*.h
%{_includedir}/clang/StaticAnalyzer/Core/Analyses.def
%dir %{_includedir}/clang/StaticAnalyzer/Core/BugReporter
%{_includedir}/clang/StaticAnalyzer/Core/BugReporter/*.h
%dir %{_includedir}/clang/StaticAnalyzer/Core/PathSensitive
%{_includedir}/clang/StaticAnalyzer/Core/PathSensitive/*.h
%dir %{_includedir}/clang/StaticAnalyzer/Frontend
%{_includedir}/clang/StaticAnalyzer/Frontend/*.h
%dir %{_includedir}/clang/Tooling
%{_includedir}/clang/Tooling/*
#%dir %{_prefix}/lib/clang
#%dir %{_prefix}/lib/clang/%{version}
#%dir %{_prefix}/lib/clang/%{version}/include
#%{_prefix}/lib/clang/%{version}/include/*.h
#%{_prefix}/lib/clang/%{version}/include/module.modulemap
%dir %{_datadir}/doc/clang/html/
%{_datadir}/doc/clang/html/*
%dir %{_datadir}/llvm/cmake
%{_datadir}/llvm/cmake/*.cmake
%doc tools/clang/{NOTES.txt,README.txt}
%doc tools/clang/docs
%files ocaml
%defattr(-,root,root)
%{_libdir}/ocaml/*.cma
%{_libdir}/ocaml/*.cmi
%{_libdir}/ocaml/META.llvm*
%{_libdir}/ocaml/dllllvm*.so
%files ocaml-devel
%defattr(-,root,root)
%{_libdir}/ocaml/*.a
%{_libdir}/ocaml/*.cmx*
#%{_libdir}/ocaml/*.mli
%dir %{_docdir}/ocaml
%dir %{_docdir}/ocaml/html
%{_docdir}/ocaml/html/*
#%doc llvm-extradocs/ocamldoc/html
%changelog
* Sat Jun 11 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.0-3mamba
- rebuilt using cmake
* Sat May 28 2016 Silvan Calarco <silvan.calarco@mambasoft.it> 3.8.0-2mamba
- rebuilt
* Thu May 26 2016 Automatic Build System <autodist@mambasoft.it> 3.8.0-1mamba
- automatic version update by autodist
* Sun Jan 18 2015 Automatic Build System <autodist@mambasoft.it> 3.5.1-1mamba
- automatic version update by autodist
* Fri Sep 19 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.5.0-2mamba
- patch llvm-config for x86_64 support and %{_libdir}/llvm
* Wed Sep 10 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.5.0-1mamba
- update to 3.5.0
* Thu Jul 10 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4.2-1mamba
- update to 3.4.2
* Sun Feb 16 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4-2mamba
- fix configure settings and add --with-extra-ld-options to correctly link and
pass --with-arch=%{_target_cpu} to fix penmamba bug #000163
* Sun Jan 12 2014 Silvan Calarco <silvan.calarco@mambasoft.it> 3.4-1mamba
- update to 3.4
* Thu Jun 20 2013 Automatic Build System <autodist@mambasoft.it> 3.3-1mamba
- update to 3.3
* Sat Dec 22 2012 Automatic Build System <autodist@mambasoft.it> 3.2-1mamba
- automatic version update by autodist
* Fri Jul 20 2012 Silvan Calarco <silvan.calarco@mambasoft.it> 3.1-1mamba
- update to 3.1
* Thu Feb 23 2012 Ercole 'ercolinux' Carpanetto <ercole69@gmail.com> 3.0.-1mamba
- update to 3.0
* Sun Jul 10 2011 Silvan Calarco <silvan.calarco@mambasoft.it> 2.9-1mamba
- update to 2.9
* Sat Jan 01 2011 Davide Madrisan <davide.madrisan@gmail.com> 2.8-1mamba
- package created by autospec