And here's a backport for 1.10 branch.
2007-04-01 Robert Millan <[EMAIL PROTECTED]>
* Makefile.in: Add @MINGW32_WS2@ to LIBS.
* configure.in:
- Detect mingw32 and set appropiate variables.
* src/Makefile.in: Adjust OBJ and LIBS for mingw32.
* src/main.c: Check for each signal before using it (backport from
trunk).
--
Robert Millan
My spam trap is [EMAIL PROTECTED] Note: this address is only intended
for spam harvesters. Writing to it will get you added to my black list.
2007-04-01 Robert Millan <[EMAIL PROTECTED]>
* Makefile.in: Add @MINGW32_WS2@ to LIBS.
* configure.in:
- Detect mingw32 and set appropiate variables.
- Use AC_CHECK_FUNCS for all functions, including ones that can be
assumed on Unix-like systems.
* src/Makefile.in: Adjust OBJ and LIBS for mingw32.
* src/main.c: Check for each signal before using it (backport from
trunk).
Index: Makefile.in
===================================================================
--- Makefile.in (revision 2207)
+++ Makefile.in (working copy)
@@ -57,7 +57,7 @@
CFLAGS = @CFLAGS@
CPPFLAGS = @CPPFLAGS@
DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\" -DLOCALEDIR=\"$(localedir)\"
-LIBS = @LIBS@ @LIBSSL@
+LIBS = @LIBS@ @LIBSSL@ @MINGW32_WS2@
LDFLAGS = @LDFLAGS@
#
Index: configure.in
===================================================================
--- configure.in (revision 2207)
+++ configure.in (working copy)
@@ -141,9 +141,17 @@
dnl
case "$host_os" in
*win32) exeext='.exe';;
+ mingw32*)
+ exeext='.exe'
+ CFLAGS="$CFLAGS -DWINDOWS"
+ WIN32_OBJ="mswindows.o"
+ MINGW32_WS2="-lws2_32"
+ ;;
*) exeext='';;
esac
AC_SUBST(exeext)
+AC_SUBST(WIN32_OBJ)
+AC_SUBST(MINGW32_WS2)
dnl
dnl Checks for basic compiler characteristics.
Index: src/Makefile.in
===================================================================
--- src/Makefile.in (revision 2207)
+++ src/Makefile.in (working copy)
@@ -53,7 +53,7 @@
DEFS = @DEFS@ -DSYSTEM_WGETRC=\"$(sysconfdir)/wgetrc\" -DLOCALEDIR=\"$(localedir)\"
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
-LIBS = @LIBS@ @LIBSSL@
+LIBS = @LIBS@ @LIBSSL@ @MINGW32_WS2@
exeext = @exeext@
INCLUDES = -I. -I$(srcdir)
@@ -72,13 +72,14 @@
NTLM_OBJ = @NTLM_OBJ@
SSL_OBJ = @SSL_OBJ@
GETOPT_OBJ = @GETOPT_OBJ@
+WIN32_OBJ = @WIN32_OBJ@
OBJ = $(ALLOCA) cmpt$o connect$o convert$o cookies$o \
ftp$o ftp-basic$o ftp-ls$o $(OPIE_OBJ) $(GETOPT_OBJ) hash$o \
host$o html-parse$o html-url$o http$o $(NTLM_OBJ) init$o \
log$o main$o $(MD5_OBJ) netrc$o progress$o ptimer$o recur$o \
res$o retr$o safe-ctype$o snprintf$o $(SSL_OBJ) url$o \
- utils$o version$o xmalloc$o
+ utils$o version$o xmalloc$o $(WIN32_OBJ)
.SUFFIXES:
.SUFFIXES: .c .o ._c ._o
Index: src/main.c
===================================================================
--- src/main.c (revision 2207)
+++ src/main.c (working copy)
@@ -79,7 +79,9 @@
extern struct cookie_jar *wget_cookie_jar;
+#if defined(SIGHUP) || defined(SIGUSR1)
static RETSIGTYPE redirect_output_signal PARAMS ((int));
+#endif
const char *exec_name;
@@ -916,14 +918,20 @@
/* Setup the signal handler to redirect output when hangup is
received. */
#ifdef HAVE_SIGNAL
+#ifdef SIGHUP
if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
signal(SIGHUP, redirect_output_signal);
+#endif
+#ifdef SIGUSR1
/* ...and do the same for SIGUSR1. */
signal (SIGUSR1, redirect_output_signal);
+#endif
+#ifdef SIGPIPE
/* Writing to a closed socket normally signals SIGPIPE, and the
process exits. What we want is to ignore SIGPIPE and just check
for the return value of write(). */
signal (SIGPIPE, SIG_IGN);
+#endif
#ifdef SIGWINCH
signal (SIGWINCH, progress_handle_sigwinch);
#endif
@@ -1000,7 +1008,16 @@
return 1;
}
-#ifdef HAVE_SIGNAL
+#if defined(SIGHUP) || defined(SIGUSR1)
+
+/* So the signal_name check doesn't blow when only one is available. */
+#ifndef SIGHUP
+# define SIGHUP -1
+#endif
+#ifndef SIGUSR1
+# define SIGUSR1 -1
+#endif
+
/* Hangup signal handler. When wget receives SIGHUP or SIGUSR1, it
will proceed operation as usual, trying to write into a log file.
If that is impossible, the output will be turned off.