You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucy.apache.org by "Nick Wellnhofer (JIRA)" <ji...@apache.org> on 2016/06/04 16:09:59 UTC

[lucy-issues] [jira] [Updated] (CLOWNFISH-100) Support building with MSYS make

     [ https://issues.apache.org/jira/browse/CLOWNFISH-100?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nick Wellnhofer updated CLOWNFISH-100:
--------------------------------------
    Fix Version/s: 0.6.0

> Support building with MSYS make
> -------------------------------
>
>                 Key: CLOWNFISH-100
>                 URL: https://issues.apache.org/jira/browse/CLOWNFISH-100
>             Project: Apache Lucy-Clownfish
>          Issue Type: Bug
>          Components: Charmonizer
>            Reporter: Nick Wellnhofer
>            Priority: Minor
>             Fix For: 0.6.0
>
>
> Somewhat ironically, we still can't build the C bindings under MSYS and MSYS2, the Unix-like shells for MinGW, using the make utilities they provide. This is because Charmonizer invokes shell commands via C's {{system}} function which always delegates to {{cmd.exe}} under MinGW, whether under MSYS or not. As a result, backslashes are used as directory separators. This causes problems when commands from the generated Makefile are executed by the MSYS shell. Building with {{mingw32-make}} works, though.
> That's what you get when writing a build system based on C instead of a command shell!
> One solution is to keep using {{cmd.exe}} and convert backslashes to forward slashes before writing them to the Makefile. But doing this manually in charmonizer.main is extremely cumbersome and I'm not sure whether this could be automated reliably.
> I think a better solution is to detect whether we're running in a (mostly) POSIX-compatible environment under Windows and execute POSIX commands via {{sh.exe}} (make {{cmd.exe}} call {{sh.exe}} to be precise).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)