diff --git a/llvm-build-examples.sh.in b/llvm-build-examples.sh.in new file mode 100644 index 0000000..93d80a1 --- /dev/null +++ b/llvm-build-examples.sh.in @@ -0,0 +1,16 @@ +#!/bin/sh +touch ../config.status 2>/dev/null +if [ $? != 0 ]; then + echo Make sure parent directory is writeable. + echo You can fix this by e.g. + echo (cd ../ && tar cf - examples) | (cd $HOME && tar xf -) + exit $? +else + chmod +x ../config.status + for f in Makefile.{common,config,rules}; do + ln -sf LIBDIR/llvm/build/$f .. + done + + make $@ +fi + diff --git a/llvm.spec b/llvm.spec index 242e7c1..7a9fce9 100644 --- a/llvm.spec +++ b/llvm.spec @@ -13,34 +13,39 @@ %define debug_package %{nil} -Name: llvm -Version: 2.4 -Release: 2%{?dist} -Summary: The Low Level Virtual Machine +Name: llvm +Version: 2.4 +Release: 3%{?dist} +Summary: The Low Level Virtual Machine -Group: Development/Languages -License: NCSA -URL: http://llvm.org/ -Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tar.gz +Group: Development/Languages +License: NCSA +URL: http://llvm.org/ +Source0: http://llvm.org/releases/%{version}/llvm-%{version}.tar.gz %if %{?_with_gcc:1}%{!?_with_gcc:0} -Source1: http://llvm.org/releases/%{version}/llvm-gcc%{lgcc_version}-%{version}.source.tar.gz +Source1: http://llvm.org/releases/%{version}/llvm-gcc%{lgcc_version}-%{version}.source.tar.gz %endif -Patch0: llvm-2.1-fix-sed.patch +Source2: llvm-build-examples.sh.in +Patch0: llvm-2.1-fix-sed.patch Patch1: llvm-2.4-fix-ocaml.patch -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) -BuildRequires: bison -BuildRequires: chrpath -BuildRequires: flex -BuildRequires: gcc-c++ >= 3.4 -BuildRequires: groff -BuildRequires: libtool-ltdl-devel -BuildRequires: ocaml-ocamldoc +BuildRequires: bison +BuildRequires: chrpath +BuildRequires: flex +BuildRequires: gcc-c++ >= 3.4 +BuildRequires: groff +BuildRequires: libtool-ltdl-devel +BuildRequires: ocaml-ocamldoc %if %{?_with_doxygen:1}%{!?_with_doxygen:0} -BuildRequires: doxygen graphviz +BuildRequires: doxygen graphviz %endif +# LLVM is not supported on PPC64 +# http://llvm.org/bugs/show_bug.cgi?id=3729 +ExcludeArch: ppc64 + %description LLVM is a compiler infrastructure designed for compile-time, link-time, runtime, and idle-time optimization of programs from @@ -55,10 +60,10 @@ ends derived from GCC %{lgcc_version}. %package devel -Summary: Libraries and header files for LLVM -Group: Development/Languages -Requires: %{name} = %{version}-%{release} -Requires: libstdc++-devel >= 3.4 +Summary: Libraries and header files for LLVM +Group: Development/Languages +Requires: %{name} = %{version}-%{release} +Requires: libstdc++-devel >= 3.4 %description devel @@ -67,9 +72,10 @@ native programs that use the LLVM infrastructure. %package doc -Summary: Documentation for LLVM -Group: Development/Languages -Requires: %{name} = %{version}-%{release} +Summary: Documentation for LLVM +Group: Development/Languages +# depend on devel since the examples require build scripts +Requires: %{name}-devel = %{version}-%{release} %description doc Documentation for the LLVM compiler infrastructure. @@ -78,10 +84,10 @@ Documentation for the LLVM compiler infrastructure. %if %{?_with_gcc:1}%{!?_with_gcc:0} %package gcc -Summary: C compiler for LLVM -License: GPL+ -Group: Development/Languages -Requires: %{name} = %{version}-%{release} +Summary: C compiler for LLVM +License: GPL+ +Group: Development/Languages +Requires: %{name} = %{version}-%{release} %description gcc @@ -89,10 +95,10 @@ C compiler for LLVM. %package gcc-c++ -Summary: C++ compiler for LLVM -License: GPL+ -Group: Development/Languages -Requires: %{name}-gcc = %{version}-%{release} +Summary: C++ compiler for LLVM +License: GPL+ +Group: Development/Languages +Requires: %{name}-gcc = %{version}-%{release} %description gcc-c++ @@ -103,9 +109,9 @@ C++ compiler for LLVM. %if %{?_with_doxygen:1}%{!?_with_doxygen:0} %package apidoc -Summary: API documentation for LLVM -Group: Development/Languages -Requires: %{name}-docs = %{version}-%{release} +Summary: API documentation for LLVM +Group: Development/Languages +Requires: %{name}-docs = %{version}-%{release} %description apidoc @@ -113,23 +119,23 @@ API documentation for the LLVM compiler infrastructure. %endif -%package ocaml -Summary: OCaml binding for LLVM -Group: Development/Libraries +%package ocaml +Summary: OCaml binding for LLVM +Group: Development/Libraries Requires: %{name} = %{version}-%{release} -Requires: ocaml-runtime +Requires: ocaml-runtime -%description ocaml +%description ocaml OCaml binding for LLVM. %package ocaml-devel -Summary: Development files for %{name}-ocaml -Group: Development/Libraries +Summary: Development files for %{name}-ocaml +Group: Development/Libraries Requires: %{name}-devel = %{version}-%{release} -Requires: %{name}-ocaml = %{version}-%{release} +Requires: %{name}-ocaml = %{version}-%{release} -%description ocaml-devel +%description ocaml-devel The %{name}-ocaml-devel package contains libraries and signature files for developing applications that use %{name}-ocaml. @@ -141,6 +147,7 @@ for developing applications that use %{name}-ocaml. %patch1 -p1 -b .fix-ocaml %build +# Note: --enable-pic can be turned off when 2.6 comes out %configure \ --libdir=%{_libdir}/%{name} \ --datadir=%{_datadir}/%{name}-%{version} \ @@ -149,7 +156,7 @@ for developing applications that use %{name}-ocaml. --enable-debug-runtime \ --enable-jit \ --enable-optimized \ - --enable-shared \ + --enable-pic \ --with-pic # --enable-targets=host-only \ @@ -225,6 +232,14 @@ sed -i 's,ABS_RUN_DIR/lib",ABS_RUN_DIR/%{_lib}/%{name}",' \ chmod -x %{buildroot}%{_libdir}/%{name}/*.[oa] +# Install build scripts +mkdir -p %{buildroot}%{_libdir}/llvm/build +chmod -x Makefile{,.common} +for f in Makefile.{common,config,rules}; do + cp -p $f %{buildroot}%{_libdir}/llvm/build/ +done +cat %{SOURCE2} | sed -e "s|LIBDIR|%{_libdir}|g" > examples/build-examples.sh + %if %{?_with_gcc:1}%{!?_with_gcc:0} # Install llvm-gcc. @@ -337,6 +352,9 @@ rm -rf %{buildroot} %changelog +* Wed Mar 4 2009 Michel Salim - 2.4-3 +- Package build scripts (bug #457881) + * Tue Dec 2 2008 Michel Salim - 2.4-2 - Patched build process for the OCaml binding