0

I'm new to Haskell but I want to try and write some OpenGL experiments in it. I've successfully installed OpenGL, GLUT and a few other packages but when I attempt to install GLUtil I get the following error:

Building GLUtil-0.9.0.1...
Failed to install GLUtil-0.9.0.1
Build log ( C:\Users\David\AppData\Roaming\cabal\logs\GLUtil-0.9.0.1.log ):
Building GLUtil-0.9.0.1...
Preprocessing library GLUtil-0.9.0.1...
hpp: Couldn't open input file: -includeC:\Users\David\AppData\Local\Temp\ghc3236_0\ghc_2.h
CallStack (from HasCallStack):

error, called at src\Hpp\CmdLine.hs:89:0: error:
    22 in hpp-0.3.0.0-61vdEFyxUJDaeEBxsHCsL:Hpp.CmdLine
`hpp' failed in phase `C pre-processor'. (Exit code: 1)
cabal: Leaving directory 'C:\Users\David\AppData\Local\Temp\cabal-tmp-6356\GLUtil-0.9.0.1'
cabal: Error: some packages failed to install:
GLUtil-0.9.0.1 failed during the building phase. The exception was:
ExitFailure 1

I tried using older versions of GLUtil and its dependencies but it always ended the same way and I eventually just cleared and reinstalled the Haskell Platform (I didn't know about sandboxing).

One thing that stands out is that -includeC:\Users\Dav... looks to me like a typo, as if there should be a space between -include and C:\... but I don't know how to change this. I couldn't find CmdLine.hs, just the interface file CmdLine.hi which yielded no results.

Does anyone have any advice on how to remedy this?

kcpm
  • 103
  • 1

1 Answers1

0

It appears that there should be a space between the -include and the file name.

I created a version of GLUtil-0.9.0.1 that is already preprocessed and should work for you:

https://github.com/erantapaa/GLUtil-0.9.0.1-no-cpp

It assumes you are using GHC 7.10.x or later.

The steps to remove the dependency on CPP were:

  • files JuicyTextures.hs and ShaderProgram.hs just use CPP to include Control.Applicative for older versions of GHC, so I just commented out those lines. Also remove CPP from the LANGUAGE pragma.

  • Linear.hs uses CPP to generate code. You can create the pre-processed output with:

    gcc -E - < Linear.hs > new-Linear.hs
    

Then remove lines beginning with a hash (#) and remove CPP from the LANGUAGE pragma.

  • in GLUtil.cabal comment out/remove the lines:

    if impl(ghc >= 7.10.1)
      Build-depends:     hpp >= 0.3 && < 0.4
      GHC-Options:       -pgmPhpp -optP--cpp -optP-P
    else
      Build-tools:       cpphs
      GHC-Options:       -pgmPcpphs -optP--cpp -optP
    
ErikR
  • 51,541
  • 9
  • 73
  • 124
  • This worked perfectly, thank you! The only question I still have is how is it that there came to be a lack of space after the `include`? – kcpm Jun 28 '16 at 03:23
  • Don't know, and I don't have a Windows system right now to debug it. – ErikR Jun 28 '16 at 03:35