From c0a444d5e6ad90c492168a2c0d8c173b77c8756c Mon Sep 17 00:00:00 2001 From: Micah Cowan Date: Sat, 6 Oct 2007 12:44:17 -0700 Subject: [PATCH] Applying Gisle's latest MS-DOS patches. --- msdos/ChangeLog | 11 +++++++++ msdos/Makefile.DJ | 35 ++++++++++++++++------------ msdos/Makefile.WC | 49 +++++++++++++++++++++++++++++++++++++++ msdos/config.h | 59 +++++++++++++++-------------------------------- src/ChangeLog | 8 +++++++ src/ftp.c | 4 ++++ src/url.c | 2 +- src/utils.c | 3 +++ 8 files changed, 114 insertions(+), 57 deletions(-) create mode 100644 msdos/Makefile.WC diff --git a/msdos/ChangeLog b/msdos/ChangeLog index dcf81278..63539b74 100644 --- a/msdos/ChangeLog +++ b/msdos/ChangeLog @@ -1,3 +1,14 @@ +2007-10-02 Gisle Vanem + + * config.h: Removed unused defines, added needed 'HAVE_*' defines. + + * Makefile.DJ: rewritten to be used from './src' directory. + Added '-DOPENSSL_NO_KRB5' for OpenSSL build. Target is + now wget.exe. + + * Makefile.WC: Added for building with OpenWatcom targeting + 32-bit DOS (DOS32A extender). + 2007-09-24 Gisle Vanem * Makefile.DJ, config.h: Added to support building on MS-DOS via diff --git a/msdos/Makefile.DJ b/msdos/Makefile.DJ index bed35cd1..72e1cedf 100644 --- a/msdos/Makefile.DJ +++ b/msdos/Makefile.DJ @@ -1,28 +1,33 @@ # # GNU Makefile for wget / djgpp / MSDOS. -# By Gisle Vanem . +# By Gisle Vanem 2007. # -.SUFFIXES: .exe .map +# `cd' to `./src' and issue the command: +# make -f ../msdos/Makefile.dj +# +.SUFFIXES: .exe USE_OPENSSL = 0 USE_IPV6 = 1 +# +# Change to suite. +# OPENSSL_ROOT = e:/net/OpenSSL.099 ZLIB_ROOT = e:/djgpp/contrib/zlib -VPATH = ../src OBJ_DIR = djgpp.obj CC = gcc -CFLAGS = -O2 -g -Wall -Wcast-align -I. -I../src -I/dev/env/WATT_ROOT/inc \ +CFLAGS = -O2 -g -Wall -Wcast-align -I. -I../msdos -I/dev/env/WATT_ROOT/inc \ -DHAVE_CONFIG_H -DENABLE_DEBUG # LDFLAGS = -s ifeq ($(USE_OPENSSL),1) - CFLAGS += -DHAVE_OPENSSL -DHAVE_SSL -I$(OPENSSL_ROOT) + CFLAGS += -DHAVE_OPENSSL -DHAVE_SSL -DOPENSSL_NO_KRB5 -I$(OPENSSL_ROOT) EX_LIBS += $(OPENSSL_ROOT)/lib/libssl.a $(OPENSSL_ROOT)/lib/libcrypt.a \ $(ZLIB_ROOT)/libz.a - SOURCES = ../src/openssl.c ../src/http-ntlm.c + SOURCES += openssl.c http-ntlm.c endif ifeq ($(USE_IPV6),1) @@ -31,28 +36,28 @@ endif EX_LIBS += /dev/env/WATT_ROOT/lib/libwatt.a -SOURCES += $(addprefix ../src/, cmpt.c connect.c cookies.c ftp.c ftp-basic.c \ - ftp-ls.c ftp-opie.c getopt.c hash.c host.c html-parse.c html-url.c \ - http.c init.c log.c main.c gen-md5.c gnu-md5.c netrc.c progress.c \ - recur.c res.c retr.c safe-ctype.c url.c utils.c version.c convert.c \ - xmalloc.c ptimer.c spider.c) +SOURCES += cmpt.c connect.c cookies.c ftp.c ftp-basic.c ftp-ls.c \ + ftp-opie.c getopt.c hash.c host.c html-parse.c html-url.c \ + http.c init.c log.c main.c gen-md5.c gnu-md5.c netrc.c \ + progress.c recur.c res.c retr.c safe-ctype.c url.c utils.c \ + version.c convert.c xmalloc.c ptimer.c spider.c -OBJECTS = $(addprefix $(OBJ_DIR)/, $(notdir $(SOURCES:.c=.o))) +OBJECTS = $(addprefix $(OBJ_DIR)/, $(SOURCES:.c=.o)) -all: $(OBJ_DIR) ../wget-dos.exe +all: $(OBJ_DIR) wget.exe @echo 'Welcome to Wget' $(OBJ_DIR): mkdir $(OBJ_DIR) -../wget-dos.exe: $(OBJECTS) +wget.exe: $(OBJECTS) $(CC) $(LDFLAGS) -o $@ $^ $(EX_LIBS) clean: rm -f $(OBJECTS) $(MAPFILE) vclean realclean: clean - rm -f ../wget-dos.exe depend.dj + rm -f wget.exe depend.dj - rmdir $(OBJ_DIR) $(OBJ_DIR)/%.o: %.c diff --git a/msdos/Makefile.WC b/msdos/Makefile.WC new file mode 100644 index 00000000..de01b8fd --- /dev/null +++ b/msdos/Makefile.WC @@ -0,0 +1,49 @@ +# +# Makefile for Wget / DOS32A / OpenWatcom +# by G. Vanem 2007 +# + +COMPILE = *wcc386 -mf -3r -w6 -d2 -zq -zm -of -I. -I$(%watt_root)\inc & + -I..\msdos -fr=nul -bt=dos -s -dHAVE_CONFIG_H -dENABLE_DEBUG & + -dSIZEOF_INT=4 + +LINK = *wlink option quiet, map, verbose, eliminate, caseexact, stack=100k & + debug all system dos32a + +OBJ_DIR = Watcom.obj + +OBJECTS = $(OBJ_DIR)\cmpt.obj $(OBJ_DIR)\connect.obj & + $(OBJ_DIR)\convert.obj $(OBJ_DIR)\cookies.obj & + $(OBJ_DIR)\ftp-basic.obj $(OBJ_DIR)\ftp-ls.obj & + $(OBJ_DIR)\ftp-opie.obj $(OBJ_DIR)\ftp.obj & + $(OBJ_DIR)\gen-md5.obj $(OBJ_DIR)\getopt.obj & + $(OBJ_DIR)\gnu-md5.obj $(OBJ_DIR)\hash.obj & + $(OBJ_DIR)\host.obj $(OBJ_DIR)\html-parse.obj & + $(OBJ_DIR)\html-url.obj $(OBJ_DIR)\http.obj & + $(OBJ_DIR)\init.obj $(OBJ_DIR)\log.obj & + $(OBJ_DIR)\main.obj $(OBJ_DIR)\netrc.obj & + $(OBJ_DIR)\progress.obj $(OBJ_DIR)\ptimer.obj & + $(OBJ_DIR)\recur.obj $(OBJ_DIR)\res.obj & + $(OBJ_DIR)\retr.obj $(OBJ_DIR)\safe-ctype.obj & + $(OBJ_DIR)\spider.obj $(OBJ_DIR)\url.obj & + $(OBJ_DIR)\utils.obj $(OBJ_DIR)\version.obj & + $(OBJ_DIR)\xmalloc.obj + +all: $(OBJ_DIR) wget.exe .SYMBOLIC + @echo 'Welcome to Wget / Watcom' + +$(OBJ_DIR): + - mkdir $^@ + +.ERASE +.c{$(OBJ_DIR)}.obj: + *$(COMPILE) $[@ -fo=$@ + +wget.exe: $(OBJECTS) + $(LINK) name $@ file { $(OBJECTS) } library $(%watt_root)\lib\wattcpwf.lib + + +clean: .SYMBOLIC + - rm $(OBJ_DIR)\*.obj wget.exe wget.map + - rmdir $(OBJ_DIR) + diff --git a/msdos/config.h b/msdos/config.h index f43ab4ec..276f66c1 100644 --- a/msdos/config.h +++ b/msdos/config.h @@ -46,39 +46,29 @@ #endif #if defined(__HIGHC__) - #define inline #define HAVE_UNISTD_H 1 #define HAVE_UTIME_H 1 #endif -#if defined(__WATCOMC__) || defined(__BORLANDC__) +#if defined(__WATCOMC__) || defined(__BORLANDC__) || defined(__HIGHC__) #define inline #endif -#ifdef HAVE_SSL - #define OPENSSL_NO_KRB5 -#endif - -#define STDC_HEADERS 1 -#define RETSIGTYPE void - #define USE_OPIE 1 #define USE_DIGEST 1 #define DEBUG #ifdef __DJGPP__ - #define HAVE_STRUCT_UTIMBUF 1 - #define HAVE_UNAME 1 - #define HAVE_UTIME_H 1 + #define HAVE__BOOL 1 #define HAVE_STRCASECMP 1 #define HAVE_STRNCASECMP 1 - #define HAVE_SYS_SELECT_H 1 - #define HAVE_USLEEP 1 - #define HAVE_SIGNAL 1 - #define HAVE_BASENAME 1 #define HAVE_SIGSETJMP 1 #define HAVE_SIGBLOCK 1 - #define HAVE__BOOL 1 + #define HAVE_STRUCT_UTIMBUF 1 + #define HAVE_SYS_SELECT_H 1 + #define HAVE_USLEEP 1 + #define HAVE_UTIME_H 1 + #define HAVE_INT64_T 1 #if (DJGPP_MINOR >= 4) #include @@ -94,32 +84,18 @@ #endif #ifdef OPENWATCOM_15 - #define HAVE_STRCASECMP - #define HAVE_STRNCASECMP + #define HAVE_INT64_T 1 + #define HAVE_STRCASECMP 1 + #define HAVE_STRNCASECMP 1 + #define HAVE_UTIME_H 1 #endif -#define HAVE_GETHOSTBYNAME 1 -#define HAVE_GETHOSTNAME 1 -#define HAVE_SELECT 1 +#define HAVE_PROCESS_H 1 #define HAVE_STRDUP 1 -#define HAVE_STRERROR 1 -#define HAVE_STRSTR 1 -#define HAVE_MKTIME 1 -#define HAVE_STDARG_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 -#define HAVE_SIGNAL_H 1 -#define HAVE_GETTIMEOFDAY 1 -#define HAVE_MD5 1 #define HAVE_BUILTIN_MD5 1 #define HAVE_ISATTY 1 -#define HAVE_MEMMOVE 1 - -#define OS_TYPE "DOS" -#define CTRLBREAK_BACKGND 1 -#define PROTOTYPES 1 - -#define WGET_USE_STDARG #define lookup_host wget_lookuphost #define select select_s @@ -129,15 +105,16 @@ #define sock_write wget_sock_write #define sock_close wget_sock_close -#if defined(__DJGPP__) - #define MKDIR(p,a) mkdir(p,a) -#else +#if !defined(__DJGPP__) + #include + #define mkdir(p,a) (mkdir)(p) #define strcasecmp stricmp - #define MKDIR(p,a) mkdir(p) #endif #if !defined(MSDOS) -#define MSDOS + #define MSDOS #endif +#define OS_TYPE "DOS" + #endif /* CONFIG_DOS_H */ diff --git a/src/ChangeLog b/src/ChangeLog index e6e4d480..6864760e 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2007-10-02 Gisle Vanem + + * ftp.c: Use "_listing" for MSDOS (".listing" is illegal). + + * url.c: Update comment for 'filechr_not_windows'. + + * utils.c: Include for 'getpid()' on Watcom. + 2007-10-04 Micah Cowan * http.c (http_loop): We've got_name if content_disposition diff --git a/src/ftp.c b/src/ftp.c index d8a18445..e0d07773 100644 --- a/src/ftp.c +++ b/src/ftp.c @@ -51,7 +51,11 @@ so, delete this exception statement from your version. */ #include "recur.h" /* for INFINITE_RECURSION */ /* File where the "ls -al" listing will be saved. */ +#ifdef MSDOS +#define LIST_FILENAME "_listing" +#else #define LIST_FILENAME ".listing" +#endif typedef struct { diff --git a/src/url.c b/src/url.c index 6235c521..72bb7b90 100644 --- a/src/url.c +++ b/src/url.c @@ -1221,7 +1221,7 @@ append_char (char ch, struct growable *dest) enum { filechr_not_unix = 1, /* unusable on Unix, / and \0 */ - filechr_not_windows = 2, /* unusable on MSDOS/Windows, one of \|/<>?:*" */ + filechr_not_windows = 2, /* unusable on Windows, one of \|/<>?:*" */ filechr_control = 4 /* a control character, e.g. 0-31 */ }; diff --git a/src/utils.c b/src/utils.c index 94b4e3a3..63545a32 100644 --- a/src/utils.c +++ b/src/utils.c @@ -42,6 +42,9 @@ so, delete this exception statement from your version. */ #ifdef HAVE_MMAP # include #endif +#ifdef HAVE_PROCESS_H +# include /* getpid() */ +#endif #ifdef HAVE_UTIME_H # include #endif