%define gccver %(gcc -dumpversion) Name: llvm35 Version: 3.5.1 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: llvm-3.1-llvm-config.patch Patch1: llvm-3.4-default-to-i586.patch Patch2: llvm-3.5.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: llvm35-3.5.1-gcc-6.1.0.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 Provides: llvm Obsoletes: llvm #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} Provides: libllvm Obsoletes: libllvm %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 Provides: llvm35-devel Obsoletes: llvm35-devel Provides: libllvm-devel Obsoletes: libllvm-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 clang35 Summary: LLVM native C/C++/Objective-C compiler Group: Development/Languages Requires: gcc-c++ Provides: cfe Provides: llvm-clang Obsoletes: llvm-clang Provides: clang Obsoletes: clang %description -n clang35 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 clang35-devel Summary: Libraries and header files for LLVM cfe Group: Development/Languages Requires: clang35 = %{?epoch:%epoch:}%{version}-%{release} Provides: cfe-devel Provides: llvm-clang-devel Obsoletes: llvm-clang-devel Provides: clang-devel Obsoletes: clang-devel %description -n clang35-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} Provides: llvm-ocaml Obsoletes: llvm-ocaml #Requires: ocaml-runtime %description ocaml OCaml binding for LLVM. %package ocaml-devel Summary: Development files for %{name}-ocaml Group: Development/Libraries Requires: lib%{name}-devel = %{?epoch:%epoch:}%{version}-%{release} Requires: %{name}-ocaml = %{?epoch:%epoch:}%{version}-%{release} Requires: ocaml Provides: llvm-ocaml-devel Obsoletes: llvm-ocaml-devel %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 llvm-%{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 -p4 %build #:<< ___EOF %configure \ --with-arch=%{_target_cpu} \ --libdir=%{_libdir}/llvm \ --datadir=%{_libdir}/llvm \ --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}/llvm|g' Makefile.config export PATH=/usr/bin:$PATH %make %install [ "%{buildroot}" != / ] && rm -rf "%{buildroot}" %makeinstall install -d %{buildroot}%{_sysconfdir}/ld.so.conf.d cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf << EOF %{_libdir}/llvm EOF # 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/ ) 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}/llvm/*LLVMHello.* rm -rf %{buildroot}/usr/docs 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 %{_libdir}/ocaml/META.llvm %exclude %{_bindir}/llvm-config %{_bindir}/opt %{_bindir}/scan-build %{_bindir}/scan-view %{_libdir}/cfe-analyzer #%{_mandir}/man1/* #%exclude %{_mandir}/man1/cfe.1.* #%exclude %{_mandir}/man1/llvmg??.1.* %doc CREDITS.TXT LICENSE.TXT #doc llvm-testlog.txt %files -n lib%{name} %defattr(-,root,root) %{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf %dir %{_libdir}/llvm %{_libdir}/llvm/*.so %files -n lib%{name}-devel %defattr(-,root,root) %{_bindir}/llvm-config %{_includedir}/llvm %{_includedir}/llvm-c %{_libdir}/llvm/*.a %doc llvm-extradocs/html %doc README.txt %files -n clang35 %defattr(-,root,root) %{_bindir}/FileCheck %{_bindir}/c-index-test %{_bindir}/clang %{_bindir}/clang++ %{_bindir}/clang-check %{_bindir}/clang-format %{_bindir}/clang-tblgen %{_bindir}/count %{_bindir}/not %{_mandir}/man1/clang.1* %doc tools/clang/LICENSE.TXT %files -n clang35-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}/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 %doc llvm-extradocs/ocamldoc/html %changelog * Thu Jul 28 2016 Silvan Calarco 3.5.1-3mamba - fixed some installation dir and requirements * Sun Jul 24 2016 Silvan Calarco 3.5.1-2mamba - legacy release for armel * 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