Magellan Linux

Diff of /trunk/core/include/haskell.sminc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 5492 by niro, Wed Jun 30 16:36:45 2010 UTC revision 5540 by niro, Thu Jul 1 15:30:26 2010 UTC
# Line 9  sminclude mtools Line 9  sminclude mtools
9  : ${HOMEPAGE="http://hackage.haskell.org/package/${PNAME/#haskell-/}"}  : ${HOMEPAGE="http://hackage.haskell.org/package/${PNAME/#haskell-/}"}
10    
11  # some sane default dependencies  # some sane default dependencies
12  DEPEND="${DEPEND}  SDEPEND="${SDEPEND}
13   >= dev-lang/ghc-6.12"   >= dev-lang/ghc-6.12"
14    
15  # default SRCFILE SRCDIR and SRC_URI  # default SRCFILE SRCDIR and SRC_URI
# Line 21  SRC_URI=( Line 21  SRC_URI=(
21   mirror://${PNAME}/${SRCFILE}   mirror://${PNAME}/${SRCFILE}
22  )  )
23    
24    # possible features which are supported atm
25    HASKELL_POSSIBLE_FEATURES="split-objs shared register haddock"
26    # default haskell features
27    HASKELL_FEATURES="split-objs shared register"
28    
29  HASKELL_PNAME="${PNAME}"  HASKELL_PNAME="${PNAME}"
30  SPECIAL_VARS="HASKELL_PNAME"  SPECIAL_VARS="${SPECIAL_VARS} HASKELL_PNAME"
31    SPECIAL_FUNCTIONS="${SPECIAL_FUNCTIONS} haskell_preinstall haskell_postinstall haskell_preremove haskell_postremove"
32    
33    haskell_feature()
34    {
35     local search="$1"
36     local feature
37     for feature in ${HASKELL_FEATURES}
38     do
39     # feature was found
40     [[ ${search} = ${feature} ]] && return 0
41     done
42    
43     # feature was *not* found
44     return 1
45    }
46    
47    haskell_feature_is_supported()
48    {
49     local search="$1"
50     local feature
51     for feature in ${HASKELL_POSSIBLE_FEATURES}
52     do
53     # feature was found
54     [[ ${search} = ${feature} ]] && return 0
55     done
56    
57     # feature was *not* found
58     return 1
59    }
60    
61    haskell_disable_feature()
62    {
63     local feature="$1"
64     haskell_feature_is_supported "${feature}" || die "haskell feature '${feature}' not supported!"
65     export HASKELL_FEATURES="${HASKELL_FEATURES/${feature}/}"
66    }
67    
68    haskell_enable_feature()
69    {
70     local feature="$1"
71     haskell_feature_is_supported "${feature}" || die "haskell feature '${feature}' not supported!"
72     export HASKELL_FEATURES+=" ${feature}"
73    }
74    
75  haskell_ghc_version()  haskell_ghc_version()
76  {  {
# Line 66  haskell_src_configure() Line 114  haskell_src_configure()
114  {  {
115   local configure_opts="$@"   local configure_opts="$@"
116    
117     haskell_feature split-objs && configure_opts+=" --enable-split-objs"
118     haskell_feature shared && configure_opts+=" --enable-shared"
119    
120   runhaskell $(haskell_ghc_setup_script) configure \   runhaskell $(haskell_ghc_setup_script) configure \
121   --ghc \   --ghc \
122   --prefix=/usr \   --prefix=/usr \
# Line 77  haskell_src_configure() Line 128  haskell_src_configure()
128   || die   || die
129  }  }
130    
131    haskell_src_build()
132    {
133     runhaskell $(haskell_ghc_setup_script) build || die
134    }
135    
136  haskell_src_compile()  haskell_src_compile()
137  {  {
138   cd ${SRCDIR}   cd ${SRCDIR}
139   haskell_src_configure || die   haskell_src_configure || die
140   runhaskell $(haskell_ghc_setup_script) build || die   haskell_src_build || die
141  }  }
142    
143  haskell_src_install()  haskell_src_install()
144  {  {
145   cd ${SRCDIR}   cd ${SRCDIR}
   
146   runhaskell $(haskell_ghc_setup_script) copy --destdir=${BINDIR} || die   runhaskell $(haskell_ghc_setup_script) copy --destdir=${BINDIR} || die
147    
148     # create register scripts
149     haskell_feature register && haskell_install_register || die
150    
151   # install docs   # install docs
152   local i   local i
153   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \   for i in ABOUT-NLS AUTHORS BUGS CHANGES ChangeLog COPYING \
# Line 129  haskell_postinstall() Line 187  haskell_postinstall()
187  # fi  # fi
188  # }  # }
189    
190  export_inherits haskell src_prepare src_compile src_install preinstall postinstall #preremove  # to be on the safe side, fix all broken packages afer a package remove
191    haskell_postremove()
192    {
193     if [[ -x $(which ghc-pkg) ]]
194     then
195     local broken="$(ghc-pkg check --simple-output)"
196     if [[ ! -z ${broken} ]]
197     then
198     echo "fixing broken haskell modules:"
199     local pkg
200     for pkg in ${broken}
201     do
202     echo "   unregister ${pkg} ..."
203     ghc-pkg unregister ${pkg}
204     done
205     fi
206     fi
207    }
208    
209    export_inherits haskell src_prepare src_compile src_install preinstall postinstall postremove #preremove

Legend:
Removed from v.5492  
changed lines
  Added in v.5540