Thank you for looking it this. I have done my own poking around and here is 
the idea I came up with, after looking at how some other games were handling 
SDL:

    (arguments
      `(#:phases
        (modify-phases %standard-phases
          (delete 'configure)
          (add-after 'set-paths 'set-sdl-paths
            ;; The makefile adds the output of `sdl2-config --cflags` to the
            ;; compiler flags, but sdl2-config gives us the wrong directory to
            ;; include. We have to add the SDL2 header directory ourselves.
            (lambda* (#:key inputs #:allow-other-keys)
              (setenv "CPLUS_INCLUDE_PATH"
                      (string-append (assoc-ref inputs "sdl-union")
                                     "/include/SDL2"
                                     ":"
                                     (getenv "CPLUS_INCLUDE_PATH")))
              #t))
          (delete 'install))))

This seems cleaner to me than patching. I tested it with `guix build` and it 
seems to work, but I won't have time until next week to look into it again.

On Thursday, 21 February 2019 20:19:35 CET you wrote:
> I've looked into this and found the culprit.
> 
> >     $ echo $C_INCLUDE_PATH
> >     /gnu/store/x3r6c04n583q3fz7szm32ahycrxgfiz6-profile/include
> 
> This is not correct.  You should have a ":"-separated list of store items
> brom bzip2 to libxau.
> 
> >     $ sdl2-config --cflags
> >     -I/gnu/store/4bhz5xzr39v0kgxf3ipv6kswicrdmkk4-sdl2-2.0.9/include/SDL2
> 
> Indeed, sdl2-config should return the path to the union, not the sdl2
> package. SDL2_mixer is missing, which leads to the error.
> 
> It seems to be an issue with sdl2-config.  Any idea, anyone?





Reply via email to