add ghc_bootstrap build mode
- add ghc_bootstrap build mode using: ghc_without_shared, without_prof, without_haddock, without_manual, without_testsuite - add libffi_archs - use ghc-rpm-macros-0.13.4 for ghc_check_bootstrap - drop the quick build profile
This commit is contained in:
parent
beb07b602f
commit
08500177f1
78
ghc.spec
78
ghc.spec
@ -1,23 +1,20 @@
|
|||||||
# shared haskell libraries supported for x86* archs
|
# Shared haskell libraries are supported for x86* archs
|
||||||
# (disabled for other archs in ghc-rpm-macros)
|
# (disabled for other archs in ghc-rpm-macros)
|
||||||
|
|
||||||
## default enabled options ##
|
# bootstrap build skips shared and prof libs, documentation, and testsuite
|
||||||
%bcond_without doc
|
%if %{defined ghc_bootstrap}
|
||||||
# test builds can made faster and smaller by disabling profiled libraries
|
# test builds can made faster and smaller by disabling profiled libraries
|
||||||
# (currently libHSrts_thr_p.a breaks no prof build)
|
# (currently libHSrts_thr_p.a breaks no prof build)
|
||||||
%bcond_without prof
|
%global ghc_without_shared 1
|
||||||
# build xml manuals (users_guide, etc)
|
%global without_prof 1
|
||||||
%bcond_without manual
|
%global without_haddock 1
|
||||||
# run testsuite
|
# docbook manuals (users_guide, etc)
|
||||||
%bcond_without testsuite
|
%global without_manual 1
|
||||||
# use system libffi
|
%global without_testsuite 1
|
||||||
%ifarch %{ix86} x86_64
|
|
||||||
%bcond_without libffi
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
## default disabled options ##
|
# archs that use system libffi
|
||||||
# quick build profile
|
%global libffi_archs %{ix86} x86_64
|
||||||
%bcond_with quick
|
|
||||||
|
|
||||||
# ghc does not output dwarf format so debuginfo is not useful
|
# ghc does not output dwarf format so debuginfo is not useful
|
||||||
%global debug_package %{nil}
|
%global debug_package %{nil}
|
||||||
@ -30,7 +27,7 @@ Version: 7.0.4
|
|||||||
# - release can only be reset if all library versions get bumped simultaneously
|
# - release can only be reset if all library versions get bumped simultaneously
|
||||||
# (eg for a major release)
|
# (eg for a major release)
|
||||||
# - minor release numbers should be incremented monotonically
|
# - minor release numbers should be incremented monotonically
|
||||||
Release: 25%{?dist}
|
Release: 26%{?dist}
|
||||||
Summary: Glasgow Haskell Compiler
|
Summary: Glasgow Haskell Compiler
|
||||||
# fedora ghc has been bootstrapped on the following archs:
|
# fedora ghc has been bootstrapped on the following archs:
|
||||||
#ExclusiveArch: %{ix86} x86_64 ppc alpha sparcv9 ppc64
|
#ExclusiveArch: %{ix86} x86_64 ppc alpha sparcv9 ppc64
|
||||||
@ -38,7 +35,7 @@ ExcludeArch: sparc64 s390x
|
|||||||
License: BSD
|
License: BSD
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
Source0: http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz2
|
Source0: http://www.haskell.org/ghc/dist/%{version}/ghc-%{version}-src.tar.bz2
|
||||||
%if %{with testsuite}
|
%if %{undefined without_testsuite}
|
||||||
Source2: http://www.haskell.org/ghc/dist/%{version}/testsuite-%{version}.tar.bz2
|
Source2: http://www.haskell.org/ghc/dist/%{version}/testsuite-%{version}.tar.bz2
|
||||||
%endif
|
%endif
|
||||||
Source3: ghc-doc-index.cron
|
Source3: ghc-doc-index.cron
|
||||||
@ -56,7 +53,8 @@ Obsoletes: ghc-dph-prim-par < 0.5, ghc-dph-prim-par-devel < 0.5, ghc-dph-prim-pa
|
|||||||
Obsoletes: ghc-dph-prim-seq < 0.5, ghc-dph-prim-seq-devel < 0.5, ghc-dph-prim-seq-prof < 0.5
|
Obsoletes: ghc-dph-prim-seq < 0.5, ghc-dph-prim-seq-devel < 0.5, ghc-dph-prim-seq-prof < 0.5
|
||||||
Obsoletes: ghc-dph-seq < 0.5, ghc-dph-seq-devel < 0.5, ghc-dph-seq-prof < 0.5
|
Obsoletes: ghc-dph-seq < 0.5, ghc-dph-seq-devel < 0.5, ghc-dph-seq-prof < 0.5
|
||||||
Obsoletes: ghc-feldspar-language < 0.4, ghc-feldspar-language-devel < 0.4, ghc-feldspar-language-prof < 0.4
|
Obsoletes: ghc-feldspar-language < 0.4, ghc-feldspar-language-devel < 0.4, ghc-feldspar-language-prof < 0.4
|
||||||
BuildRequires: ghc, ghc-rpm-macros >= 0.13
|
BuildRequires: ghc %{!?ghc_bootstrap: = %{version}}
|
||||||
|
BuildRequires: ghc-rpm-macros >= 0.13.4
|
||||||
BuildRequires: gmp-devel, libffi-devel
|
BuildRequires: gmp-devel, libffi-devel
|
||||||
BuildRequires: ghc-directory-devel, ghc-process-devel, ghc-pretty-devel, ghc-containers-devel, ghc-haskell98-devel, ghc-bytestring-devel
|
BuildRequires: ghc-directory-devel, ghc-process-devel, ghc-pretty-devel, ghc-containers-devel, ghc-haskell98-devel, ghc-bytestring-devel
|
||||||
# for internal terminfo
|
# for internal terminfo
|
||||||
@ -64,13 +62,13 @@ BuildRequires: ncurses-devel
|
|||||||
Requires: gcc
|
Requires: gcc
|
||||||
Requires: ghc-base-devel
|
Requires: ghc-base-devel
|
||||||
# llvm is an optional dependency
|
# llvm is an optional dependency
|
||||||
%if %{with manual}
|
%if %{undefined without_manual}
|
||||||
BuildRequires: libxslt, docbook-style-xsl
|
BuildRequires: libxslt, docbook-style-xsl
|
||||||
%endif
|
%endif
|
||||||
%if %{undefined without_hscolour}
|
%if %{undefined without_hscolour}
|
||||||
BuildRequires: hscolour
|
BuildRequires: hscolour
|
||||||
%endif
|
%endif
|
||||||
%if %{with testsuite}
|
%if %{undefined without_testsuite}
|
||||||
BuildRequires: python
|
BuildRequires: python
|
||||||
%endif
|
%endif
|
||||||
%ifarch ppc64
|
%ifarch ppc64
|
||||||
@ -151,7 +149,7 @@ Provides: ghc-prof = %{version}-%{release}
|
|||||||
This is a meta-package for all the development library packages in GHC.
|
This is a meta-package for all the development library packages in GHC.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{name}-%{version} %{?with_testsuite:-b2}
|
%setup -q -n %{name}-%{version} %{!?without_testsuite:-b2}
|
||||||
# absolute haddock path (was for html/libraries -> libraries)
|
# absolute haddock path (was for html/libraries -> libraries)
|
||||||
%patch1 -p1 -b .orig
|
%patch1 -p1 -b .orig
|
||||||
# type-level too big so skip it in gen_contents_index
|
# type-level too big so skip it in gen_contents_index
|
||||||
@ -162,7 +160,7 @@ This is a meta-package for all the development library packages in GHC.
|
|||||||
# make sure we don't use these
|
# make sure we don't use these
|
||||||
rm -r ghc-tarballs/{mingw,perl}
|
rm -r ghc-tarballs/{mingw,perl}
|
||||||
# use system libffi
|
# use system libffi
|
||||||
%if %{with libffi}
|
%ifarch %{libffi_archs}
|
||||||
%patch4 -p1 -b .libffi
|
%patch4 -p1 -b .libffi
|
||||||
rm -r ghc-tarballs/libffi
|
rm -r ghc-tarballs/libffi
|
||||||
%endif
|
%endif
|
||||||
@ -181,27 +179,24 @@ rm -r ghc-tarballs/libffi
|
|||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
%if %{undefined ghc_bootstrap}
|
||||||
|
%ghc_check_bootstrap
|
||||||
|
%endif
|
||||||
|
|
||||||
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
|
# http://hackage.haskell.org/trac/ghc/wiki/Platforms
|
||||||
# cf https://github.com/gentoo-haskell/gentoo-haskell/tree/master/dev-lang/ghc
|
# cf https://github.com/gentoo-haskell/gentoo-haskell/tree/master/dev-lang/ghc
|
||||||
cat > mk/build.mk << EOF
|
cat > mk/build.mk << EOF
|
||||||
GhcLibWays = v %{?with_prof:p} %{!?ghc_without_shared:dyn}
|
GhcLibWays = v %{!?without_prof:p} %{!?ghc_without_shared:dyn}
|
||||||
%if %{without doc}
|
%if %{defined without_haddock}
|
||||||
HADDOCK_DOCS = NO
|
HADDOCK_DOCS = NO
|
||||||
%endif
|
%endif
|
||||||
%if %{without manual}
|
%if %{defined without_manual}
|
||||||
BUILD_DOCBOOK_HTML = NO
|
BUILD_DOCBOOK_HTML = NO
|
||||||
%endif
|
%endif
|
||||||
%if %{with quick}
|
|
||||||
SRC_HC_OPTS = -H64m -O0 -fasm
|
|
||||||
GhcStage1HcOpts = -O -fasm
|
|
||||||
GhcStage2HcOpts = -O0 -fasm
|
|
||||||
GhcLibHcOpts = -O0 -fasm
|
|
||||||
SplitObjs = NO
|
|
||||||
%endif
|
|
||||||
%if %{undefined without_hscolour}
|
%if %{undefined without_hscolour}
|
||||||
HSCOLOUR_SRCS = NO
|
HSCOLOUR_SRCS = NO
|
||||||
%endif
|
%endif
|
||||||
%if %{with libffi}
|
%ifarch %{libffi_archs}
|
||||||
SRC_HC_OPTS += -lffi
|
SRC_HC_OPTS += -lffi
|
||||||
%endif
|
%endif
|
||||||
%ifarch ppc64
|
%ifarch ppc64
|
||||||
@ -266,7 +261,10 @@ echo "%doc libraries/LICENSE.%1" >> ghc-%2.files
|
|||||||
ls $RPM_BUILD_ROOT%{ghclibdir}/libHS*.so >> ghc-base.files
|
ls $RPM_BUILD_ROOT%{ghclibdir}/libHS*.so >> ghc-base.files
|
||||||
sed -i -e "s|^$RPM_BUILD_ROOT||g" ghc-base.files
|
sed -i -e "s|^$RPM_BUILD_ROOT||g" ghc-base.files
|
||||||
%endif
|
%endif
|
||||||
ls -d $RPM_BUILD_ROOT%{ghclibdir}/libHS*.a %{!?with_libffi:$RPM_BUILD_ROOT%{ghclibdir}/HSffi.o} $RPM_BUILD_ROOT%{ghclibdir}/package.conf.d/builtin_*.conf $RPM_BUILD_ROOT%{ghclibdir}/include >> ghc-base-devel.files
|
ls -d $RPM_BUILD_ROOT%{ghclibdir}/libHS*.a $RPM_BUILD_ROOT%{ghclibdir}/package.conf.d/builtin_*.conf $RPM_BUILD_ROOT%{ghclibdir}/include >> ghc-base-devel.files
|
||||||
|
%ifnarch %{libffi_archs}
|
||||||
|
echo $RPM_BUILD_ROOT%{ghclibdir}/HSffi.o >> ghc-base-devel.files
|
||||||
|
%endif
|
||||||
sed -i -e "s|^$RPM_BUILD_ROOT||g" ghc-base-devel.files
|
sed -i -e "s|^$RPM_BUILD_ROOT||g" ghc-base-devel.files
|
||||||
|
|
||||||
# these are handled as alternatives
|
# these are handled as alternatives
|
||||||
@ -280,7 +278,7 @@ done
|
|||||||
|
|
||||||
%ghc_strip_dynlinked
|
%ghc_strip_dynlinked
|
||||||
|
|
||||||
%if %{with doc}
|
%if %{undefined without_haddock}
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.hourly
|
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.hourly
|
||||||
install -p --mode=755 %SOURCE3 ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.hourly/ghc-doc-index
|
install -p --mode=755 %SOURCE3 ${RPM_BUILD_ROOT}%{_sysconfdir}/cron.hourly/ghc-doc-index
|
||||||
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/lib/ghc
|
mkdir -p ${RPM_BUILD_ROOT}%{_localstatedir}/lib/ghc
|
||||||
@ -307,7 +305,7 @@ inplace/bin/ghc-stage2 testghc/foo.hs -o testghc/foo -dynamic
|
|||||||
[ "$(testghc/foo)" = "Foo" ]
|
[ "$(testghc/foo)" = "Foo" ]
|
||||||
rm testghc/*
|
rm testghc/*
|
||||||
%endif
|
%endif
|
||||||
%if %{with testsuite}
|
%if %{undefined without_testsuite}
|
||||||
make -C testsuite/tests/ghc-regress fast
|
make -C testsuite/tests/ghc-regress fast
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -365,7 +363,7 @@ fi
|
|||||||
%dir %{ghcdocbasedir}
|
%dir %{ghcdocbasedir}
|
||||||
%if %{with doc}
|
%if %{with doc}
|
||||||
%{ghcdocbasedir}/html
|
%{ghcdocbasedir}/html
|
||||||
%if %{with manual}
|
%if %{undefined without_manual}
|
||||||
%{ghcdocbasedir}/Cabal
|
%{ghcdocbasedir}/Cabal
|
||||||
%{ghcdocbasedir}/haddock
|
%{ghcdocbasedir}/haddock
|
||||||
%{ghcdocbasedir}/users_guide
|
%{ghcdocbasedir}/users_guide
|
||||||
@ -390,6 +388,14 @@ fi
|
|||||||
%defattr(-,root,root,-)
|
%defattr(-,root,root,-)
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jun 17 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-26
|
||||||
|
- packaging cleanup:
|
||||||
|
- add ghc_bootstrap build mode using: ghc_without_shared, without_prof,
|
||||||
|
without_haddock, without_manual, without_testsuite
|
||||||
|
- add libffi_archs
|
||||||
|
- use ghc-rpm-macros-0.13.4 for ghc_check_bootstrap
|
||||||
|
- drop the quick build profile
|
||||||
|
|
||||||
* Thu Jun 16 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-25
|
* Thu Jun 16 2011 Jens Petersen <petersen@redhat.com> - 7.0.4-25
|
||||||
- update to 7.0.4 bugfix release
|
- update to 7.0.4 bugfix release
|
||||||
- strip static again (upstream #5004 fixed)
|
- strip static again (upstream #5004 fixed)
|
||||||
|
Loading…
Reference in New Issue
Block a user