tstellar / rpms / llvm

Forked from rpms/llvm 5 years ago
Clone
Bryan O'Sullivan d291b49
# Build options:
Bryan O'Sullivan d291b49
#
Bryan O'Sullivan d291b49
# --with doxygen
Bryan O'Sullivan d291b49
#   The doxygen docs are HUGE, so they are not built by default.
Bryan O'Sullivan d291b49
3cd63a0
Name:           llvm
fabb80e
Version:        2.5
27ff269
Release:        8%{?dist}
3cd63a0
Summary:        The Low Level Virtual Machine
3cd63a0
3cd63a0
Group:          Development/Languages
3cd63a0
License:        NCSA
3cd63a0
URL:            http://llvm.org/
2a2d03d
Source0:        http://llvm.org/prereleases/%{version}/llvm-%{version}.tar.gz
3cd63a0
Patch0:         llvm-2.1-fix-sed.patch
2a2d03d
# http://llvm.org/bugs/show_bug.cgi?id=3153
2a2d03d
# backported from 2.6 patch
2a2d03d
Patch1:         llvm-2.5-destdir.patch
fabb80e
# http://llvm.org/bugs/show_bug.cgi?id=3726
fabb80e
Patch2:         llvm-2.5-gcc44.patch
2a2d03d
# http://llvm.org/bugs/show_bug.cgi?id=4911
2a2d03d
Patch3:         llvm-2.5-tclsh_check.patch
Bryan O'Sullivan dfd7e5d
3cd63a0
BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
Bryan O'Sullivan dfd7e5d
3cd63a0
BuildRequires:  bison
3cd63a0
BuildRequires:  chrpath
3cd63a0
BuildRequires:  flex
3cd63a0
BuildRequires:  gcc-c++ >= 3.4
3cd63a0
BuildRequires:  groff
3cd63a0
BuildRequires:  libtool-ltdl-devel
3cd63a0
BuildRequires:  ocaml-ocamldoc
2a2d03d
# for DejaGNU test suite
2a2d03d
BuildRequires:  dejagnu tcl-devel python
Bryan O'Sullivan d291b49
%if %{?_with_doxygen:1}%{!?_with_doxygen:0}
3cd63a0
BuildRequires:  doxygen graphviz
Bryan O'Sullivan d291b49
%endif
Bryan O'Sullivan d291b49
3cd63a0
# LLVM is not supported on PPC64
3cd63a0
# http://llvm.org/bugs/show_bug.cgi?id=3729
3cd63a0
ExcludeArch:    ppc64
3cd63a0
Bryan O'Sullivan d291b49
%description
Bryan O'Sullivan d291b49
LLVM is a compiler infrastructure designed for compile-time,
Bryan O'Sullivan d291b49
link-time, runtime, and idle-time optimization of programs from
Bryan O'Sullivan d291b49
arbitrary programming languages.  The compiler infrastructure includes
Bryan O'Sullivan d291b49
mirror sets of programming tools as well as libraries with equivalent
Bryan O'Sullivan d291b49
functionality.
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%package devel
3cd63a0
Summary:        Libraries and header files for LLVM
3cd63a0
Group:          Development/Languages
3cd63a0
Requires:       %{name} = %{version}-%{release}
3cd63a0
Requires:       libstdc++-devel >= 3.4
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%description devel
Bryan O'Sullivan d291b49
This package contains library and header files needed to develop new
Bryan O'Sullivan d291b49
native programs that use the LLVM infrastructure.
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%package doc
3cd63a0
Summary:        Documentation for LLVM
3cd63a0
Group:          Development/Languages
a7af371
Requires:       %{name} = %{version}-%{release}
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%description doc
Bryan O'Sullivan d291b49
Documentation for the LLVM compiler infrastructure.
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%if %{?_with_doxygen:1}%{!?_with_doxygen:0}
Bryan O'Sullivan d291b49
%package apidoc
3cd63a0
Summary:        API documentation for LLVM
3cd63a0
Group:          Development/Languages
3cd63a0
Requires:       %{name}-docs = %{version}-%{release}
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%description apidoc
Bryan O'Sullivan d291b49
API documentation for the LLVM compiler infrastructure.
Bryan O'Sullivan d291b49
%endif
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
3cd63a0
%package        ocaml
3cd63a0
Summary:        OCaml binding for LLVM
3cd63a0
Group:          Development/Libraries
Bryan O'Sullivan dfd7e5d
Requires:       %{name} = %{version}-%{release}
3cd63a0
Requires:       ocaml-runtime
Bryan O'Sullivan dfd7e5d
3cd63a0
%description    ocaml
Bryan O'Sullivan dfd7e5d
OCaml binding for LLVM.
Bryan O'Sullivan dfd7e5d
Bryan O'Sullivan dfd7e5d
Bryan O'Sullivan dfd7e5d
%package        ocaml-devel
3cd63a0
Summary:        Development files for %{name}-ocaml
3cd63a0
Group:          Development/Libraries
Bryan O'Sullivan dfd7e5d
Requires:       %{name}-devel = %{version}-%{release}
3cd63a0
Requires:       %{name}-ocaml = %{version}-%{release}
Bryan O'Sullivan dfd7e5d
3cd63a0
%description    ocaml-devel
Bryan O'Sullivan dfd7e5d
The %{name}-ocaml-devel package contains libraries and signature files
Bryan O'Sullivan dfd7e5d
for developing applications that use %{name}-ocaml.
Bryan O'Sullivan dfd7e5d
Bryan O'Sullivan dfd7e5d
2a2d03d
%package ocaml-doc
2a2d03d
Summary:        Documentation for LLVM's OCaml binding
2a2d03d
Group:          Documentation
2a2d03d
Requires:       %{name}-ocaml = %{version}-%{release}
2a2d03d
2a2d03d
%description ocaml-doc
2a2d03d
HTML documentation for LLVM's OCaml binding.
Bryan O'Sullivan d291b49
2a2d03d
2a2d03d
2a2d03d
%prep
2a2d03d
%setup -q
Bryan O'Sullivan d291b49
%patch0 -p1 -b .fix-sed
2a2d03d
%patch1 -p1 -b .destdir
fabb80e
%patch2 -p1 -b .gcc44
2a2d03d
%patch3 -p1 -b .tclsh_check
2a2d03d
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%build
2a2d03d
# Disabling assertions now, rec. by pure and needed for OpenGTL
2a2d03d
# no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3239
2a2d03d
mkdir obj && cd obj
2a2d03d
../configure \
2a2d03d
  --prefix=%{_prefix} \
Bryan O'Sullivan d291b49
  --libdir=%{_libdir}/%{name} \
2a2d03d
  --disable-assertions \
Bryan O'Sullivan d291b49
  --enable-debug-runtime \
Bryan O'Sullivan d291b49
  --enable-jit \
2a2d03d
%ifnarch %{ix86}
2a2d03d
  --enable-pic=yes
fabb80e
%endif
Bryan O'Sullivan dfd7e5d
2a2d03d
# FIXME file this
2a2d03d
# configure does not properly specify libdir
2a2d03d
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
Bryan O'Sullivan d291b49
2a2d03d
make %{_smp_mflags} OPTIMIZE_OPTION='%{optflags}'
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
2a2d03d
%check
2a2d03d
(cd obj && make check) 2>&1 | tee testlog.txt || true
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%install
Bryan O'Sullivan d291b49
rm -rf %{buildroot}
2a2d03d
cd obj
Bryan O'Sullivan d291b49
chmod -x examples/Makefile
2a2d03d
Bryan O'Sullivan dfd7e5d
make install DESTDIR=%{buildroot} \
27ff269
     KEEP_SYMBOLS=1 \
2a2d03d
     PROJ_docsdir=/moredocs
2a2d03d
2a2d03d
# Move documentation back to build directory
2a2d03d
# 
2a2d03d
mv %{buildroot}/moredocs ../
2a2d03d
rm ../moredocs/*.tar.gz
2a2d03d
rm ../moredocs/ocamldoc/html/*.tar.gz
2a2d03d
Bryan O'Sullivan d291b49
find %{buildroot} -name .dir -print0 | xargs -0r rm -f
Bryan O'Sullivan d291b49
file %{buildroot}/%{_bindir}/* | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
2a2d03d
file %{buildroot}/%{_libdir}/llvm/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
# Get rid of erroneously installed example files.
2a2d03d
rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.*
Bryan O'Sullivan dfd7e5d
742aab4
# And OCaml .o files
742aab4
rm %{buildroot}%{_libdir}/ocaml/*.o
742aab4
Bryan O'Sullivan d291b49
# Remove deprecated tools.
Bryan O'Sullivan d291b49
rm %{buildroot}%{_bindir}/gcc{as,ld}
Bryan O'Sullivan d291b49
2a2d03d
# FIXME file this bug
Bryan O'Sullivan d291b49
sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \
Bryan O'Sullivan d291b49
  %{buildroot}%{_bindir}/llvm-config
Bryan O'Sullivan d291b49
2a2d03d
chmod -x %{buildroot}%{_libdir}/%{name}/*.a
Bryan O'Sullivan d291b49
a7af371
# remove documentation makefiles:
a7af371
# they require the build directory to work
2a2d03d
find examples -name 'Makefile' | xargs -0r rm -f
Bryan O'Sullivan d291b49
Bryan O'Sullivan dfd7e5d
Bryan O'Sullivan d291b49
%clean
Bryan O'Sullivan d291b49
rm -rf %{buildroot}
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%post -p /sbin/ldconfig
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%postun -p /sbin/ldconfig
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%files
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
Bryan O'Sullivan d291b49
%doc CREDITS.TXT LICENSE.TXT README.txt
Bryan O'Sullivan d291b49
%exclude %{_bindir}/llvm-config
Bryan O'Sullivan d291b49
%{_bindir}/bugpoint
Bryan O'Sullivan d291b49
%{_bindir}/llc
Bryan O'Sullivan d291b49
%{_bindir}/lli
Bryan O'Sullivan d291b49
%{_bindir}/llvm*
Bryan O'Sullivan d291b49
%{_bindir}/opt
Bryan O'Sullivan d291b49
%doc %{_mandir}/man1/*.1.gz
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%if %{?_with_doxygen:1}%{!?_with_doxygen:0}
Bryan O'Sullivan d291b49
%exclude %{_bindir}/llvm-[cg]++
Bryan O'Sullivan d291b49
%exclude %{_bindir}/llvm-gcc
Bryan O'Sullivan d291b49
%exclude %{_mandir}/man1/llvm-[cg]++.*
Bryan O'Sullivan d291b49
%exclude %{_mandir}/man1/llvm-gcc.*
Bryan O'Sullivan d291b49
%endif
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%files devel
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
Bryan O'Sullivan d291b49
%{_bindir}/llvm-config
Bryan O'Sullivan d291b49
%{_includedir}/%{name}
Bryan O'Sullivan d291b49
%{_includedir}/%{name}-c
Bryan O'Sullivan d291b49
%{_libdir}/%{name}
Bryan O'Sullivan d291b49
2a2d03d
%files doc
2a2d03d
%defattr(-,root,root,-)
2a2d03d
%doc examples moredocs/html
Bryan O'Sullivan d291b49
Bryan O'Sullivan dfd7e5d
%files ocaml
Bryan O'Sullivan dfd7e5d
%defattr(-,root,root,-)
Bryan O'Sullivan dfd7e5d
%{_libdir}/ocaml/*.cma
Bryan O'Sullivan dfd7e5d
%{_libdir}/ocaml/*.cmi
Bryan O'Sullivan dfd7e5d
Bryan O'Sullivan dfd7e5d
%files ocaml-devel
Bryan O'Sullivan dfd7e5d
%defattr(-,root,root,-)
Bryan O'Sullivan dfd7e5d
%{_libdir}/ocaml/*.a
Bryan O'Sullivan dfd7e5d
%{_libdir}/ocaml/*.cmx*
Bryan O'Sullivan dfd7e5d
%{_libdir}/ocaml/*.mli
Bryan O'Sullivan dfd7e5d
2a2d03d
%files ocaml-doc
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
2a2d03d
%doc moredocs/ocamldoc/html/*
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%if %{?_with_doxygen:1}%{!?_with_doxygen:0}
Bryan O'Sullivan d291b49
%files apidoc
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
Bryan O'Sullivan d291b49
%doc docs/doxygen
Bryan O'Sullivan d291b49
%endif
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%changelog
27ff269
* Wed Sep  9 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-8
27ff269
- Enable debuginfo (Jerry James, bz#521283)
27ff269
2a2d03d
* Tue Sep  8 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-7
2a2d03d
- Backport destdir patch from 2.6
2a2d03d
2a2d03d
* Sat Sep  5 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-6
2a2d03d
- Disable assertions (needed by OpenGTL)
2a2d03d
- Align spec file with upstream build instructions
2a2d03d
- Enable unit tests
2a2d03d
5a5c2aa
* Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-5
5a5c2aa
- Only disable PIC on %%ix86; ppc actually needs it
5a5c2aa
fabb80e
* Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-4
fabb80e
- Disable use of position-independent code on 32-bit platforms
fabb80e
  (buggy in LLVM <= 2.5)
fabb80e
2a2d03d
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5-3
2a2d03d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
2a2d03d
2a2d03d
* Wed Mar  4 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-2
a7af371
- Remove build scripts; they require the build directory to work
a7af371
2a2d03d
* Wed Mar  4 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-1
2a2d03d
- Update to 2.5
3cd63a0
- Package build scripts (bug #457881)
3cd63a0
Bryan O'Sullivan dfd7e5d
* Tue Dec  2 2008 Michel Salim <salimma@fedoraproject.org> - 2.4-2
Bryan O'Sullivan dfd7e5d
- Patched build process for the OCaml binding
Bryan O'Sullivan dfd7e5d
Bryan O'Sullivan dfd7e5d
* Tue Dec  2 2008 Michel Salim <salimma@fedoraproject.org> - 2.4-1
Bryan O'Sullivan dfd7e5d
- Update to 2.4
Bryan O'Sullivan dfd7e5d
- Package Ocaml binding
Bryan O'Sullivan dfd7e5d
Bryan O'Sullivan e2fa788
* Wed Jun 18 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.3-2
Bryan O'Sullivan e2fa788
- Add dependency on groff
Bryan O'Sullivan e2fa788
Bryan O'Sullivan df8851e
* Wed Jun 18 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.3-1
Bryan O'Sullivan df8851e
- LLVM 2.3
Bryan O'Sullivan df8851e
2d471be
* Thu May 29 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2.2-4
2d471be
- fix license tags
2d471be
Bryan O'Sullivan a2e4a2f
* Wed Mar  5 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.2-3
Bryan O'Sullivan a2e4a2f
- Fix compilation problems with gcc 4.3
Bryan O'Sullivan a2e4a2f
7889508
* Mon Feb 18 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.2-2
7889508
- Autorebuild for GCC 4.3
7889508
Bryan O'Sullivan d291b49
* Sun Jan 20 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.1-2
Bryan O'Sullivan d291b49
- Fix review comments
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
* Sun Jan 20 2008 Bryan O'Sullivan <bos@serpentine.com> - 2.1-1
Bryan O'Sullivan d291b49
- Initial version