kkleine / rpms / llvm

Forked from rpms/llvm 3 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
c40c29a
# LLVM object files don't contain build IDs.  I don't know why yet.
c40c29a
# Suppress their generation for now.
c40c29a
c40c29a
%define debug_package %{nil}
c40c29a
fc7190b
Name:           llvm
fc7190b
Version:        2.5
c40c29a
Release:        7%{?dist}
fc7190b
Summary:        The Low Level Virtual Machine
fc7190b
fc7190b
Group:          Development/Languages
fc7190b
License:        NCSA
fc7190b
URL:            http://llvm.org/
396d9ae
Source0:        http://llvm.org/prereleases/%{version}/llvm-%{version}.tar.gz
fc7190b
Patch0:         llvm-2.1-fix-sed.patch
396d9ae
# http://llvm.org/bugs/show_bug.cgi?id=3153
396d9ae
# backported from 2.6 patch
396d9ae
Patch1:         llvm-2.5-destdir.patch
fc7190b
# http://llvm.org/bugs/show_bug.cgi?id=3726
fc7190b
Patch2:         llvm-2.5-gcc44.patch
396d9ae
# http://llvm.org/bugs/show_bug.cgi?id=4911
396d9ae
Patch3:         llvm-2.5-tclsh_check.patch
fc7190b
fc7190b
BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
fc7190b
fc7190b
BuildRequires:  bison
fc7190b
BuildRequires:  chrpath
fc7190b
BuildRequires:  flex
fc7190b
BuildRequires:  gcc-c++ >= 3.4
fc7190b
BuildRequires:  groff
fc7190b
BuildRequires:  libtool-ltdl-devel
fc7190b
BuildRequires:  ocaml-ocamldoc
396d9ae
# for DejaGNU test suite
396d9ae
BuildRequires:  dejagnu tcl-devel python
Bryan O'Sullivan d291b49
%if %{?_with_doxygen:1}%{!?_with_doxygen:0}
fc7190b
BuildRequires:  doxygen graphviz
Bryan O'Sullivan d291b49
%endif
Bryan O'Sullivan d291b49
fc7190b
# LLVM is not supported on PPC64
fc7190b
# http://llvm.org/bugs/show_bug.cgi?id=3729
fc7190b
ExcludeArch:    ppc64
fc7190b
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
fc7190b
Summary:        Libraries and header files for LLVM
fc7190b
Group:          Development/Languages
fc7190b
Requires:       %{name} = %{version}-%{release}
fc7190b
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
fc7190b
Summary:        Documentation for LLVM
fc7190b
Group:          Development/Languages
719d6b0
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
fc7190b
Summary:        API documentation for LLVM
fc7190b
Group:          Development/Languages
fc7190b
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
fc7190b
%package        ocaml
fc7190b
Summary:        OCaml binding for LLVM
fc7190b
Group:          Development/Libraries
Bryan O'Sullivan 03bad00
Requires:       %{name} = %{version}-%{release}
fc7190b
Requires:       ocaml-runtime
Bryan O'Sullivan 03bad00
fc7190b
%description    ocaml
Bryan O'Sullivan 03bad00
OCaml binding for LLVM.
Bryan O'Sullivan 03bad00
Bryan O'Sullivan 03bad00
Bryan O'Sullivan 03bad00
%package        ocaml-devel
fc7190b
Summary:        Development files for %{name}-ocaml
fc7190b
Group:          Development/Libraries
Bryan O'Sullivan 03bad00
Requires:       %{name}-devel = %{version}-%{release}
fc7190b
Requires:       %{name}-ocaml = %{version}-%{release}
Bryan O'Sullivan 03bad00
fc7190b
%description    ocaml-devel
Bryan O'Sullivan 03bad00
The %{name}-ocaml-devel package contains libraries and signature files
Bryan O'Sullivan 03bad00
for developing applications that use %{name}-ocaml.
Bryan O'Sullivan 03bad00
Bryan O'Sullivan 03bad00
396d9ae
%package ocaml-doc
396d9ae
Summary:        Documentation for LLVM's OCaml binding
396d9ae
Group:          Documentation
396d9ae
Requires:       %{name}-ocaml = %{version}-%{release}
396d9ae
396d9ae
%description ocaml-doc
396d9ae
HTML documentation for LLVM's OCaml binding.
Bryan O'Sullivan d291b49
396d9ae
396d9ae
396d9ae
%prep
396d9ae
%setup -q
Bryan O'Sullivan d291b49
%patch0 -p1 -b .fix-sed
396d9ae
%patch1 -p1 -b .destdir
fc7190b
%patch2 -p1 -b .gcc44
396d9ae
%patch3 -p1 -b .tclsh_check
396d9ae
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%build
396d9ae
# Disabling assertions now, rec. by pure and needed for OpenGTL
396d9ae
# no PIC on ix86: http://llvm.org/bugs/show_bug.cgi?id=3239
396d9ae
mkdir obj && cd obj
396d9ae
../configure \
396d9ae
  --prefix=%{_prefix} \
Bryan O'Sullivan d291b49
  --libdir=%{_libdir}/%{name} \
396d9ae
  --disable-assertions \
Bryan O'Sullivan d291b49
  --enable-debug-runtime \
Bryan O'Sullivan d291b49
  --enable-jit \
396d9ae
%ifnarch %{ix86}
396d9ae
  --enable-pic=yes
731b634
%endif
Bryan O'Sullivan 03bad00
396d9ae
# FIXME file this
396d9ae
# configure does not properly specify libdir
396d9ae
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
Bryan O'Sullivan d291b49
396d9ae
make %{_smp_mflags} OPTIMIZE_OPTION='%{optflags}'
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
396d9ae
%check
396d9ae
(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}
396d9ae
cd obj
Bryan O'Sullivan d291b49
chmod -x examples/Makefile
396d9ae
Bryan O'Sullivan 03bad00
make install DESTDIR=%{buildroot} \
396d9ae
     PROJ_docsdir=/moredocs
396d9ae
396d9ae
# Move documentation back to build directory
396d9ae
# 
396d9ae
mv %{buildroot}/moredocs ../
396d9ae
rm ../moredocs/*.tar.gz
396d9ae
rm ../moredocs/ocamldoc/html/*.tar.gz
396d9ae
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
396d9ae
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.
396d9ae
rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.*
Bryan O'Sullivan 03bad00
44e3f11
# And OCaml .o files
44e3f11
rm %{buildroot}%{_libdir}/ocaml/*.o
44e3f11
Bryan O'Sullivan d291b49
# Remove deprecated tools.
Bryan O'Sullivan d291b49
rm %{buildroot}%{_bindir}/gcc{as,ld}
Bryan O'Sullivan d291b49
396d9ae
# 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
396d9ae
chmod -x %{buildroot}%{_libdir}/%{name}/*.a
Bryan O'Sullivan d291b49
719d6b0
# remove documentation makefiles:
719d6b0
# they require the build directory to work
396d9ae
find examples -name 'Makefile' | xargs -0r rm -f
Bryan O'Sullivan d291b49
Bryan O'Sullivan 03bad00
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
396d9ae
%files doc
396d9ae
%defattr(-,root,root,-)
396d9ae
%doc examples moredocs/html
Bryan O'Sullivan d291b49
Bryan O'Sullivan 03bad00
%files ocaml
Bryan O'Sullivan 03bad00
%defattr(-,root,root,-)
Bryan O'Sullivan 03bad00
%{_libdir}/ocaml/*.cma
Bryan O'Sullivan 03bad00
%{_libdir}/ocaml/*.cmi
Bryan O'Sullivan 03bad00
Bryan O'Sullivan 03bad00
%files ocaml-devel
Bryan O'Sullivan 03bad00
%defattr(-,root,root,-)
Bryan O'Sullivan 03bad00
%{_libdir}/ocaml/*.a
Bryan O'Sullivan 03bad00
%{_libdir}/ocaml/*.cmx*
Bryan O'Sullivan 03bad00
%{_libdir}/ocaml/*.mli
Bryan O'Sullivan 03bad00
396d9ae
%files ocaml-doc
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
396d9ae
%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
396d9ae
* Tue Sep  8 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-7
396d9ae
- Backport destdir patch from 2.6
396d9ae
396d9ae
* Sat Sep  5 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-6
396d9ae
- Disable assertions (needed by OpenGTL)
396d9ae
- Align spec file with upstream build instructions
396d9ae
- Enable unit tests
396d9ae
15b7c1b
* Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-5
15b7c1b
- Only disable PIC on %%ix86; ppc actually needs it
15b7c1b
731b634
* Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-4
731b634
- Disable use of position-independent code on 32-bit platforms
731b634
  (buggy in LLVM <= 2.5)
731b634
396d9ae
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5-3
396d9ae
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
396d9ae
719d6b0
* Wed Mar  4 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-2
719d6b0
- Remove build scripts; they require the build directory to work
719d6b0
fc7190b
* Wed Mar  4 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-1
fc7190b
- Update to 2.5
fc7190b
- Package build scripts (bug #457881)
9644979
Bryan O'Sullivan 03bad00
* Tue Dec  2 2008 Michel Salim <salimma@fedoraproject.org> - 2.4-2
Bryan O'Sullivan 03bad00
- Patched build process for the OCaml binding
Bryan O'Sullivan 03bad00
Bryan O'Sullivan 03bad00
* Tue Dec  2 2008 Michel Salim <salimma@fedoraproject.org> - 2.4-1
Bryan O'Sullivan 03bad00
- Update to 2.4
Bryan O'Sullivan 03bad00
- Package Ocaml binding
Bryan O'Sullivan 03bad00
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