Index: llvm.spec =================================================================== --- /dev/null +++ llvm.spec @@ -0,0 +1,190 @@ +# Components enabled if supported by target architecture: +%ifarch %ix86 x86_64 + %bcond_without gold +%else + %bcond_with gold +%endif + +Name: llvm +Version: @CPACK_PACKAGE_VERSION@ + +Release: @LLVM_RPM_SPEC_REVISION@%{?dist} +Summary: The LLVM Compiler Infrastructure + +License: NCSA +URL: http://llvm.org +Source0: @CPACK_SOURCE_PACKAGE_FILE_NAME@.tar.gz + +BuildRequires: cmake +BuildRequires: zlib-devel +BuildRequires: libffi-devel +BuildRequires: ncurses-devel +BuildRequires: python3-sphinx +%if %{with gold} +BuildRequires: binutils-devel +%endif +BuildRequires: libstdc++-static + +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%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 devel +Summary: Libraries and header files for LLVM +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires(posttrans): %{_sbindir}/alternatives +Requires(posttrans): %{_sbindir}/alternatives + +%description devel +This package contains library and header files needed to develop new native +programs that use the LLVM infrastructure. + +%package doc +Summary: Documentation for LLVM +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +%description doc +Documentation for the LLVM compiler infrastructure. + +%package libs +Summary: LLVM shared libraries + +%description libs +Shared libraries for the LLVM compiler infrastructure. + +%package static +Summary: LLVM static libraries + +%description static +Static libraries for the LLVM compiler infrastructure. + +%prep +%setup -q -n @CPACK_SOURCE_PACKAGE_FILE_NAME@ + +%build +mkdir -p _build +cd _build + +%ifarch s390 +# Decrease debuginfo verbosity to reduce memory consumption during final library linking +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +%endif + +# force off shared libs as cmake macros turns it on. +%cmake .. \ + -DBUILD_SHARED_LIBS:BOOL=OFF \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_SHARED_LINKER_FLAGS="-Wl,-Bsymbolic -static-libstdc++" \ +%ifarch s390 + -DCMAKE_C_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ + -DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%{optflags} -DNDEBUG" \ +%endif +%if 0%{?__isa_bits} == 64 + -DLLVM_LIBDIR_SUFFIX=64 \ +%else + -DLLVM_LIBDIR_SUFFIX= \ +%endif + \ + -DLLVM_ENABLE_LIBCXX:BOOL=OFF \ + -DLLVM_ENABLE_ZLIB:BOOL=ON \ + -DLLVM_ENABLE_FFI:BOOL=ON \ + -DLLVM_ENABLE_RTTI:BOOL=ON \ +%if %{with gold} + -DLLVM_BINUTILS_INCDIR=%{_includedir} \ +%endif + \ + -DLLVM_BUILD_RUNTIME:BOOL=ON \ + \ + -DLLVM_INCLUDE_TOOLS:BOOL=ON \ + -DLLVM_BUILD_TOOLS:BOOL=ON \ + \ + -DLLVM_INCLUDE_TESTS:BOOL=ON \ + -DLLVM_BUILD_TESTS:BOOL=ON \ + \ + -DLLVM_INCLUDE_EXAMPLES:BOOL=ON \ + -DLLVM_BUILD_EXAMPLES:BOOL=OFF \ + \ + -DLLVM_INCLUDE_UTILS:BOOL=ON \ + -DLLVM_INSTALL_UTILS:BOOL=OFF \ + \ + -DLLVM_INCLUDE_DOCS:BOOL=ON \ + -DLLVM_BUILD_DOCS:BOOL=ON \ + -DLLVM_ENABLE_SPHINX:BOOL=ON \ + -DLLVM_ENABLE_DOXYGEN:BOOL=OFF \ + \ + -DLLVM_BUILD_LLVM_DYLIB:BOOL=ON \ + -DLLVM_DYLIB_EXPORT_ALL:BOOL=ON \ + -DLLVM_LINK_LLVM_DYLIB:BOOL=ON \ + -DLLVM_BUILD_EXTERNAL_COMPILER_RT:BOOL=ON \ + -DLLVM_INSTALL_TOOLCHAIN_ONLY:BOOL=OFF \ + \ + -DSPHINX_EXECUTABLE=%{_bindir}/sphinx-build-3 + +make %{?_smp_mflags} + +%install +cd _build +make install DESTDIR=%{buildroot} + +# fix multi-lib +mv -v %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}} + +#%check +#cd _build +#make check-all || : + +%post libs -p /sbin/ldconfig +%postun libs -p /sbin/ldconfig + +%post devel +%{_sbindir}/update-alternatives --install %{_bindir}/llvm-config llvm-config %{_bindir}/llvm-config-%{__isa_bits} %{__isa_bits} + +%postun devel +[ $1 -eq 0 ] && %{_sbindir}/update-alternatives --remove llvm-config %{_bindir}/llvm-config-%{__isa_bits} + +%files +%{_bindir}/* +%{_mandir}/man1/*.1.* +%exclude %{_bindir}/llvm-config-%{__isa_bits} +%exclude %{_mandir}/man1/llvm-config.1.* + +%files libs +%{_libdir}/BugpointPasses.so +%{_libdir}/LLVMHello.so +%if %{with gold} +%{_libdir}/LLVMgold.so +%endif +%{_libdir}/libLLVM*.so +%{_libdir}/libLTO.so.* + +%files devel +%{_bindir}/llvm-config-%{__isa_bits} +%{_mandir}/man1/llvm-config.1.* +%{_includedir}/llvm +%{_includedir}/llvm-c +%{_libdir}/libLLVM.so +%{_libdir}/cmake/llvm +%{_libdir}/libLTO.so + +%files doc +%doc %{_pkgdocdir}/html + +%files static +%{_libdir}/*.a + +%changelog +* Wed Feb 15 2017 Tom Stellard +- Port spec file from Fedora Project +* Fri Aug 04 2006 Reid Spencer +- Updates for release 1.8 +* Fri Apr 07 2006 Reid Spencer +- Make the build be optimized+assertions +* Fri May 13 2005 Reid Spencer +- Minor adjustments for the 1.5 release +* Sun Feb 09 2003 Brian R. Gaeke +- Initial working version of RPM spec file. Index: llvm.spec.in =================================================================== --- llvm.spec.in +++ /dev/null @@ -1,68 +0,0 @@ -Name: @PACKAGE_NAME@ -Version: @PACKAGE_VERSION@ -Release: 0 -Summary: LLVM (An Optimizing Compiler Infrastructure) -License: University of Illinois/NCSA Open Source License -Vendor: None (open source) -Group: Development/Compilers -URL: http://llvm..org/ -Source: http://llvm.org/releases/@PACKAGE_VERSION@/@PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz -BuildRoot: %{_tmppath}/%{name}-root -Requires: /sbin/ldconfig -BuildRequires: gcc >= 3.4 - -%description -LLVM is a compiler infrastructure designed for compile-time, link-time, runtime, -and idle-time optimization of programs from arbitrary programming languages. -LLVM is written in C++ and has been developed since 2000 at the University of -Illinois and Apple. It currently supports compilation of C and C++ programs, -using front-ends derived from GCC 4.0.1. A new front-end for the C family of -languages is in development. The compiler infrastructure -includes mirror sets of programming tools as well as libraries with equivalent -functionality. - -%prep -%setup -q -n @PACKAGE_NAME@-@PACKAGE_VERSION@ - -%build -./configure \ ---prefix=%{_prefix} \ ---bindir=%{_bindir} \ ---datadir=%{_datadir} \ ---includedir=%{_includedir} \ ---libdir=%{_libdir} \ ---enable-optimized \ ---enable-assertions -make tools-only - -%install -rm -rf %{buildroot} -make install DESTDIR=%{buildroot} - -%clean -rm -rf %{buildroot} - -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - -%files -%defattr(-, root, root) -%doc CREDITS.TXT LICENSE.TXT README.txt docs/*.{html,css,gif,jpg} docs/CommandGuide -%{_bindir}/* -%{_libdir}/*.o -%{_libdir}/*.a -%{_libdir}/*.so -%{_includedir}/llvm - -%changelog -* Fri Aug 04 2006 Reid Spencer -- Updates for release 1.8 -* Fri Apr 07 2006 Reid Spencer -- Make the build be optimized+assertions -* Fri May 13 2005 Reid Spencer -- Minor adjustments for the 1.5 release -* Mon Feb 09 2003 Brian R. Gaeke -- Initial working version of RPM spec file. - -