b8f7dc4
# Build options:
b8f7dc4
#
b8f7dc4
# --with doxygen
b8f7dc4
#   The doxygen docs are HUGE, so they are not built by default.
de5c3ae
%bcond_with doxygen
de5c3ae
de5c3ae
# clang header paths are hard-coded at compile time
de5c3ae
# and need adjustment whenever there's a new GCC version
97e156a
%if 0%{?fedora} == 18
97e156a
%global gcc_version 4.7.2
97e156a
%else
4e85cfa
%global gcc_version 4.8.0
97e156a
%endif
b8f7dc4
6668812
%ifarch s390 s390x sparc64
434321d
  # No ocaml on these arches
434321d
  %bcond_with ocaml
434321d
%else
434321d
  %bcond_without ocaml
434321d
%endif
434321d
94fba1f
# compiler-rt not actually working yet
94fba1f
%bcond_with crt
de5c3ae
%bcond_without clang
194b08b
dd9e07d
%global prerel rc2
9ff1905
%global downloadurl http://llvm.org/%{?prerel:pre-}releases/%{version}%{?prerel:/%{prerel}}
383ea0f
94fba1f
%global gitdate 20130507
94fba1f
0b697ba
# gold linker support
0b697ba
# arch list from binutils spec
0b697ba
%global gold_arches %ix86 x86_64
0b697ba
%ifarch %gold_arches
0b697ba
%bcond_without gold
0e3ec48
%else
0e3ec48
%bcond_with gold
0b697ba
%endif
0b697ba
fc7190b
Name:           llvm
94fba1f
Version:        3.3
dd9e07d
Release:        0.4.%{prerel}%{?dist}
fc7190b
Summary:        The Low Level Virtual Machine
fc7190b
fc7190b
Group:          Development/Languages
fc7190b
License:        NCSA
fc7190b
URL:            http://llvm.org/
dd9e07d
Source0:        %{downloadurl}/llvm-%{version}%{?prerel:%{prerel}}-source.tar.gz
dd9e07d
Source1:        %{downloadurl}/cfe-%{version}%{?prerel:%{prerel}}-source.tar.gz
dd9e07d
#Source0:	llvm-%{gitdate}.tar.xz
dd9e07d
#Source1:	clang-%{gitdate}.tar.xz
94fba1f
Source2:	compiler-rt-%{gitdate}.tar.xz
a5a420c
# multilib fixes
94fba1f
Source10:        llvm-Config-config.h
94fba1f
Source11:        llvm-Config-llvm-config.h
94fba1f
94fba1f
# snapshot scripts
94fba1f
Source100:	make-llvm-snapshot.sh
94fba1f
Source101:	make-clang-snapshot.sh
94fba1f
Source102:	make-compiler-rt-snapshot.sh
a5a420c
c19d461
# Data files should be installed with timestamps preserved
216ddcf
Patch0:         llvm-2.6-timestamp.patch
dcd073e
c960848
Patch11:        clang-hardfloat-hack.patch
23fedaf
94fba1f
# hack llvm-config to print -lLLVM-3.* instead of ALL THE THINGS
97e156a
#
97e156a
# you really, really, really want not to use the static libs, otherwise
97e156a
# if you ever end up with two (static) copies of llvm in the same process
97e156a
# things will go boom quite nicely
97e156a
# 
97e156a
# this isn't enabled yet because it makes the ocaml bindings fail the
97e156a
# test suite.  i don't even.
97e156a
Patch20:	llvm-3.2-llvm-config-dso-hack.patch
97e156a
bb18301
# hack the link flags for the shared libs for speed and memory usage
bb18301
Patch21:	llvm-3.2-symbolic-shlib.patch
bb18301
fc7190b
BuildRequires:  bison
fc7190b
BuildRequires:  chrpath
fc7190b
BuildRequires:  flex
4e85cfa
BuildRequires:  gcc = %{gcc_version}
4e85cfa
BuildRequires:  gcc-c++ = %{gcc_version}
fc7190b
BuildRequires:  groff
a5a420c
BuildRequires:  libffi-devel
fc7190b
BuildRequires:  libtool-ltdl-devel
0b697ba
%if %{with gold}
0b697ba
BuildRequires:  binutils-devel
0b697ba
%endif
434321d
%if %{with ocaml}
fc7190b
BuildRequires:  ocaml-ocamldoc
434321d
%endif
cfc53b6
BuildRequires:  zip
565c64d
# for DejaGNU test suite
48b530b
BuildRequires:  dejagnu tcl-devel python
c73f9c2
# for doxygen documentation
de5c3ae
%if %{with doxygen}
fc7190b
BuildRequires:  doxygen graphviz
b8f7dc4
%endif
30312b5
# pod2man moved to perl-podlators in F19
30312b5
BuildRequires:  %{_bindir}/pod2man
420ce43
Requires:       llvm-libs%{?_isa} = %{version}-%{release}
Bryan O'Sullivan d291b49
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
420ce43
Requires:       %{name}%{?_isa} = %{version}-%{release}
d9bb825
Requires:       libffi-devel
fc7190b
Requires:       libstdc++-devel >= 3.4
Bryan O'Sullivan d291b49
a5a420c
Requires(posttrans): /usr/sbin/alternatives
a5a420c
Requires(postun):    /usr/sbin/alternatives
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
c19d461
Group:          Documentation
27c0ebc
BuildArch:      noarch
719d6b0
Requires:       %{name} = %{version}-%{release}
bda980e
# might seem redundant, but needed to kill off the old arch-ed -doc
bda980e
# subpackage
bda980e
Obsoletes:      %{name}-doc < %{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
a8c599f
%package libs
a8c599f
Summary:        LLVM shared libraries
a8c599f
Group:          System Environment/Libraries
a8c599f
a8c599f
%description libs
a8c599f
Shared libraries for the LLVM compiler infrastructure.
a8c599f
a8c599f
97e156a
%package static
97e156a
Summary:	LLVM static libraries
97e156a
Group:		Development/Languages
97e156a
Requires:	%{name}-devel%{?_isa} = %{version}-%{release}
97e156a
97e156a
%description static
97e156a
Static libraries for the LLVM compiler infrastructure.  Not recommended
97e156a
for general consumption.
97e156a
97e156a
de5c3ae
%if %{with clang}
c19d461
%package -n clang
64041e3
Summary:        A C language family front-end for LLVM
c6833e1
License:        NCSA
fc7190b
Group:          Development/Languages
420ce43
Requires:       llvm%{?_isa} = %{version}-%{release}
de5c3ae
# clang requires gcc, clang++ requires libstdc++-devel
e00c225
Requires:       gcc = %{gcc_version}
de5c3ae
Requires:       libstdc++-devel = %{gcc_version}
Bryan O'Sullivan d291b49
c19d461
%description -n clang
c6833e1
clang: noun
c6833e1
    1. A loud, resonant, metallic sound.
c6833e1
    2. The strident call of a crane or goose.
c6833e1
    3. C-language family front-end toolkit.
Bryan O'Sullivan d291b49
c6833e1
The goal of the Clang project is to create a new C, C++, Objective C
c19d461
and Objective C++ front-end for the LLVM compiler. Its tools are built
64041e3
as libraries and designed to be loosely-coupled and extensible.
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
216ddcf
%package -n clang-devel
216ddcf
Summary:        Header files for clang
216ddcf
Group:          Development/Languages
420ce43
Requires:       clang%{?_isa} = %{version}-%{release}
216ddcf
216ddcf
%description -n clang-devel
216ddcf
This package contains header files for the Clang compiler.
216ddcf
216ddcf
c19d461
%package -n clang-analyzer
8f6b35f
Summary:        A source code analysis framework
8f6b35f
License:        NCSA
8f6b35f
Group:          Development/Languages
420ce43
Requires:       clang%{?_isa} = %{version}-%{release}
8f6b35f
# not picked up automatically since files are currently not instaled
8f6b35f
# in standard Python hierarchies yet
8f6b35f
Requires:       python
8f6b35f
c19d461
%description -n clang-analyzer
8f6b35f
The Clang Static Analyzer consists of both a source code analysis
8f6b35f
framework and a standalone tool that finds bugs in C and Objective-C
8f6b35f
programs. The standalone tool is invoked from the command-line, and is
8f6b35f
intended to run in tandem with a build of a project or code base.
8f6b35f
8f6b35f
c19d461
%package -n clang-doc
c19d461
Summary:        Documentation for Clang
c19d461
Group:          Documentation
27c0ebc
BuildArch:      noarch
c19d461
Requires:       %{name} = %{version}-%{release}
c19d461
c19d461
%description -n clang-doc
c19d461
Documentation for the Clang compiler front-end.
194b08b
%endif
c19d461
c19d461
de5c3ae
%if %{with doxygen}
Bryan O'Sullivan d291b49
%package apidoc
fc7190b
Summary:        API documentation for LLVM
fc7190b
Group:          Development/Languages
c73f9c2
BuildArch:      noarch
c73f9c2
Requires:       %{name}-doc = %{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.
c73f9c2
c73f9c2
de5c3ae
%if %{with clang}
c73f9c2
%package -n clang-apidoc
c73f9c2
Summary:        API documentation for Clang
c73f9c2
Group:          Development/Languages
c73f9c2
BuildArch:      noarch
c73f9c2
Requires:       clang-doc = %{version}-%{release}
c73f9c2
c73f9c2
c7b1517
%description -n clang-apidoc
c73f9c2
API documentation for the Clang compiler.
b8f7dc4
%endif
194b08b
%endif
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
434321d
%if %{with ocaml}
fc7190b
%package        ocaml
fc7190b
Summary:        OCaml binding for LLVM
fc7190b
Group:          Development/Libraries
420ce43
Requires:       %{name}%{?_isa} = %{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
420ce43
Requires:       %{name}-devel%{?_isa} = %{version}-%{release}
420ce43
Requires:       %{name}-ocaml%{?_isa} = %{version}-%{release}
160b755
Requires:       ocaml
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
c6833e1
%package ocaml-doc
c6833e1
Summary:        Documentation for LLVM's OCaml binding
c6833e1
Group:          Documentation
c73f9c2
BuildArch:      noarch
c6833e1
Requires:       %{name}-ocaml = %{version}-%{release}
c6833e1
c6833e1
%description ocaml-doc
c6833e1
HTML documentation for LLVM's OCaml binding.
434321d
%endif
c6833e1
c6833e1
Bryan O'Sullivan d291b49
%prep
94fba1f
#setup -q -n llvm-%{version}%{?prerel}.src %{?with_clang:-a1} %{?with_crt:-a2}
dd9e07d
%setup -q -n llvm.src %{?with_clang:-a1} %{?with_crt:-a2}
dd9e07d
rm -f tools/clang
de5c3ae
%if %{with clang}
dd9e07d
mv cfe.src tools/clang
194b08b
%endif
Bryan O'Sullivan d291b49
a5a420c
# llvm patches
216ddcf
%patch0 -p1 -b .timestamp
dcd073e
4a3f435
# arm hard float
c960848
%patch11 -p1 -b .orig
a5a420c
97e156a
# fix llvm-config --libs
97e156a
#patch20 -p1 -b .orig
bb18301
%patch21 -p1 -b .orig
97e156a
cfc53b6
# fix ld search path
de5c3ae
sed -i 's|/lib /usr/lib $lt_ld_extra|%{_libdir} $lt_ld_extra|' \
cfc53b6
    ./configure
09ee2ab
Bryan O'Sullivan d291b49
%build
94fba1f
# clang is lovely and all, but fedora builds with gcc
2f5517c
export CC=gcc
2f5517c
export CXX=c++
c73f9c2
%configure \
565c64d
  --prefix=%{_prefix} \
c6833e1
  --libdir=%{_libdir}/%{name} \
de5c3ae
%if %{with doxygen}
c73f9c2
  --enable-doxygen \
b8f7dc4
%endif
0b697ba
%if %{with gold}
0b697ba
  --with-binutils-include=%{_includedir} \
0b697ba
%endif
98be43e
%ifarch armv7hl armv7l
98be43e
  --with-cpu=cortex-a8 \
98be43e
  --with-tune=cortex-a8 \
98be43e
  --with-arch=armv7-a \
98be43e
  --with-float=hard \
98be43e
  --with-fpu=vfpv3-d16 \
98be43e
  --with-abi=aapcs-linux \
98be43e
%endif
565c64d
  --disable-assertions \
Bryan O'Sullivan d291b49
  --enable-debug-runtime \
94fba1f
  --enable-optimized \
Bryan O'Sullivan d291b49
  --enable-jit \
a5a420c
  --enable-libffi \
a185901
  --enable-shared \
2f5517c
  --with-c-include-dirs=%{_includedir}:$(echo %{_prefix}/lib/gcc/%{_target_cpu}*/%{gcc_version}/include) \
069eca6
  --enable-targets=x86,powerpc,arm,aarch64,cpp,nvptx,systemz \
2f5517c
  --enable-experimental-targets=R600
565c64d
c6833e1
# FIXME file this
565c64d
# configure does not properly specify libdir
c6833e1
sed -i 's|(PROJ_prefix)/lib|(PROJ_prefix)/%{_lib}/%{name}|g' Makefile.config
Bryan O'Sullivan 03bad00
9e49469
# FIXME upstream need to fix this
9e49469
# llvm-config.cpp hardcodes lib in it
9e49469
sed -i 's|ActiveLibDir = ActivePrefix + "/lib"|ActiveLibDir = ActivePrefix + "/%{_lib}/%{name}"|g' tools/llvm-config/llvm-config.cpp
9e49469
cfc53b6
make %{_smp_mflags} REQUIRES_RTTI=1 VERBOSE=1 \
71feaf9
%ifarch ppc
94fba1f
  OPTIMIZE_OPTION="%{optflags} -UPPC"
71feaf9
%else
71feaf9
  OPTIMIZE_OPTION="%{optflags}"
71feaf9
%endif
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%install
5f9e49a
# workaround for http://llvm.org/bugs/show_bug.cgi?id=11177
5f9e49a
%if %{with ocaml}
5f9e49a
cp -p bindings/ocaml/llvm/META.llvm bindings/ocaml/llvm/Release/
5f9e49a
%endif
9ff1905
Bryan O'Sullivan 03bad00
make install DESTDIR=%{buildroot} \
c6833e1
     PROJ_docsdir=/moredocs
c6833e1
a5a420c
# multilib fixes
a5a420c
mv %{buildroot}%{_bindir}/llvm-config{,-%{__isa_bits}}
a5a420c
a5a420c
pushd %{buildroot}%{_includedir}/llvm/Config
a5a420c
mv config.h config-%{__isa_bits}.h
94fba1f
cp -p %{SOURCE10} config.h
a5a420c
mv llvm-config.h llvm-config-%{__isa_bits}.h
94fba1f
cp -p %{SOURCE11} llvm-config.h
a5a420c
popd
a5a420c
216ddcf
# Create ld.so.conf.d entry
216ddcf
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
64041e3
cat >> %{buildroot}%{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf << EOF
216ddcf
%{_libdir}/llvm
216ddcf
EOF
216ddcf
de5c3ae
%if %{with clang}
a02ba10
# Static analyzer not installed by default:
a02ba10
# http://clang-analyzer.llvm.org/installation#OtherPlatforms
216ddcf
mkdir -p %{buildroot}%{_libdir}/clang-analyzer
8f6b35f
# create launchers
8f6b35f
for f in scan-{build,view}; do
216ddcf
  ln -s %{_libdir}/clang-analyzer/$f/$f %{buildroot}%{_bindir}/$f
8f6b35f
done
8f6b35f
216ddcf
(cd tools/clang/tools && cp -pr scan-{build,view} \
216ddcf
 %{buildroot}%{_libdir}/clang-analyzer/)
194b08b
%endif
a02ba10
c6833e1
# Move documentation back to build directory
c6833e1
# 
c19d461
mv %{buildroot}/moredocs .
434321d
rm -f moredocs/*.tar.gz
434321d
rm -f moredocs/ocamldoc/html/*.tar.gz
c19d461
c73f9c2
# and separate the apidoc
de5c3ae
%if %{with doxygen}
c73f9c2
mv moredocs/html/doxygen apidoc
c73f9c2
mv tools/clang/docs/doxygen/html clang-apidoc
b8f7dc4
%endif
c73f9c2
c19d461
# And prepare Clang documentation
c19d461
#
de5c3ae
%if %{with clang}
c19d461
mkdir clang-docs
9ff1905
for f in LICENSE.TXT NOTES.txt README.txt; do # TODO.txt; do
c19d461
  ln tools/clang/$f clang-docs/
c19d461
done
c19d461
rm -rf tools/clang/docs/{doxygen*,Makefile*,*.graffle,tools}
194b08b
%endif
c19d461
c6833e1
3fc5264
#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
c6833e1
file %{buildroot}/%{_libdir}/llvm/*.so | awk -F: '$2~/ELF/{print $1}' | xargs -r chrpath -d
3fc5264
#chrpath -d %%{buildroot}/%%{_libexecdir}/clang-cc
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
# Get rid of erroneously installed example files.
c6833e1
rm %{buildroot}%{_libdir}/%{name}/*LLVMHello.*
Bryan O'Sullivan 03bad00
c6833e1
# FIXME file this bug
c6833e1
sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \
a5a420c
  %{buildroot}%{_bindir}/llvm-config-%{__isa_bits}
Bryan O'Sullivan d291b49
2c55a75
chmod -x %{buildroot}%{_libdir}/%{name}/*.a
Bryan O'Sullivan d291b49
719d6b0
# remove documentation makefiles:
719d6b0
# they require the build directory to work
c6833e1
find examples -name 'Makefile' | xargs -0r rm -f
Bryan O'Sullivan d291b49
Bryan O'Sullivan 03bad00
a5a420c
%check
b3232c7
# the Koji build server does not seem to have enough RAM
b3232c7
# for the default 16 threads
0370924
94fba1f
# the || : is wrong, i know, but the git snaps fail to make check due to
94fba1f
# broken makefiles in the doc dirs.
94fba1f
420ce43
# LLVM test suite failing on ARM, PPC64 and s390(x)
94fba1f
make -k check LIT_ARGS="-v -j4" | tee llvm-testlog-%{_arch}.txt || :
0370924
de5c3ae
%if %{with clang}
18499e0
# clang test suite failing on PPC and s390(x)
cfc53b6
# FIXME:
cfc53b6
# unexpected failures on all platforms with GCC 4.7.0.
cfc53b6
# capture logs
94fba1f
make -C tools/clang/test TESTARGS="-v -j4" | tee clang-testlog-%{_arch}.txt || :
194b08b
%endif
a5a420c
a5a420c
999f905
%post libs -p /sbin/ldconfig
999f905
%postun libs -p /sbin/ldconfig
194b08b
de5c3ae
%if %{with clang}
194b08b
%post -n clang -p /sbin/ldconfig
999f905
%postun -n clang -p /sbin/ldconfig
194b08b
%endif
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
a5a420c
%posttrans devel
a5a420c
# link llvm-config to the platform-specific file;
a5a420c
# use ISA bits as priority so that 64-bit is preferred
a5a420c
# over 32-bit if both are installed
94fba1f
#
94fba1f
# XXX ew alternatives though. seems like it'd be better to install a
94fba1f
# shell script that cases on $(arch) and calls out to the appropriate
94fba1f
# llvm-config-%d.
a5a420c
alternatives \
a5a420c
  --install \
a5a420c
  %{_bindir}/llvm-config \
a5a420c
  llvm-config \
a5a420c
  %{_bindir}/llvm-config-%{__isa_bits} \
a5a420c
  %{__isa_bits}
a5a420c
a5a420c
%postun devel
a5a420c
if [ $1 -eq 0 ]; then
a5a420c
  alternatives --remove llvm-config \
a5a420c
    %{_bindir}/llvm-config-%{__isa_bits}
a5a420c
fi
a5a420c
exit 0
a5a420c
a5a420c
Bryan O'Sullivan d291b49
%files
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
8686d9a
%doc CREDITS.TXT LICENSE.TXT README.txt
Bryan O'Sullivan d291b49
%{_bindir}/bugpoint
Bryan O'Sullivan d291b49
%{_bindir}/llc
Bryan O'Sullivan d291b49
%{_bindir}/lli
a5a420c
%exclude %{_bindir}/llvm-config-%{__isa_bits}
Bryan O'Sullivan d291b49
%{_bindir}/llvm*
a914126
%{_bindir}/macho-dump
Bryan O'Sullivan d291b49
%{_bindir}/opt
de5c3ae
%if %{with clang}
8f6b35f
%exclude %{_mandir}/man1/clang.1.*
194b08b
%endif
216ddcf
%doc %{_mandir}/man1/*.1.*
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%files devel
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
94fba1f
%doc llvm-testlog-%{_arch}.txt
a5a420c
%{_bindir}/llvm-config-%{__isa_bits}
Bryan O'Sullivan d291b49
%{_includedir}/%{name}
Bryan O'Sullivan d291b49
%{_includedir}/%{name}-c
c6833e1
a8c599f
%files libs
a8c599f
%defattr(-,root,root,-)
a8c599f
%config(noreplace) %{_sysconfdir}/ld.so.conf.d/llvm-%{_arch}.conf
a8c599f
%dir %{_libdir}/%{name}
de5c3ae
%if %{with clang}
a8c599f
%exclude %{_libdir}/%{name}/libclang.so
194b08b
%endif
a8c599f
%{_libdir}/%{name}/*.so
a8c599f
97e156a
%files static
97e156a
%defattr(-,root,root,-)
97e156a
%{_libdir}/%{name}/*.a
97e156a
de5c3ae
%if %{with clang}
c19d461
%files -n clang
c6833e1
%defattr(-,root,root,-)
420ce43
%doc clang-docs/* clang-testlog-%{_arch}.txt
c6833e1
%{_bindir}/clang*
9ff1905
%{_bindir}/c-index-test
a8c599f
%{_libdir}/%{name}/libclang.so
c19d461
%{_prefix}/lib/clang
8f6b35f
%doc %{_mandir}/man1/clang.1.*
8f6b35f
216ddcf
%files -n clang-devel
216ddcf
%defattr(-,root,root,-)
216ddcf
%{_includedir}/clang
216ddcf
%{_includedir}/clang-c
216ddcf
c19d461
%files -n clang-analyzer
8f6b35f
%defattr(-,root,root,-)
8f6b35f
%{_bindir}/scan-build
8f6b35f
%{_bindir}/scan-view
8f6b35f
%{_libdir}/clang-analyzer
c6833e1
c19d461
%files -n clang-doc
c19d461
%defattr(-,root,root,-)
c19d461
%doc tools/clang/docs/*
194b08b
%endif
c19d461
c6833e1
%files doc
c6833e1
%defattr(-,root,root,-)
c6833e1
%doc examples moredocs/html
Bryan O'Sullivan d291b49
434321d
%if %{with ocaml}
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
9ff1905
%{_libdir}/ocaml/META.llvm
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
c6833e1
%files ocaml-doc
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
c6833e1
%doc moredocs/ocamldoc/html/*
434321d
%endif
Bryan O'Sullivan d291b49
de5c3ae
%if %{with doxygen}
Bryan O'Sullivan d291b49
%files apidoc
Bryan O'Sullivan d291b49
%defattr(-,root,root,-)
c73f9c2
%doc apidoc/*
c73f9c2
de5c3ae
%if %{with clang}
c7b1517
%files -n clang-apidoc
c73f9c2
%defattr(-,root,root,-)
c73f9c2
%doc clang-apidoc/*
b8f7dc4
%endif
194b08b
%endif
Bryan O'Sullivan d291b49
Bryan O'Sullivan d291b49
%changelog
dd9e07d
* Tue May 28 2013 Adam Jackson <ajax@redhat.com> 3.3-0.4.rc2
dd9e07d
- llvm 3.3-rc2
dd9e07d
069eca6
* Sat May 18 2013 Peter Robinson <pbrobinson@fedoraproject.org> 3.3-0.3.20130507
069eca6
- Enable aarch64 target
069eca6
94fba1f
* Tue May 07 2013 Adam Jackson <ajax@redhat.com> 3.3-0.1.20130507
94fba1f
- Bump to LLVM 3.3svn
94fba1f
- Enable s390 backend
94fba1f
6531bd7
* Mon May 06 2013 Adam Jackson <ajax@redhat.com> 3.2-6
6531bd7
- Only build codegen backends for arches that actually exist in Fedora
6531bd7
bb18301
* Wed May 01 2013 Adam Jackson <ajax@redhat.com> 3.2-5
bb18301
- Tweak ld flags for memory usage and performance
bb18301
4a3f435
* Thu Apr  4 2013 Jens Petersen <petersen@redhat.com> - 3.2-4
4a3f435
- fix bogus date for 2.9-0.2.rc1
4a3f435
- drop insufficient llvm-3.2-clang-driver-secondary-arch-triplets.patch
4a3f435
c960848
* Sun Mar 31 2013 Dennis Gilmore <dennis@ausil.us> - 3.2-3
c960848
- add a hack to clang defaulting arm to hardfloat
c960848
97e156a
* Fri Mar 08 2013 Adam Jackson <ajax@redhat.com> 3.2-2
97e156a
- Update R600 patches
97e156a
- Move static libs to -static subpackage
97e156a
- Prep for F18 backport
97e156a
2f5517c
* Wed Feb 13 2013 Jens Petersen <petersen@redhat.com> - 3.2-1
2f5517c
- update to 3.2
2f5517c
- update R600 patches to Tom Stellard's git tree
2f5517c
- llvm-fix-ghc.patch is upstream
2f5517c
- llvm-3.1-docs-pod-markup-fixes.patch no longer needed
2f5517c
- add llvm-3.2-clang-driver-secondary-arch-triplets.patch (#803433)
2f5517c
- build with gcc/g++ even if clang is installed
2f5517c
- llvm-config.1 manpage is no longer
2f5517c
a185901
* Mon Feb  4 2013 Jens Petersen <petersen@redhat.com> - 3.1-16
b8204c1
- bring back configuration for gcc arch include dir (Yury Zaytsev, #893817)
a185901
  which was dropped in 3.0-0.1.rc3
a185901
- BR gcc and gcc-c++ with gcc_version
a185901
74f5b79
* Thu Jan 31 2013 Jens Petersen <petersen@redhat.com> - 3.1-15
74f5b79
- move lvm-config manpage to devel subpackage (#855882)
30312b5
- pod2man moved to perl-podlators in F19
74f5b79
4040d82
* Fri Jan 25 2013 Kalev Lember <kalevlember@gmail.com> - 3.1-14
4040d82
- Rebuilt for GCC 4.8.0
4040d82
4bbca00
* Wed Jan 23 2013 Jens Petersen <petersen@redhat.com> - 3.1-13
cbfd76e
- fix some docs pod markup errors to build with new perl-Pod-Parser
4bbca00
39fcb67
* Mon Oct 29 2012 Richard W.M. Jones <rjones@redhat.com> - 3.1-12
39fcb67
- Rebuild for OCaml 4.00.1.
39fcb67
9d73f9b
* Mon Sep 24 2012 Michel Salim <salimma@fedoraproject.org> - 3.1-11
9d73f9b
- Actually build against GCC 4.7.2
9d73f9b
5e1a5c2
* Mon Sep 24 2012 Michel Salim <salimma@fedoraproject.org> - 3.1-10
5e1a5c2
- Rebuild for GCC 4.7.2
5e1a5c2
3ce0b9c
* Tue Aug 14 2012 Dan Horák <dan[at]danny.cz> - 3.1-9
3ce0b9c
- Apply clang patches only when clang is being built
3ce0b9c
3a31d79
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 3.1-8
3a31d79
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
3a31d79
e4d99d1
* Fri Jul 13 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.1-7
e4d99d1
- Rename patch as it actually fixes Haskell
e4d99d1
23fedaf
* Thu Jul 12 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.1-6
23fedaf
- Add patch to fix building OCAML on ARM
23fedaf
a8758de
* Wed Jul  4 2012 Michel Salim <salimma@fedoraproject.org> - 3.1-5
a8758de
- Actually set runtime dependency on libstdc++ 4.7.1
a8758de
1fd52d5
* Mon Jul  2 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.1-4
1fd52d5
- Rebuild for new libstdc++ bump
1fd52d5
588e7c5
* Sun Jun 10 2012 Richard W.M. Jones <rjones@redhat.com> - 3.1-3
588e7c5
- Rebuild for OCaml 4.00.0.
588e7c5
8dfeb9f
* Fri Jun  8 2012 Michel Salim <salimma@fedoraproject.org> - 3.1-2
8dfeb9f
- Rebuild for ocaml 4.00.0 beta
8dfeb9f
dcd073e
* Sun Jun 03 2012 Dave Airlie <airlied@redhat.com> 3.1-1
dcd073e
- rebase to 3.1 + add r600 patches from Tom Stellar
dcd073e
98be43e
* Fri May 25 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.0-13
98be43e
- Add compiler build options for ARM hardfp
98be43e
5362a9b
* Sun May  6 2012 Peter Robinson <pbrobinson@fedoraproject.org> - 3.0-12
5362a9b
- Bump build
5362a9b
de5c3ae
* Fri Mar 30 2012 Michel Alexandre Salim <michel@hermione.localdomain> - 3.0-11
de5c3ae
- Replace overly-broad dependency on gcc-c++ with gcc and libstdc++-devel
de5c3ae
- Pin clang's dependency on libstdc++-devel to the version used for building
de5c3ae
- Standardize on bcond for conditional build options
de5c3ae
- Remove /lib from search path, everything is now in /usr/lib*
de5c3ae
9dca0ca
* Mon Mar 26 2012 Kalev Lember <kalevlember@gmail.com> - 3.0-10
9dca0ca
- Build without -ftree-pre as a workaround for clang segfaulting
9dca0ca
  on x86_64 (#791365)
9dca0ca
8fe0322
* Sat Mar 17 2012 Karsten Hopp <karsten@redhat.com> 3.0-9
8fe0322
- undefine PPC on ppc as a temporary workaround for 
8fe0322
  http://llvm.org/bugs/show_bug.cgi?id=10969 and 
8fe0322
  RHBZ#769803
8fe0322
db8da8f
* Sat Feb 25 2012 Michel Salim <salimma@fedoraproject.org> - 3.0-8
db8da8f
- Apply upstream patch to properly link LLVMgold against LTO
db8da8f
0b697ba
* Fri Feb 24 2012 Michel Salim <salimma@fedoraproject.org> - 3.0-7
0b697ba
- Build LLVMgold plugin on supported architectures
0b697ba
420ce43
* Tue Feb  7 2012 Michel Salim <salimma@fedoraproject.org> - 3.0-6
420ce43
- Make subpackage dependencies arch-specific
420ce43
- Make LLVM test failures non-fatal on ARM architectures as well (# 770208)
420ce43
- Save LLVM test log on platforms where it fails
420ce43
cfc53b6
* Sun Feb  5 2012 Michel Salim <salimma@fedoraproject.org> - 3.0-5
cfc53b6
- Clang test suite yields unexpected failures with GCC 4.7.0. Make
cfc53b6
  this non-fatal and save the results
cfc53b6
- Multilib fix for harcoded ld search path in ./configure script
cfc53b6
1c32726
* Sat Jan 07 2012 Richard W.M. Jones <rjones@redhat.com> - 3.0-4
1c32726
- Rebuild for OCaml 3.12.1.
1c32726
3bc0872
* Wed Dec 14 2011 Adam Jackson <ajax@redhat.com> 3.0-3
3bc0872
- Also ExcludeArch: ppc* in RHEL
3bc0872
2fb04f7
* Tue Dec 13 2011 Adam Jackson <ajax@redhat.com> 3.0-2
2fb04f7
- ExcludeArch: s390* in RHEL since the native backend has disappeared in 3.0
2fb04f7
e69facf
* Sun Dec 11 2011 Michel Salim <salimma@fedoraproject.org> - 3.0-1
e69facf
- Update to final 3.0 release
e69facf
194b08b
* Mon Dec 05 2011 Adam Jackson <ajax@redhat.com> 3.0-0.2.rc3
194b08b
- RHEL customization: disable clang, --enable-targets=host
194b08b
9ff1905
* Fri Nov 11 2011 Michel Salim <salimma@fedoraproject.org> - 3.0-0.1.rc3
9ff1905
- Update to 3.0rc3
9ff1905
18499e0
* Tue Oct 11 2011 Dan Horák <dan[at]danny.cz> - 2.9-5
18499e0
- don't fail the build on failing tests on ppc(64) and s390(x)
18499e0
3946039
* Fri Sep 30 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-4
3946039
- Apply upstream patch for Operator.h C++0x incompatibility (# 737365)
3946039
0370924
* Sat Aug  6 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-3
0370924
- Disable LLVM test suite on ppc64 architecture  (# 728604)
0370924
- Disable clang test suite on ppc* architectures (-)
0370924
d9bb825
* Wed Aug  3 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-2
d9bb825
- Add runtime dependency of -devel on libffi-devel
d9bb825
a5a420c
* Mon Aug  1 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-1
a5a420c
- Update to 2.9
a5a420c
- Depend on libffi to allow the LLVM interpreter to call external functions
a5a420c
- Build with RTTI enabled, needed by e.g. Rubinius (# 722714)
b3232c7
- Fix multilib installation (# 699416)
b3232c7
- Fix incorrect platform-specific include path on i686
a5a420c
8b95ec6
* Tue May 31 2011 Karsten Hopp <karsten@redhat.com> 2.9-0.4.rc2
8b95ec6
- enable ppc64 build
8b95ec6
Michel Alexandre Salim a09d313
* Fri Mar 25 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.3.rc2
Michel Alexandre Salim 9bdfe6c
- Update to 2.9rc2
Michel Alexandre Salim 9bdfe6c
4a3f435
* Thu Mar 17 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.2.rc1
a8c599f
- Split shared libraries into separate subpackage
8686d9a
- Don't include test logs; breaks multilib (# 666195)
68d1c11
- clang++: also search for platform-specific include files (# 680644)
68d1c11
383ea0f
* Thu Mar 10 2011 Michel Salim <salimma@fedoraproject.org> - 2.9-0.1.rc1
383ea0f
- Update to 2.9rc1
383ea0f
75d0f4e
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8-7
75d0f4e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
75d0f4e
4bd5997
* Mon Jan 10 2011 Richard W.M. Jones <rjones@redhat.com> - 2.8-6
4bd5997
- Rebuild for OCaml 3.12 (http://fedoraproject.org/wiki/Features/OCaml3.12).
4bd5997
05504a3
* Sat Nov 27 2010 Michel Salim <salimma@fedoraproject.org> - 2.8-5
05504a3
- clang now requires gcc-c++ for linking and headers (bug #654560)
05504a3
3fc5264
* Fri Nov 12 2010 Michel Salim <salimma@fedoraproject.org> - 2.8-4
3fc5264
- Backport support for C++0x (# 648990)
3fc5264
3107968
* Fri Oct 15 2010 Michel Salim <salimma@fedoraproject.org> - 2.8-3
3107968
- Re-add omitted %%{_includedir}
3107968
7ea8ecf
* Thu Oct 14 2010 Michel Salim <salimma@fedoraproject.org> - 2.8-2
7ea8ecf
- Add correct C include directory at compile time (# 641500)
7ea8ecf
09e7c11
* Tue Oct 12 2010 Michel Salim <salimma@fedoraproject.org> - 2.8-1
09e7c11
- Update to 2.8 release
09e7c11
Jesse Keating ff6b65b
* Wed Sep 29 2010 jkeating - 2.7-10
Jesse Keating ff6b65b
- Rebuilt for gcc bug 634757
Jesse Keating ff6b65b
b302e35
* Mon Sep 20 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-9
b302e35
- Dynamically determine C++ include path at compile time (# 630474)
b302e35
- Remove unneeded BuildRoot field and clean section
b302e35
6668812
* Wed Sep 15 2010 Dennis Gilmore <dennis@ausil.us> - 2.7-8
6668812
- disable ocaml support on sparc64
6668812
d3b17da
* Wed Aug 11 2010 David Malcolm <dmalcolm@redhat.com> - 2.7-7
d3b17da
- recompiling .py files against Python 2.7 (rhbz#623332)
d3b17da
434321d
* Sat Jul 17 2010 Dan Horák <dan[at]danny.cz> - 2.7-6
434321d
- conditionalize ocaml support
434321d
bda980e
* Mon Jun  7 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-5
bda980e
- Make the new noarch -doc obsoletes older (arched) subpackages
bda980e
c0c6405
* Sat Jun  5 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-4
c0c6405
- Add F-12/x86_64 and F-13 C++ header paths
c0c6405
b8f7dc4
* Wed May 26 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-3
b8f7dc4
- Revert to disabling apidoc by default
b8f7dc4
c73f9c2
* Mon May 24 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-2
c73f9c2
- Exclude llm-gcc manpages
c73f9c2
- Turn on apidoc generation
c73f9c2
- Build with srcdir=objdir, otherwise clang doxygen build fails
c73f9c2
64041e3
* Sun May  2 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-1
64041e3
- Update to final 2.7 release
64041e3
216ddcf
* Sun Mar 28 2010 Michel Salim <salimma@fedoraproject.org> - 2.7-0.1.pre1
216ddcf
- Update to first 2.7 pre-release
216ddcf
1384796
* Fri Sep 18 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.6.pre2
1384796
- Update to 2.6 pre-release2
1384796
- -devel subpackage now virtually provides -static
1384796
4ff9eca
* Wed Sep  9 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.5.pre1
4ff9eca
- Disable var tracking assignments on PPC
4ff9eca
09ee2ab
* Wed Sep  9 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.4.pre1
c19d461
- Don't adjust clang include dir; files there are noarch (bz#521893)
09ee2ab
- Enable clang unit tests
c19d461
- clang and clang-analyzer renamed; no longer depend on llvm at runtime
09ee2ab
a02ba10
* Mon Sep  7 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.3.pre1
a02ba10
- Package Clang's static analyzer tools
a02ba10
d3f05fb
* Mon Sep  7 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.2.pre1
d3f05fb
- PIC is now enabled by default; explicitly disable on %%{ix86}
d3f05fb
c6833e1
* Mon Sep  7 2009 Michel Salim <salimma@fedoraproject.org> - 2.6-0.1.pre1
c6833e1
- First 2.6 prerelease
c6833e1
- Enable Clang front-end
c6833e1
- Enable debuginfo generation
c6833e1
c6833e1
* Sat Sep  5 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-6
09ee2ab
- Disable assertions (needed by OpenGTL, bz#521261)
565c64d
- Align spec file with upstream build instructions
565c64d
- Enable unit tests
565c64d
6f2b484
* Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-5
6f2b484
- Only disable PIC on %%ix86; ppc actually needs it
6f2b484
09280fb
* Sat Aug 22 2009 Michel Salim <salimma@fedoraproject.org> - 2.5-4
09280fb
- Disable use of position-independent code on 32-bit platforms
09280fb
  (buggy in LLVM <= 2.5)
09280fb
b44f18c
* Sat Jul 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.5-3
b44f18c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
b44f18c
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