Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2
llvm
llvm.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File llvm.spec of Package llvm
# # spec file for package llvm # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # 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/ # %define _revision 262553 %define _release_version 3.8.0 %define build_lldb 0 %define build_libcxx 0 %define build_openmp 0 %ifarch x86_64 %define build_libcxx 1 %define build_lldb 1 %endif %ifarch ppc64 ppc64le %{ix86} x86_64 %define build_openmp 1 %endif %if !0%{?is_opensuse} %define build_libcxx 0 %define build_lldb 0 %define build_openmp 0 %endif Name: llvm Version: 3.8.0 Release: 0 Summary: Low Level Virtual Machine License: NCSA Group: Development/Languages/Other Url: http://www.llvm.org Source0: http://llvm.org/releases/%{version}/llvm-%{version}.src.tar.xz Source1: http://llvm.org/releases/%{version}/cfe-%{version}.src.tar.xz Source2: http://llvm.org/releases/%{version}/compiler-rt-%{version}.src.tar.xz Source3: http://llvm.org/releases/%{version}/libcxx-%{version}.src.tar.xz Source4: http://llvm.org/releases/%{version}/libcxxabi-%{version}.src.tar.xz Source5: http://llvm.org/releases/%{version}/openmp-%{version}.src.tar.xz # Manually created docs # cd docs # make -f Makefile.sphinx man html # cd .. # tar cvJf llvm-docs-3.8.0.src.tar.xz llvm-3.8.0.src/docs/_build/{man,html} Source6: llvm-docs-%{version}.src.tar.xz Source7: cfe-docs-%{version}.src.tar.xz Source8: http://llvm.org/releases/%{version}/clang-tools-extra-%{version}.src.tar.xz Source9: http://llvm.org/releases/%{version}/lldb-%{version}.src.tar.xz Source100: %{name}-rpmlintrc Source101: baselibs.conf # PATCH-FIX-OPENSUSE set-revision.patch idoenmez@suse.de -- Allow us to set revision Patch1: set-revision.patch # PATCH-FIX-OPENSUSE assume-opensuse.patch idoenmez@suse.de -- Always enable openSUSE/SUSE features Patch2: assume-opensuse.patch # PATCH-FIX-OPENSUSE default-to-i586.patch -- Use i586 as default target for 32bit Patch3: default-to-i586.patch # PATCH-FIX-OPENSUSE arm_suse_support.diff --Enable ARM suse toolchain support Patch4: arm_suse_support.diff Patch5: clang-resourcedirs.patch Patch6: llvm-remove-clang-only-flags.patch Patch7: llvm-fix-find-gcc5-install.patch Patch8: revert-cmake-soname.patch Patch9: lldb-cmake.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: binutils-devel >= 2.21.90 BuildRequires: bison BuildRequires: cmake BuildRequires: fdupes BuildRequires: flex BuildRequires: gcc5 BuildRequires: gcc5-c++ BuildRequires: groff BuildRequires: libedit-devel BuildRequires: libstdc++-devel BuildRequires: libtool BuildRequires: ncurses-devel BuildRequires: ninja BuildRequires: python-base BuildRequires: python-xml # llvm does not work on ppc or s390 ExcludeArch: ppc s390 %description LLVM is a compiler infrastructure designed for compile-time, link-time, runtime, and idle-time optimization of programs from arbitrary programming languages. The compiler infrastructure includes mirror sets of programming tools as well as libraries with equivalent functionality. %package -n libLLVM Summary: Libraries for LLVM Group: Development/Libraries/C and C++ %description -n libLLVM This package contains the shared libraries needed for LLVM. %package devel Summary: Header Files for LLVM Group: Development/Languages/Other Requires: %{name} = %{version} %description devel This package contains library and header files needed to develop new native programs that use the LLVM infrastructure. %package clang Summary: CLANG frontend for LLVM Group: Development/Languages/Other Provides: clang %description clang This package contains the clang (C language) frontend for LLVM. %package -n libclang Summary: Library files needed for clang Group: Development/Libraries/C and C++ %description -n libclang This package contains the shared libraries needed for clang. %package clang-devel Summary: CLANG frontend for LLVM (devel package) Group: Development/Languages/Other Requires: llvm-clang = %{version} Requires: llvm-devel = %{version} %description clang-devel This package contains the clang (C language) frontend for LLVM. (development files) %package vim-plugins Summary: Vim plugins for LLVM Group: Productivity/Text/Editors Requires: vim %description vim-plugins This package contains vim plugins for LLVM like syntax highlighting. %package -n python-clang Summary: Python bindings for libclang Group: Development/Languages/Python Requires: libclang = %{version} Requires: python %description -n python-clang This package contains the Python bindings to clang (C language) frontend for LLVM. %if %{build_lldb} %package -n lldb Summary: Next generation high-performance debugger Group: Development/Languages # We don't want to provide an unstable lldb-devel package now. # Reconsider later when it has a stable API. Provides: lldb-devel = %{version} Obsoletes: lldb-devel < %{version} %description -n lldb LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler. %endif %prep %setup -q -a 1 -a 2 -a 3 -a 4 -a 5 -a 7 -a 8 -a 9 -b 6 -n %{name}-%{version}.src %patch1 %patch2 %patch3 %patch4 %patch5 %patch6 -p1 %patch7 %patch8 -p1 %patch9 # Move into right place mv cfe-%{version}.src tools/clang mv compiler-rt-%{version}.src projects/compiler-rt mv clang-tools-extra-%{version}.src tools/clang/tools/extra %if %{build_openmp} mv openmp-%{version}.src projects/openmp %endif %if %{build_libcxx} mv libcxx-%{version}.src projects/libcxx mv libcxxabi-%{version}.src projects/libcxxabi rm projects/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname.pass.cpp rm projects/libcxx/test/std/localization/locale.categories/category.time/locale.time.get.byname/get_monthname_wide.pass.cpp %endif %if %{build_lldb} mv lldb-%{version}.src tools/lldb %endif # We hardcode i586 rm tools/clang/test/Driver/x86_features.c rm tools/clang/test/Driver/nacl-direct.c sed -i s,SVN_REVISION,\"%{_revision}\",g tools/clang/lib/Basic/Version.cpp sed -i s,LLVM_REVISION,\"%{_revision}\",g tools/clang/lib/Basic/Version.cpp %if %{build_lldb} sed -i s,LLDB_REVISION,\"%{_revision}\",g tools/lldb/source/lldb.cpp %endif # ARMv6 needs this exact host triple %ifarch armv6hl cat > autoconf/config.guess << EOF #!/bin/sh echo armv6hl-suse-linux-gnueabi EOF %endif %build TOPLEVEL=$PWD mkdir stage1 stage2 pushd stage1 export CC=gcc-5 export CXX=g++-5 cmake -G "Ninja" \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_TARGETS_TO_BUILD=host \ -DLLDB_DISABLE_PYTHON=ON \ %ifarch armv6hl -DCMAKE_C_FLAGS="-target armv6hl-suse-linux-gnueabi -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ -DCMAKE_CXX_FLAGS="-target armv6hl-suse-linux-gnueabi -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ %endif %ifarch armv7hl -DCMAKE_C_FLAGS="-mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16" \ -DCMAKE_CXX_FLAGS="-mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16" \ %endif .. ninja %{?_smp_mflags} clang -v popd pushd stage2 export CC=$TOPLEVEL/stage1/bin/clang export CXX=$TOPLEVEL/stage1/bin/clang++ cmake -G "Ninja" \ -DBUILD_SHARED_LIBS=ON \ %ifarch %arm ppc64 ppc64le -DCMAKE_BUILD_TYPE=Release \ %else -DCMAKE_BUILD_TYPE=RelWithDebInfo \ %endif -DCMAKE_INSTALL_PREFIX=%{_prefix} \ %ifarch armv6hl -DCMAKE_C_FLAGS="-target armv6hl-suse-linux-gnueabi -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ -DCMAKE_CXX_FLAGS="-target armv6hl-suse-linux-gnueabi -mfloat-abi=hard -march=armv6zk -mtune=arm1176jzf-s -mfpu=vfp" \ -DLLVM_DEFAULT_TARGET_TRIPLE=armv6-unknown-linux-gnueabihf \ %endif %ifarch armv7hl -DCMAKE_C_FLAGS="-mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16" \ -DCMAKE_CXX_FLAGS="-mfloat-abi=hard -march=armv7-a -mtune=cortex-a9 -mfpu=vfpv3-d16" \ -DLLVM_DEFAULT_TARGET_TRIPLE=armv7l-unknown-linux-gnueabihf \ %endif %if "%{_lib}" == "lib64" -DLLVM_LIBDIR_SUFFIX=64 \ %endif -DLLVM_REQUIRES_RTTI=ON \ -DLLVM_ENABLE_TIMESTAMPS=OFF \ -DLLVM_ENABLE_ASSERTIONS=OFF \ -DLLVM_ENABLE_PIC=ON \ -DLLVM_BINUTILS_INCDIR=/usr/include \ %ifarch %{ix86} x86_64 -DLLVM_TARGETS_TO_BUILD="all" \ %else -DLLVM_TARGETS_TO_BUILD=host \ %endif %if %{build_lldb} -DLLDB_DISABLE_PYTHON=ON \ %endif .. ninja %{?_smp_mflags} -v %check cd stage2 %ifnarch armv7hl armv7l %if 0%{!?qemu_user_space_build:1} # we just do not have enough memory with qemu emulation ninja check ninja clang-test %if %{build_libcxx} ninja check-libcxx ninja check-libcxxabi %endif %endif %endif %install cd stage2 DESTDIR=%{buildroot} ninja install cd .. # Build man/html pages cd docs # Docs are prebuilt due to sphinx dependency #make -f Makefile.sphinx html man rm -rf %{buildroot}/usr/docs mkdir -p %{buildroot}%{_docdir}/llvm/html mkdir -p %{buildroot}/usr/share/man/man1 cp -r _build/man/* %{buildroot}/usr/share/man/man1 cp -r _build/html/* %{buildroot}%{_docdir}/llvm/html cd ../tools/clang/docs mkdir -p %{buildroot}%{_docdir}/llvm-clang/html cp -r _build/man/* %{buildroot}/usr/share/man/man1 cp -r _build/html/* %{buildroot}%{_docdir}/llvm-clang/html cd ../../.. # install python bindings install -d %{buildroot}%{py_sitedir}/clang pushd tools/clang/bindings/python cp clang/*.py %{buildroot}%{py_sitedir}/clang install -d %{buildroot}%{_docdir}/python-clang/examples/cindex cp -r examples %{buildroot}%{_docdir}/python-clang install -d %{buildroot}%{_docdir}/python-clang/tests/cindex/INPUTS cp -r tests %{buildroot}%{_docdir}/python-clang popd mkdir -p %{buildroot}%{_libdir}/bfd-plugins ln -s %{_libdir}/LLVMgold.so %{buildroot}%{_libdir}/bfd-plugins/ install -m 755 -d %{buildroot}%{_datadir}/vim/site/ for i in ftdetect ftplugin indent syntax; do cp -r utils/vim/$i %{buildroot}%{_datadir}/vim/site/ done mv utils/vim/README utils/vim/README.vim mv %{buildroot}%{_prefix}/libexec/{c++,ccc}-analyzer %{buildroot}%{_bindir} chmod -x %{buildroot}%{_mandir}/man1/scan-build.1 # Stuff we don't want to include rm %{buildroot}%{_mandir}/man1/lit.1 %if %{build_openmp} rm %{buildroot}%{_libdir}/libgomp.so rm %{buildroot}%{_libdir}/libiomp*.so %endif %if %{build_lldb} rm %{buildroot}%{_libdir}/liblldb*.a rm %{buildroot}%{_libdir}/liblldb.so rm -r %{buildroot}%{_includedir}/lldb %endif %fdupes -s %{buildroot}%{_docdir}/%{name} %fdupes -s %{buildroot}%{_docdir}/%{name}-doc %post -n libLLVM -p /sbin/ldconfig %postun -n libLLVM -p /sbin/ldconfig %post clang -p /sbin/ldconfig %postun clang -p /sbin/ldconfig %post -n libclang -p /sbin/ldconfig %postun -n libclang -p /sbin/ldconfig %post clang-devel -p /sbin/ldconfig %postun clang-devel -p /sbin/ldconfig %if %{build_lldb} %post -n lldb -p /sbin/ldconfig %postun -n lldb -p /sbin/ldconfig %endif %files %defattr(-,root,root) %{_bindir}/bugpoint %{_bindir}/llc %{_bindir}/lli %exclude %{_bindir}/llvm-config %{_bindir}/llvm* %{_bindir}/obj2yaml %{_bindir}/opt %{_bindir}/sancov %{_bindir}/verify-uselistorder %{_bindir}/yaml2obj %exclude %{_mandir}/man1/llvm-config.1%{ext_man} %{_mandir}/man1/bugpoint.1%{ext_man} %{_mandir}/man1/tblgen.1%{ext_man} %{_mandir}/man1/llc.1%{ext_man} %{_mandir}/man1/lli.1%{ext_man} %{_mandir}/man1/llvm*.1%{ext_man} %{_mandir}/man1/FileCheck.1%{ext_man} %{_mandir}/man1/opt.1%{ext_man} %files -n libLLVM %defattr(-,root,root,-) %{_libdir}/libLLVM*.so.* %files clang %defattr(-,root,root) %{_bindir}/c-index-test %{_bindir}/c++-analyzer %{_bindir}/ccc-analyzer %{_bindir}/clang %{_bindir}/clang-* %{_bindir}/clang++ %{_bindir}/clang-format %{_bindir}/git-clang-format %{_bindir}/modularize %{_bindir}/scan-build %{_bindir}/scan-view %{_datadir}/clang %{_datadir}/scan-build %{_datadir}/scan-view %{_mandir}/man1/clang.1%{ext_man} %{_mandir}/man1/scan-build.1%{ext_man} %{_libdir}/libLTO.* %if %{build_openmp} %{_libdir}/libomp.so %endif %if %{build_libcxx} %{_libdir}/libc++* %{_includedir}/c++/* %endif %{_libdir}/LLVMgold.so %{_libdir}/bfd-plugins/ %{_libdir}/clang %ifnarch s390x %{_libdir}/clang/%{_release_version}/lib/linux/ %endif %files -n libclang %defattr(-,root,root,-) %{_libdir}/libclang*.so.* %files clang-devel %defattr(-,root,root) %{_libdir}/libclang*.so %{_includedir}/clang %{_includedir}/clang-c %doc %{_docdir}/llvm-clang %files devel %defattr(-,root,root,-) %{_bindir}/llvm-config %{_libdir}/libLLVM*.so %{_libdir}/BugpointPasses.* %{_libdir}/LLVMHello.* %doc %{_mandir}/man1/llvm-config.1%{ext_man} %{_includedir}/llvm/ %{_includedir}/llvm-c/ %dir %{_datadir}/llvm %{_datadir}/llvm/cmake/ %doc %{_docdir}/llvm %files vim-plugins %defattr(-,root,root,-) %doc utils/vim/README.vim %{_datadir}/vim/ %files -n python-clang %defattr(-,root,root) %{py_sitedir}/clang %{py_sitedir}/clang/__init__.py %{py_sitedir}/clang/cindex.py %{py_sitedir}/clang/enumerations.py %doc %{_docdir}/python-clang %if %{build_lldb} %files -n lldb %defattr(-,root,root,-) %{_libdir}/liblldb.so.* %{_bindir}/lldb* %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor