I have the Haskell Platform (version 7.0.4 of ghc) installed on my macbook (OS X 10.7 Lion) and I&#39;d like to install glib.  However, when I try cabal install glib, I get:<br><br>cabal install glib<br>Resolving dependencies...<br>
[1 of 2] Compiling SetupWrapper     ( /tmp/glib-0.12.25777/glib-0.12.2/SetupWrapper.hs, /tmp/glib-0.12.25777/glib-0.12.2/dist/setup/SetupWrapper.o )<br>[2 of 2] Compiling Main             ( /tmp/glib-0.12.25777/glib-0.12.2/Setup.hs, /tmp/glib-0.12.25777/glib-0.12.2/dist/setup/Main.o )<br>
Linking /tmp/glib-0.12.25777/glib-0.12.2/dist/setup/setup ...<br>ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame<br>[1 of 2] Compiling Gtk2HsSetup      ( Gtk2HsSetup.hs, dist/setup-wrapper/Gtk2HsSetup.o )<br>
[2 of 2] Compiling Main             ( SetupMain.hs, dist/setup-wrapper/Main.o )<br>Linking dist/setup-wrapper/setup ...<br>ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame<br>
Cannot find gtk2hsC2hs<br>Please install `gtk2hs-buildtools` first and check that the install directory is in your PATH (e.g. HOME/.cabal/bin).<br>cabal: Error: some packages failed to install:<br>glib-0.12.2 failed during the configure step. The exception was:<br>
ExitFailure 1<br><br>-------<br><br>I&#39;ve tried cabal install gtk2hs-buildtools, and appears to complete (it does have two compilation warnings), but that doesn&#39;t help.  Any suggestions?<br><br>Victor Miller<br><br>
Here&#39;s the result cabal install gtk2hs-buildtools:<br><br>bash-3.2$ sudo cabal install gtk2hs-buildtools<br>Resolving dependencies...<br>Configuring gtk2hs-buildtools-0.12.1...<br>Preprocessing executables for gtk2hs-buildtools-0.12.1...<br>
Building gtk2hs-buildtools-0.12.1...<br>[1 of 2] Compiling Paths_gtk2hs_buildtools ( dist/build/autogen/Paths_gtk2hs_buildtools.hs, dist/build/gtk2hsTypeGen/gtk2hsTypeGen-tmp/Paths_gtk2hs_buildtools.o )<br>[2 of 2] Compiling Main             ( hierarchyGen/TypeGen.hs, dist/build/gtk2hsTypeGen/gtk2hsTypeGen-tmp/Main.o )<br>
Linking dist/build/gtk2hsTypeGen/gtk2hsTypeGen ...<br>ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame<br>[1 of 2] Compiling Paths_gtk2hs_buildtools ( dist/build/autogen/Paths_gtk2hs_buildtools.hs, dist/build/gtk2hsHookGenerator/gtk2hsHookGenerator-tmp/Paths_gtk2hs_buildtools.o )<br>
[2 of 2] Compiling Main             ( callbackGen/HookGenerator.hs, dist/build/gtk2hsHookGenerator/gtk2hsHookGenerator-tmp/Main.o )<br>Linking dist/build/gtk2hsHookGenerator/gtk2hsHookGenerator ...<br>ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame<br>
[ 1 of 41] Compiling DLists           ( c2hs/base/general/DLists.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/DLists.o )<br><br>dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CLexer.hs:1:12:<br>    Warning: -fglasgow-exts is deprecated: Use individual extensions instead<br>
[ 2 of 41] Compiling BaseVersion      ( c2hs/base/admin/BaseVersion.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/BaseVersion.o )<br>[ 3 of 41] Compiling Switches         ( c2hs/state/Switches.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Switches.o )<br>
[ 4 of 41] Compiling Map              ( c2hs/base/general/Map.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Map.o )<br>[ 5 of 41] Compiling FastMutInt       ( c2hs/base/general/FastMutInt.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/FastMutInt.o )<br>
[ 6 of 41] Compiling Config           ( c2hs/base/admin/Config.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Config.o )<br>[ 7 of 41] Compiling C2HSConfig       ( c2hs/toplevel/C2HSConfig.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/C2HSConfig.o )<br>
[ 8 of 41] Compiling CInfo            ( c2hs/gen/CInfo.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CInfo.o )<br>[ 9 of 41] Compiling Version          ( c2hs/toplevel/Version.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Version.o )<br>
[10 of 41] Compiling Binary           ( c2hs/base/general/Binary.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Binary.o )<br>[11 of 41] Compiling Position         ( c2hs/base/general/Position.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Position.o )<br>
[12 of 41] Compiling UNames           ( c2hs/base/general/UNames.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/UNames.o )<br>[13 of 41] Compiling Errors           ( c2hs/base/errors/Errors.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Errors.o )<br>
[14 of 41] Compiling Attributes       ( c2hs/base/syms/Attributes.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Attributes.o )<br>[15 of 41] Compiling Idents           ( c2hs/base/syms/Idents.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Idents.o )<br>
[16 of 41] Compiling CTokens          ( c2hs/c/CTokens.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CTokens.o )<br>[17 of 41] Compiling CAST             ( c2hs/c/CAST.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CAST.o )<br>[18 of 41] Compiling CPretty          ( c2hs/c/CPretty.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CPretty.o )<br>
[19 of 41] Compiling Lexers           ( c2hs/base/syntax/Lexers.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Lexers.o )<br>[20 of 41] Compiling StateTrans       ( c2hs/base/state/StateTrans.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/StateTrans.o )<br>
[21 of 41] Compiling StateBase        ( c2hs/base/state/StateBase.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/StateBase.o )<br>[22 of 41] Compiling NameSpaces       ( c2hs/base/syms/NameSpaces.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/NameSpaces.o )<br>
[23 of 41] Compiling CAttrs           ( c2hs/c/CAttrs.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CAttrs.o )<br>[24 of 41] Compiling CBuiltin         ( c2hs/c/CBuiltin.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CBuiltin.o )<br>
[25 of 41] Compiling CParserMonad     ( c2hs/c/CParserMonad.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CParserMonad.o )<br>[26 of 41] Compiling CLexer           ( dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CLexer.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CLexer.o )<br>
<br>dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CLexer.hs:454:17:<br>    Warning: Bindings containing unlifted types should use an outermost bang pattern:<br>               base = alexIndexInt32OffAddr alex_base s<br>    In the expression:<br>
      let<br>        base = alexIndexInt32OffAddr alex_base s<br>        (I# (ord_c)) = ord c<br>        offset = (base +# ord_c)<br>        ....<br>      in<br>        case new_s of {<br>          -1# -&gt; (new_acc, input)<br>
          _ -&gt; alex_scan_tkn<br>                 user orig_input (len +# 1#) new_input new_s new_acc }<br>    In a case alternative:<br>        Just (c, new_input)<br>          -&gt; let<br>               base = alexIndexInt32OffAddr alex_base s<br>
               (I# (ord_c)) = ord c<br>               ....<br>             in<br>               case new_s of {<br>                 -1# -&gt; (new_acc, input)<br>                 _ -&gt; alex_scan_tkn<br>                        user orig_input (len +# 1#) new_input new_s new_acc }<br>
    In the second argument of `seq&#39;, namely<br>      `case alexGetChar input of {<br>         Nothing -&gt; (new_acc, input)<br>         Just (c, new_input)<br>           -&gt; let<br>                base = ...<br>                ....<br>
              in<br>                case new_s of {<br>                  -1# -&gt; ...<br>                  _ -&gt; alex_scan_tkn<br>                         user orig_input (len +# 1#) new_input new_s new_acc } }&#39;<br>
<br>dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CLexer.hs:455:17:<br>    Warning: Bindings containing unlifted types should use an outermost bang pattern:<br>               (I# (ord_c)) = ord c<br>    In the expression:<br>      let<br>
        base = alexIndexInt32OffAddr alex_base s<br>        (I# (ord_c)) = ord c<br>        offset = (base +# ord_c)<br>        ....<br>      in<br>        case new_s of {<br>          -1# -&gt; (new_acc, input)<br>          _ -&gt; alex_scan_tkn<br>
                 user orig_input (len +# 1#) new_input new_s new_acc }<br>    In a case alternative:<br>        Just (c, new_input)<br>          -&gt; let<br>               base = alexIndexInt32OffAddr alex_base s<br>               (I# (ord_c)) = ord c<br>
               ....<br>             in<br>               case new_s of {<br>                 -1# -&gt; (new_acc, input)<br>                 _ -&gt; alex_scan_tkn<br>                        user orig_input (len +# 1#) new_input new_s new_acc }<br>
    In the second argument of `seq&#39;, namely<br>      `case alexGetChar input of {<br>         Nothing -&gt; (new_acc, input)<br>         Just (c, new_input)<br>           -&gt; let<br>                base = ...<br>                ....<br>
              in<br>                case new_s of {<br>                  -1# -&gt; ...<br>                  _ -&gt; alex_scan_tkn<br>                         user orig_input (len +# 1#) new_input new_s new_acc } }&#39;<br>
<br>dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CLexer.hs:456:17:<br>    Warning: Bindings containing unlifted types should use an outermost bang pattern:<br>               offset = (base +# ord_c)<br>    In the expression:<br>      let<br>
        base = alexIndexInt32OffAddr alex_base s<br>        (I# (ord_c)) = ord c<br>        offset = (base +# ord_c)<br>        ....<br>      in<br>        case new_s of {<br>          -1# -&gt; (new_acc, input)<br>          _ -&gt; alex_scan_tkn<br>
                 user orig_input (len +# 1#) new_input new_s new_acc }<br>    In a case alternative:<br>        Just (c, new_input)<br>          -&gt; let<br>               base = alexIndexInt32OffAddr alex_base s<br>               (I# (ord_c)) = ord c<br>
               ....<br>             in<br>               case new_s of {<br>                 -1# -&gt; (new_acc, input)<br>                 _ -&gt; alex_scan_tkn<br>                        user orig_input (len +# 1#) new_input new_s new_acc }<br>
    In the second argument of `seq&#39;, namely<br>      `case alexGetChar input of {<br>         Nothing -&gt; (new_acc, input)<br>         Just (c, new_input)<br>           -&gt; let<br>                base = ...<br>                ....<br>
              in<br>                case new_s of {<br>                  -1# -&gt; ...<br>                  _ -&gt; alex_scan_tkn<br>                         user orig_input (len +# 1#) new_input new_s new_acc } }&#39;<br>
<br>dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CLexer.hs:457:17:<br>    Warning: Bindings containing unlifted types should use an outermost bang pattern:<br>               check = alexIndexInt16OffAddr alex_check offset<br>    In the expression:<br>
      let<br>        base = alexIndexInt32OffAddr alex_base s<br>        (I# (ord_c)) = ord c<br>        offset = (base +# ord_c)<br>        ....<br>      in<br>        case new_s of {<br>          -1# -&gt; (new_acc, input)<br>
          _ -&gt; alex_scan_tkn<br>                 user orig_input (len +# 1#) new_input new_s new_acc }<br>    In a case alternative:<br>        Just (c, new_input)<br>          -&gt; let<br>               base = alexIndexInt32OffAddr alex_base s<br>
               (I# (ord_c)) = ord c<br>               ....<br>             in<br>               case new_s of {<br>                 -1# -&gt; (new_acc, input)<br>                 _ -&gt; alex_scan_tkn<br>                        user orig_input (len +# 1#) new_input new_s new_acc }<br>
    In the second argument of `seq&#39;, namely<br>      `case alexGetChar input of {<br>         Nothing -&gt; (new_acc, input)<br>         Just (c, new_input)<br>           -&gt; let<br>                base = ...<br>                ....<br>
              in<br>                case new_s of {<br>                  -1# -&gt; ...<br>                  _ -&gt; alex_scan_tkn<br>                         user orig_input (len +# 1#) new_input new_s new_acc } }&#39;<br>
<br>dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CLexer.hs:459:17:<br>    Warning: Bindings containing unlifted types should use an outermost bang pattern:<br>               new_s<br>                 = if (offset &gt;=# 0#) &amp;&amp; (check ==# ord_c) then<br>
                       alexIndexInt16OffAddr alex_table offset<br>                   else<br>                       alexIndexInt16OffAddr alex_deflt s<br>    In the expression:<br>      let<br>        base = alexIndexInt32OffAddr alex_base s<br>
        (I# (ord_c)) = ord c<br>        offset = (base +# ord_c)<br>        ....<br>      in<br>        case new_s of {<br>          -1# -&gt; (new_acc, input)<br>          _ -&gt; alex_scan_tkn<br>                 user orig_input (len +# 1#) new_input new_s new_acc }<br>
    In a case alternative:<br>        Just (c, new_input)<br>          -&gt; let<br>               base = alexIndexInt32OffAddr alex_base s<br>               (I# (ord_c)) = ord c<br>               ....<br>             in<br>
               case new_s of {<br>                 -1# -&gt; (new_acc, input)<br>                 _ -&gt; alex_scan_tkn<br>                        user orig_input (len +# 1#) new_input new_s new_acc }<br>    In the second argument of `seq&#39;, namely<br>
      `case alexGetChar input of {<br>         Nothing -&gt; (new_acc, input)<br>         Just (c, new_input)<br>           -&gt; let<br>                base = ...<br>                ....<br>              in<br>                case new_s of {<br>
                  -1# -&gt; ...<br>                  _ -&gt; alex_scan_tkn<br>                         user orig_input (len +# 1#) new_input new_s new_acc } }&#39;<br>[27 of 41] Compiling FNameOps         ( c2hs/base/general/FNameOps.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/FNameOps.o )<br>
[28 of 41] Compiling FileOps          ( c2hs/base/general/FileOps.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/FileOps.o )<br>[29 of 41] Compiling CIO              ( c2hs/base/state/CIO.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CIO.o )<br>
[30 of 41] Compiling State            ( c2hs/base/state/State.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/State.o )<br>[31 of 41] Compiling C2HSState        ( c2hs/state/C2HSState.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/C2HSState.o )<br>
[32 of 41] Compiling CHSLexer         ( c2hs/chs/CHSLexer.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CHSLexer.o )<br>[33 of 41] Compiling CHS              ( c2hs/chs/CHS.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CHS.o )<br>[34 of 41] Compiling GenHeader        ( c2hs/gen/GenHeader.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/GenHeader.o )<br>
[35 of 41] Compiling CTrav            ( c2hs/c/CTrav.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CTrav.o )<br>[36 of 41] Compiling CNames           ( c2hs/c/CNames.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CNames.o )<br>[37 of 41] Compiling CParser          ( dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CParser.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/CParser.o )<br>
[38 of 41] Compiling C                ( c2hs/c/C.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/C.o )<br>[39 of 41] Compiling GBMonad          ( c2hs/gen/GBMonad.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/GBMonad.o )<br>[40 of 41] Compiling GenBind          ( c2hs/gen/GenBind.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/GenBind.o )<br>
[41 of 41] Compiling Main             ( c2hs/toplevel/Main.hs, dist/build/gtk2hsC2hs/gtk2hsC2hs-tmp/Main.o )<br>Linking dist/build/gtk2hsC2hs/gtk2hsC2hs ...<br>ld: warning: could not create compact unwind for _ffi_call_unix64: does not use RBP or RSP based frame<br>
Warning: No documentation was generated as this package does not contain a<br>library. Perhaps you want to use the --executables flag.<br>Installing executable(s) in<br>/Users/victorsmiller/Library/Haskell/ghc-7.0.4/lib/gtk2hs-buildtools-0.12.1/bin<br>
Updating documentation index<br>/Users/victorsmiller/Library/Haskell/doc/index.html<br><br><br>