%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 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 3.8.0-3mamba - rebuilt using cmake * Sat May 28 2016 Silvan Calarco 3.8.0-2mamba - rebuilt * Thu May 26 2016 Automatic Build System 3.8.0-1mamba - automatic version update by autodist * Sun Jan 18 2015 Automatic Build System 3.5.1-1mamba - automatic version update by autodist * Fri Sep 19 2014 Silvan Calarco 3.5.0-2mamba - patch llvm-config for x86_64 support and %{_libdir}/llvm * Wed Sep 10 2014 Silvan Calarco 3.5.0-1mamba - update to 3.5.0 * Thu Jul 10 2014 Silvan Calarco 3.4.2-1mamba - update to 3.4.2 * Sun Feb 16 2014 Silvan Calarco 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 3.4-1mamba - update to 3.4 * Thu Jun 20 2013 Automatic Build System 3.3-1mamba - update to 3.3 * Sat Dec 22 2012 Automatic Build System 3.2-1mamba - automatic version update by autodist * Fri Jul 20 2012 Silvan Calarco 3.1-1mamba - update to 3.1 * Thu Feb 23 2012 Ercole 'ercolinux' Carpanetto 3.0.-1mamba - update to 3.0 * Sun Jul 10 2011 Silvan Calarco 2.9-1mamba - update to 2.9 * Sat Jan 01 2011 Davide Madrisan 2.8-1mamba - package created by autospec