Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Native Windows port, introduction.



Hi all,

A quality native port of many useful u*x tools is available from
http://gnuwin32.sourceforge.net/ but the lack of a native u*x shell
in a Windows console is really annoying, because for scripting CMD.EXE
is poor and has a horrible syntax.

So I started the effort of porting zsh version 4.3.17 to native Windows
(i.e. using libc and Win32 calls).

- Are you interested in this effort ?

The port is based on two older projects: the very old port of zsh 3.0.5
to Windows by Amol Deshpande, and the Windows native port of tcsh
(version 6.17 as a base). I made _a lot_ of modifications to the sources,
and got a working port of zsh 3.0.8 that I called 3.0.8.1.

The sources of the library needed for the port (the fork() emulation
and many C libray missing pieces) are contained in the Src/win32
directory.

zsh 3.0.8.1, needed to bootstrap version 4.3.17 currenly has no home,
but I can easyly provide a tarball and an executable.

As a first step, to review the source code modifications, the port for
zsh 4.3.17 links a dummy forklib.a, where fork() returns an error.
This first step in many places adds _WIN32 conditionals to already
preset __CYGWIN__ sections.

The attached patch file has the minimal modifications to compile a NON YET
WORKING zsh. The compiled executable is able to execute only simple
builtin commands like echo or setopt.

The configure modifications SHOULD not be applied. They fix three
problems I was not able to workaround:
- at line 3306:
  # The possible output files:
  ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.o"
  deleting conftest.* deletes the source file to be compiled !
- at line 14099
  $SHELL $CONFIG_STATUS -d $ac_config_status_args || ac_cs_success=false
  the -d prevents config.status from failing as it is not able to
  delete the temporary directory that is used by a sub-shell
- the same applies to mkmakemod,sh at line 467
  ${CONFIG_SHELL-/bin/sh} ./config.status -d\

How should I go on from this ?

Best Regards

Fabio

Attachment: patch-s1
Description: Binary data



Messages sorted by: Reverse Date, Date, Thread, Author