about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--Config/defs.mk.in21
-rw-r--r--Etc/MACHINES10
-rw-r--r--Src/Makefile.in20
-rw-r--r--Src/Modules/mathfunc.c26
-rw-r--r--Src/Modules/zftp.c12
-rw-r--r--Src/pattern.c2
-rw-r--r--configure.in8
8 files changed, 78 insertions, 31 deletions
diff --git a/ChangeLog b/ChangeLog
index acdbd9b18..9ae973d33 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2000-05-26  Peter Stephenson  <pws@cambridgesiliconradio.com>
+
+	* 11590: configure.in, Config/defs.mk.in, Etc/MACHINES,
+	Src/Makefile.in, Src/Modules/mathfunc.c, Src/Modules/zftp.c:
+	Various Cygwin fixes: compilation glitches in zsh/mathfunc and
+	zsh/zftp; installation didn't handle .exe extension properly;
+	installation note.
+
+	* 11587: Felix Rosencrantz: Src/pattern.c: uninitialised variable.
+
 2000-05-26  Sven Wischnowsky  <wischnow@zsh.org>
 
 	* 11566: Src/Zle/zle_main.c: disable vared if zle is not enabled
diff --git a/Config/defs.mk.in b/Config/defs.mk.in
index 3394123d5..e586cea18 100644
--- a/Config/defs.mk.in
+++ b/Config/defs.mk.in
@@ -27,15 +27,23 @@
 # fundamentals
 SHELL = /bin/sh
 @SET_MAKE@
+EXEEXT = @EXEEXT@
+
+# install basename
+tzsh            = @tzsh@
 
 # installation directories
 prefix          = @prefix@
 exec_prefix     = @exec_prefix@
 bindir          = @bindir@
 libdir          = @libdir@
-MODDIR          = $(libdir)/zsh/$(VERSION)
+MODDIR          = $(libdir)/$(tzsh)/$(VERSION)
 infodir         = @infodir@
 mandir          = @mandir@
+datadir         = @datadir@
+fndir           = @fndir@
+sitefndir       = @sitefndir@
+htmldir         = $(datadir)/$(tzsh)/htmldoc
 
 # compilation
 CC              = @CC@
@@ -55,6 +63,9 @@ DLLD            = @DLLD@
 EXPOPT          = @EXPOPT@
 IMPOPT          = @IMPOPT@
 
+# choose modules not to compile and install
+OMIT_MODULES    = @OMIT_MODULES@
+
 # utilities
 AWK             = @AWK@
 YODL            = @YODL@
@@ -65,16 +76,22 @@ YODL2HTML       = $(YODL)2html
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_DATA    = @INSTALL_DATA@
 
+# variables used in determining what to install
+FUNCTIONS_INSTALL = @FUNCTIONS_INSTALL@
+FUNCTIONS_SUBDIRS = @FUNCTIONS_SUBDIRS@
+
 # flags passed to recursive makes in subdirectories
 MAKEDEFS = \
 prefix='$(prefix)' exec_prefix='$(exec_prefix)' bindir='$(bindir)' \
 libdir='$(libdir)' MODDIR='$(MODDIR)' infodir='$(infodir)' mandir='$(mandir)' \
+datadir='$(datadir)' fndir='$(fndir)' htmldir='$(htmldir)' \
 CC='$(CC)' CPPFLAGS='$(CPPFLAGS)' DEFS='$(DEFS)' CFLAGS='$(CFLAGS)' \
 LDFLAGS='$(LDFLAGS)' EXTRA_LDFLAGS='$(EXTRA_LDFLAGS)' \
 DLCFLAGS='$(DLCFLAGS)' DLLDFLAGS='$(DLLDFLAGS)' \
 LIBLDFLAGS='$(LIBLDFLAGS)' EXELDFLAGS='$(EXELDFLAGS)' \
 LIBS='$(LIBS)' DL_EXT='$(DL_EXT)' DLLD='$(DLLD)' \
-AWK='$(AWK)' YODL='$(YODL)' YODL2TXT='$(YODL2TXT)' YODL2HTML='$(YODL2HTML)'
+AWK='$(AWK)' YODL='$(YODL)' YODL2TXT='$(YODL2TXT)' YODL2HTML='$(YODL2HTML)' \
+FUNCTIONS_INSTALL='$(FUNCTIONS_INSTALL)' tzsh='$(tzsh)'
 
 # override built-in suffix list
 .SUFFIXES:
diff --git a/Etc/MACHINES b/Etc/MACHINES
index 7ed72c4bd..c61176aa5 100644
--- a/Etc/MACHINES
+++ b/Etc/MACHINES
@@ -25,6 +25,16 @@ Apple/NeXT OpenStep 4.2 for i386.
 Cray: Unicos (C90 and T90)
 	Should build `out-of-the-box'.
 
+Cygnus Solutions: Cygwin on Intel
+	Should build `out-of-the-box'.  The compilation directory should
+	be on a file system mounted as binary (the mount command shows
+	`binmode').
+
+	Dynamic loading does not work (this is automatically detected),
+	though libraries not compiled by default will work (see the file
+	INSTALL for how to add these to the base executable).  In
+	particular zsh/zftp and zsh/mathfunc are known to work.
+
 Data General: DG/UX 5.4R3.10 MU01 (various AViiONs)
 	Should build `out-of-the-box'.
 
diff --git a/Src/Makefile.in b/Src/Makefile.in
index 22b983c1b..bc6d29e10 100644
--- a/Src/Makefile.in
+++ b/Src/Makefile.in
@@ -50,7 +50,7 @@ DLLINK      = $(DLLD) $(LDFLAGS) $(LIBLDFLAGS) $(DLLDFLAGS) -o $@
 all: bin modules
 .PHONY: all
 
-bin: zsh
+bin: zsh$(EXEEXT)
 .PHONY: bin
 
 modules: headers
@@ -74,7 +74,7 @@ NNTRYOBJ   =
 LDRUNPATH = LD_RUN_PATH=$(libdir)/$(tzsh)
 NDRUNPATH =
 
-zsh: $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS) zsh.export
+zsh$(EXEEXT): $(@L@IBZSH) $(@L@STMP) $(MAIN_OBJS) zsh.export
 	rm -f $@
 	$(@L@DRUNPATH) $(LINK) $(MAIN_OBJS) $(@L@LIST) $(ZSH_@E@XPORT) $(@L@IBZSH) $(LIBS)
 
@@ -176,16 +176,16 @@ uninstall.bin: uninstall.bin-here
 .PHONY: install.bin uninstall.bin
 
 # install binary, creating install directory if necessary
-install.bin-here: zsh install.bin-@L@
+install.bin-here: zsh$(EXEEXT) install.bin-@L@
 	$(sdir_top)/mkinstalldirs $(DESTDIR)$(bindir)
-	$(INSTALL_PROGRAM) $(STRIPFLAGS) zsh $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION)
-	if test -f $(DESTDIR)$(bindir)/$(tzsh); then \
+	$(INSTALL_PROGRAM) $(STRIPFLAGS) zsh$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION)$(EXEEXT)
+	if test -f $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT); then \
 	    rm -f $(DESTDIR)$(bindir)/$(tzsh).old; \
-	    $(LN) $(DESTDIR)$(bindir)/$(tzsh) $(DESTDIR)$(bindir)/$(tzsh).old; \
+	    $(LN) $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh).old; \
 	else :; fi
 	rm -f $(DESTDIR)$(bindir)/$(tzsh).new
-	$(LN) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh).new
-	mv $(DESTDIR)$(bindir)/$(tzsh).new $(DESTDIR)$(bindir)/$(tzsh)
+	$(LN) $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION)$(EXEEXT) $(DESTDIR)$(bindir)/$(tzsh).new
+	mv $(DESTDIR)$(bindir)/$(tzsh).new $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT)
 .PHONY: install.bin-here
 
 install.bin-N:
@@ -196,7 +196,7 @@ install.bin-L: $(LIBZSH)
 
 # uninstall binary
 uninstall.bin-here: uninstall.bin-@L@
-	rm -f $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh)
+	rm -f $(DESTDIR)$(bindir)/$(tzsh)-$(VERSION) $(DESTDIR)$(bindir)/$(tzsh)$(EXEEXT)
 .PHONY: uninstall.bin-here uninstall.bin-@L@
 
 uninstall.bin-N:
@@ -215,7 +215,7 @@ mostlyclean-here:
 .PHONY: mostlyclean-here
 
 clean-here:
-	rm -f modules.index.tmp modules.stamp zsh ansi2knr.o ansi2knr
+	rm -f modules.index.tmp modules.stamp zsh$(EXEEXT) ansi2knr.o ansi2knr
 	rm -f modules.index modules-bltin
 	rm -f libzsh-*.$(DL_EXT)
 .PHONY: clean-here
diff --git a/Src/Modules/mathfunc.c b/Src/Modules/mathfunc.c
index 770894ce8..5ba7b557a 100644
--- a/Src/Modules/mathfunc.c
+++ b/Src/Modules/mathfunc.c
@@ -45,7 +45,6 @@ MF_CEIL,
 MF_COPYSIGN,
 MF_COS,
 MF_COSH,
-MF_DREM,
 MF_ERF,
 MF_ERFC,
 MF_EXP,
@@ -70,7 +69,9 @@ MF_LOGB,
 MF_NEXTAFTER,
 MF_RINT,
 MF_SCALB,
+#ifdef HAVE_SIGNGAM
 MF_SIGNGAM,
+#endif
 MF_SIN,
 MF_SINH,
 MF_SQRT,
@@ -78,7 +79,7 @@ MF_TAN,
 MF_TANH,
 MF_Y0,
 MF_Y1,
-MF_YN,
+MF_YN
 };
 
 /*
@@ -131,7 +132,6 @@ static struct mathfunc mftab[] = {
   NUMMATHFUNC("copysign", math_func, 2, 2, MF_COPYSIGN),
   NUMMATHFUNC("cos", math_func, 1, 1, MF_COS),
   NUMMATHFUNC("cosh", math_func, 1, 1, MF_COSH),
-  NUMMATHFUNC("drem", math_func, 2, 2, MF_DREM),
   NUMMATHFUNC("erf", math_func, 1, 1, MF_ERF),
   NUMMATHFUNC("erfc", math_func, 1, 1, MF_ERFC),
   NUMMATHFUNC("exp", math_func, 1, 1, MF_EXP),
@@ -157,7 +157,9 @@ static struct mathfunc mftab[] = {
   NUMMATHFUNC("nextafter", math_func, 2, 2, MF_NEXTAFTER),
   NUMMATHFUNC("rint", math_func, 1, 1, MF_RINT),
   NUMMATHFUNC("scalb", math_func, 2, 2, MF_SCALB | TFLAG(TF_INT2)),
+#ifdef HAVE_SIGNGAM
   NUMMATHFUNC("signgam", math_func, 0, 0, MF_SIGNGAM | TFLAG(TF_NOASS)),
+#endif
   NUMMATHFUNC("sin", math_func, 1, 1, MF_SIN),
   NUMMATHFUNC("sinh", math_func, 1, 1, MF_SINH),
   NUMMATHFUNC("sqrt", math_func, 1, 1, MF_SQRT | BFLAG(BF_NONNEG)),
@@ -296,10 +298,6 @@ math_func(char *name, int argc, mnumber *argv, int id)
       retd = cosh(argd);
       break;
 
-  case MF_DREM:
-      retd = drem(argd, argd2);
-      break;
-
   case MF_ERF:
       retd = erf(argd);
       break;
@@ -398,10 +396,12 @@ math_func(char *name, int argc, mnumber *argv, int id)
       retd = scalb(argd, argi);
       break;
 
+#ifdef HAVE_SIGNGAM
   case MF_SIGNGAM:
       ret.type = MN_INTEGER;
       ret.u.l = signgam;
       break;
+#endif
 
   case MF_SIN:
       retd = sin(argd);
@@ -450,23 +450,21 @@ math_func(char *name, int argc, mnumber *argv, int id)
 
 /**/
 int
-setup_mathfunc(Module m)
+setup_(Module m)
 {
     return 0;
 }
 
 /**/
 int
-boot_mathfunc(Module m)
+boot_(Module m)
 {
     return !addmathfuncs(m->nam, mftab, sizeof(mftab)/sizeof(*mftab));
 }
 
-#ifdef MODULE
-
 /**/
 int
-cleanup_mathfunc(Module m)
+cleanup_(Module m)
 {
     deletemathfuncs(m->nam, mftab, sizeof(mftab)/sizeof(*mftab));
     return 0;
@@ -474,9 +472,7 @@ cleanup_mathfunc(Module m)
 
 /**/
 int
-finish_mathfunc(Module m)
+finish_(Module m)
 {
     return 0;
 }
-
-#endif
diff --git a/Src/Modules/zftp.c b/Src/Modules/zftp.c
index 1aa527953..33632fcda 100644
--- a/Src/Modules/zftp.c
+++ b/Src/Modules/zftp.c
@@ -50,10 +50,20 @@ union zftp_sockaddr;
 struct zftp_session;
 typedef struct zftp_session *Zftp_session;
 
+/*
+ * We need to include the zsh headers later to avoid clashes with
+ * the definitions on some systems, however we need the configuration
+ * file to decide whether we can include netinet/in_systm.h, which
+ * doesn't exist on cygwin.
+ */
+#include "../../config.h"
+
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <netdb.h>
-#include <netinet/in_systm.h>
+#ifdef HAVE_NETINET_IN_SYSTM_H
+# include <netinet/in_systm.h>
+#endif
 #include <netinet/in.h>
 #include <netinet/ip.h>
 #include <arpa/inet.h>
diff --git a/Src/pattern.c b/Src/pattern.c
index d0241dd12..1ebcfd401 100644
--- a/Src/pattern.c
+++ b/Src/pattern.c
@@ -631,7 +631,7 @@ static long
 patcompbranch(int *flagp)
 {
     long chain, latest, starter;
-    int flags;
+    int flags = 0;
 
     *flagp = P_PURESTR;
 
diff --git a/configure.in b/configure.in
index 802411335..f4de01060 100644
--- a/configure.in
+++ b/configure.in
@@ -367,6 +367,9 @@ AC_PROG_CPP                 dnl Figure out how to run C preprocessor.
 AC_PROG_GCC_TRADITIONAL     dnl Do we need -traditional flag for gcc.
 AC_C_CONST                  dnl Does compiler support `const'.
 
+AC_CYGWIN                   dnl Check for cygwin environment
+AC_EXEEXT                   dnl Check for executable extension, e.g. .exe
+
 fp_PROG_CC_STDC
 AC_MSG_CHECKING([whether to use prototypes])
 if test ."$ansi2knr" = .yes || test ."$ansi2knr" = .no; then
@@ -444,7 +447,7 @@ AC_CHECK_HEADERS(sys/time.h sys/times.h sys/select.h termcap.h termio.h \
 		 limits.h fcntl.h libc.h sys/utsname.h sys/resource.h \
 		 locale.h errno.h stdlib.h unistd.h sys/capability.h \
 		 utmp.h utmpx.h sys/types.h pwd.h grp.h poll.h sys/mman.h \
-		 linux/tasks.h)
+		 linux/tasks.h netinet/in_systm.h)
 if test $dynamic = yes; then
   AC_CHECK_HEADERS(dlfcn.h)
   AC_CHECK_HEADERS(dl.h)
@@ -838,7 +841,8 @@ AC_CHECK_FUNCS(strftime difftime gettimeofday \
 	       cap_get_proc \
 	       getrlimit \
 	       setlocale \
-	       uname)
+	       uname \
+	       signgam)
 AC_FUNC_STRCOLL
 
 if test $ac_cv_func_setpgrp = yes; then