# Ruby specific macro definitions.
# To make use of these macros insert the following line into your spec file:
# %{load:%{_usrlibrpm}/macros.d/haskell}

# Path to scripts to autogenerate haskell package dependencies,
#
# Note: Used iff _use_internal_dependency_generator is non-zero. The
# helpers are also used by %{_rpmhome}/rpmdeps {--provides|--requires}.
%__haskell_provides	%{_rpmhome}/haskelldeps.sh --provides
%__haskell_requires	%{_rpmhome}/haskelldeps.sh --requires

# How is named the Setup.?hs
%_cabal_setup %{?cabal_setup}%{?!cabal_setup:Setup.hs}

# which compiler (default ghc)
%_haskell_compiler %{?haskell_compiler}%{?!haskell_compiler:runhaskell}

# The compilation step
%_cabal_compil \
    %{_haskell_compiler} %{_cabal_setup} configure --prefix=%{_prefix} \
    %{_haskell_compiler} %{_cabal_setup} build \
    %{?!_no_haddock:%{_haskell_compiler} %{_cabal_setup} haddock}

# Script need to register module on the system
%_cabal_genscripts \
    %{_haskell_compiler} %{_cabal_setup}   register --gen-script || : \
    sed -i 's:/usr/bin/ghc-pkg:ghc-pkg --force:' register.sh \
    %{_haskell_compiler} %{_cabal_setup} unregister --gen-script || : \
    sed -i 's:/usr/bin/ghc-pkg:ghc-pkg --force:' unregister.sh

# post/pre scriptlet
%_cabal_in %posttrans -f register.sh

%_cabal_un %preun -f unregister.sh

# Using script to register module during install
%_cabal_scriptlets \
%_cabal_in \
\
%_cabal_un \

# The "full" %build step
%_cabal_build \
    %_cabal_compil \
    %_cabal_genscripts

# The "full" %install step
%_cabal_install \
    %{_haskell_compiler} %{_cabal_setup} copy --destdir=%{buildroot} \

# The "full" %check step
%_cabal_check \
    %{_haskell_compiler} %{_cabal_setup} test

%_cabal_rpm_deps_dir %_datadir/haskell-deps

%_cabal_pkg_deps_dir %_cabal_rpm_deps_dir/%name-%version-%release

%_cabal_rpm_gen_deps \
mkdir -p %{buildroot}%{_cabal_pkg_deps_dir} \
touch %{buildroot}%{_cabal_pkg_deps_dir}/{provides,requires} \
find . -name "*.cabal" | xargs cabalrpmprov > %{buildroot}%{_cabal_pkg_deps_dir}/provides \
cabalrpmreq > %{buildroot}%{_cabal_pkg_deps_dir}/requires \

%_cabal_rpm_files \
%_cabal_pkg_deps_dir

%_cabal_haddoc_files \
%{?!_no_haddock:%doc dist/doc/html}
