summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-06-29 06:30:37 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-06-29 06:36:41 -0700
commit65fd38f6e1e94f55350cfe93e25c8264b972c3f6 (patch)
tree330fdb331b1e38a5490abc4e102ff023dd897adf /Makefile
parentd41d8ed8ed5d73aa0abcd4f6e562d06df33dc3e9 (diff)
downloadtxr-65fd38f6e1e94f55350cfe93e25c8264b972c3f6.tar.gz
txr-65fd38f6e1e94f55350cfe93e25c8264b972c3f6.tar.bz2
txr-65fd38f6e1e94f55350cfe93e25c8264b972c3f6.zip
Fix command spawning on Cygwin-based standalone image.
In the standalone image, we need a /bin/sh interpreter for the sh and open-command functions to work. The / path resolves to the installation directory, thanks to some sysrooting logic in the Cygwin DLL. Thus, we just need a sh.exe program in the bin directory, side by side with txr.exe. This sh.exe program can translate the "sh -c command" invocation to "cmd.exe /c command". * Makefile (sh.exe): New target, built from cmdwrap.c. * cmdwrap.c: New file. * inst.nsi: Install sh.exe.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile5
1 files changed, 5 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 0c443a1d..6cb88e3b 100644
--- a/Makefile
+++ b/Makefile
@@ -468,3 +468,8 @@ conftest.clean:
$(V)rm -f conftest$(EXE) conftest.[co] \
conftest2$(EXE) conftest[12].[oc] \
conftest.err conftest.syms
+
+# rule for building the Cygwin /bin/sh -> cmd.exe wrapper
+
+sh.exe: cmdwrap.c
+ $(CC) -O -o $@ $^