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?