From 752fa4fc538dba1f327b2575362a2e3aa324db89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?U-WIN-U2045GN0RNQ=5CV=C3=ADtor=20Santos=20Costa?= <VĂtor Santos Costa@WIN-U2045GN0RNQ.(none)> Date: Wed, 9 Mar 2011 00:02:21 +0000 Subject: [PATCH] support windows compilation, upgrade to current uxnt. --- Makefile.in | 42 ++++++++++++++--------------- packages/CLPBN/clpbn/bp/Makefile.in | 2 +- packages/PLStream/pl-incl.h | 18 +++---------- packages/PLStream/windows/uxnt.c | 39 ++++++++++++++++----------- packages/PLStream/windows/uxnt.h | 4 +-- packages/tai/Makefile.in | 2 +- pl/boot.yap | 1 - pl/control.yap | 0 8 files changed, 53 insertions(+), 55 deletions(-) mode change 100644 => 100755 packages/CLPBN/clpbn/bp/Makefile.in mode change 100644 => 100755 packages/PLStream/windows/uxnt.h mode change 100644 => 100755 pl/control.yap diff --git a/Makefile.in b/Makefile.in index f36ebaa98..d7dfd8125 100755 --- a/Makefile.in +++ b/Makefile.in @@ -554,70 +554,70 @@ pl-ntmain.o: $(srcdir)/console/LGPL/pl-ntmain.c config.h $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/console/LGPL/pl-ntmain.c -o $@ pl-buffer.o: $(srcdir)/packages/PLStream/pl-buffer.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-buffer.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-buffer.c -o $@ pl-codelist.o: $(srcdir)/packages/PLStream/pl-codelist.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-codelist.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-codelist.c -o $@ pl-ctype.o: $(srcdir)/packages/PLStream/pl-ctype.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-ctype.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-ctype.c -o $@ pl-dtoa.o: $(srcdir)/packages/PLStream/pl-dtoa.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-dtoa.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-dtoa.c -o $@ pl-error.o: $(srcdir)/packages/PLStream/pl-error.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-error.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-error.c -o $@ pl-file.o: $(srcdir)/packages/PLStream/pl-file.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-file.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-file.c -o $@ pl-files.o: $(srcdir)/packages/PLStream/pl-files.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-files.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-files.c -o $@ pl-fmt.o: $(srcdir)/packages/PLStream/pl-fmt.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-fmt.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-fmt.c -o $@ pl-glob.o: $(srcdir)/packages/PLStream/pl-glob.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-glob.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-glob.c -o $@ pl-option.o: $(srcdir)/packages/PLStream/pl-option.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-option.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-option.c -o $@ pl-os.o: $(srcdir)/packages/PLStream/pl-os.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-os.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-os.c -o $@ pl-privitf.o: $(srcdir)/packages/PLStream/pl-privitf.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-privitf.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-privitf.c -o $@ pl-rl.o: $(srcdir)/packages/PLStream/pl-rl.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-rl.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-rl.c -o $@ pl-read.o: $(srcdir)/packages/PLStream/pl-read.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-read.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-read.c -o $@ pl-stream.o: $(srcdir)/packages/PLStream/pl-stream.c $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-stream.c -o $@ pl-string.o: $(srcdir)/packages/PLStream/pl-string.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-string.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-string.c -o $@ pl-table.o: $(srcdir)/packages/PLStream/pl-table.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-table.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-table.c -o $@ pl-text.o: $(srcdir)/packages/PLStream/pl-text.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-text.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-text.c -o $@ pl-utf8.o: $(srcdir)/packages/PLStream/pl-utf8.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-utf8.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-utf8.c -o $@ pl-write.o: $(srcdir)/packages/PLStream/pl-write.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-write.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-write.c -o $@ pl-yap.o: $(srcdir)/packages/PLStream/pl-yap.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/pl-yap.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/pl-yap.c -o $@ uxnt.o: $(srcdir)/packages/PLStream/windows/uxnt.c - $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream $(srcdir)/packages/PLStream/windows/uxnt.c -o $@ + $(CC) -c $(CFLAGS) -I$(srcdir)/include -I$(srcdir) -I$(srcdir)/packages/PLStream -I$(srcdir)/packages/PLStream/windows $(srcdir)/packages/PLStream/windows/uxnt.c -o $@ # default rule %.o : $(srcdir)/C/%.c config.h diff --git a/packages/CLPBN/clpbn/bp/Makefile.in b/packages/CLPBN/clpbn/bp/Makefile.in old mode 100644 new mode 100755 index cd96942bb..3907e5509 --- a/packages/CLPBN/clpbn/bp/Makefile.in +++ b/packages/CLPBN/clpbn/bp/Makefile.in @@ -92,7 +92,7 @@ xmlParser.o : $(srcdir)/xmlParser/xmlParser.cpp $(CXX) -c $(CXXFLAGS) $< -o $@ @DO_SECOND_LD@horus.@SO@: $(OBJS) -@DO_SECOND_LD@ @SHLIB_CXX_LD@ -o horus.@SO@ $(OBJS) +@DO_SECOND_LD@ @SHLIB_CXX_LD@ -o horus.@SO@ $(OBJS) @EXTRA_LIBS_FOR_SWIDLLS@ biftest: $(BIF_OBJS) $(CXX) -o biftest $(BIF_OBJS) diff --git a/packages/PLStream/pl-incl.h b/packages/PLStream/pl-incl.h index ba62a5958..b3b460e29 100755 --- a/packages/PLStream/pl-incl.h +++ b/packages/PLStream/pl-incl.h @@ -16,6 +16,10 @@ #endif #include "Yap.h" +#ifdef __WINDOWS__ +#include <windows.h> +#include <uxnt.h> +#endif #include "YapHeap.h" /* try not to pollute the SWI space */ #ifdef P @@ -138,9 +142,6 @@ typedef enum #if HAVE_SYS_PARAM_H #include <sys/param.h> //MAXPATHLEN #endif -#ifdef __WINDOWS__ -#include <windows.h> -#endif #if __YAP_PROLOG__ #include "pl-yap.h" #if _WIN32 @@ -583,17 +584,6 @@ typedef double real; /* uxnt package interface */ #if defined(__YAP_PROLOG__) && defined(__MINGW32__) -#define O_XOS 1 - -#define _XOS_ISFILE 0x01 -#define _XOS_ISDIR 0x02 - -#define _XOS_FILE 0x0001 /* is a file */ -#define _XOS_DIR 0x0002 /* is a directory */ - -#define XOS_DOWNCASE 0x01 /* _xos_canonical_filename() */ - -#define statfunc stat #ifndef __WINDOWS__ #define __WINDOWS__ 1 diff --git a/packages/PLStream/windows/uxnt.c b/packages/PLStream/windows/uxnt.c index e2f0eae4b..27f878d6a 100755 --- a/packages/PLStream/windows/uxnt.c +++ b/packages/PLStream/windows/uxnt.c @@ -26,6 +26,9 @@ #define _UNICODE 1 #define _UXNT_KERNEL 1 +#include "uxnt.h" /* my prototypes */ +#include "utf8.c" + #include <windows.h> #include <tchar.h> #include <wchar.h> @@ -44,9 +47,6 @@ #endif #include <errno.h> -#include "uxnt.h" /* my prototypes */ -#include "utf8.c" - #ifndef TRUE #define TRUE 1 #define FALSE 0 @@ -293,7 +293,7 @@ _xos_os_filename(const char *cname, char *osname, size_t len) if ( !_xos_os_filenameW(cname, buf, PATH_MAX) ) return NULL; - + return wcstoutf8(osname, buf, len); } @@ -319,7 +319,7 @@ _xos_canonical_filenameW(const wchar_t *spec, for(; *s; s++) { int c = *s; - + if ( c == '\\' ) { c = '/'; } else if ( (flags&XOS_DOWNCASE) ) @@ -344,7 +344,7 @@ _xos_canonical_filename(const char *spec, char *xname, size_t len, int flags) if ( !utf8towcs(buf, spec, PATH_MAX) ) return NULL; - + return _xos_canonical_filenameW(buf, xname, len, flags); } @@ -521,7 +521,7 @@ _xos_limited_os_filename(const char *spec, char *limited) while(*i) { int wc; - + i = utf8_get_char(i, &wc); wc = towlower((wchar_t)wc); o = utf8_put_char(o, wc); @@ -541,7 +541,7 @@ _xos_open(const char *path, int access, ...) { va_list args; TCHAR buf[PATH_MAX]; int mode; - + va_start(args, access); mode = va_arg(args, int); va_end(args); @@ -647,18 +647,22 @@ _xos_rename(const char *old, const char *new) !_xos_os_filenameW(new, osnew, PATH_MAX) ) return -1; - return _wrename(osold, osnew); + if ( MoveFileEx(osold, osnew, MOVEFILE_REPLACE_EXISTING) ) + return 0; + + errno = EPERM; + return -1; /* TBD: map error codes */ } int -_xos_stat(const char *path, struct _stat *sbuf) +_xos_stat(const char *path, struct _stati64 *sbuf) { TCHAR buf[PATH_MAX]; if ( !_xos_os_filenameW(path, buf, PATH_MAX) ) return -1; - - return _wstat(buf, sbuf); + + return _wstati64(buf, sbuf); } @@ -699,11 +703,14 @@ opendir(const char *path) DIR *dp = malloc(sizeof(DIR)); if ( !_xos_os_filenameW(path, buf, PATH_MAX-4) ) + { free(dp); return NULL; + } _tcscat(buf, _T("\\*.*")); - + if ( !(dp->data = malloc(sizeof(WIN32_FIND_DATA))) ) - { errno = ENOMEM; + { free(dp); + errno = ENOMEM; return NULL; } dp->first = 1; @@ -712,6 +719,7 @@ opendir(const char *path) if ( dp->handle == INVALID_HANDLE_VALUE ) { if ( _waccess(buf, 04) ) /* does not exist */ { free(dp->data); + free(dp); return NULL; } } @@ -825,6 +833,7 @@ _xos_getcwd(char *buf, size_t len) return NULL; } + /******************************* * ENVIRONMENT * *******************************/ @@ -853,7 +862,7 @@ _xos_getenv(const char *name, char *buf, size_t buflen) rc = strlen(buf); else rc = wcutf8len(valp); - + if ( valp != val ) free(valp); diff --git a/packages/PLStream/windows/uxnt.h b/packages/PLStream/windows/uxnt.h old mode 100644 new mode 100755 index 09ae6764c..5c11227fd --- a/packages/PLStream/windows/uxnt.h +++ b/packages/PLStream/windows/uxnt.h @@ -33,6 +33,7 @@ #endif #include <sys/types.h> +#include <sys/stat.h> #include <stdio.h> #include <io.h> #include <direct.h> @@ -45,7 +46,6 @@ typedef intptr_t ssize_t; /* signed version of size_t */ #endif #ifndef _UXNT_KERNEL -#include <sys/stat.h> #undef remove #undef rename @@ -133,7 +133,7 @@ _export int _xos_access(const char *path, int mode); _export int _xos_chmod(const char *path, int mode); _export int _xos_remove(const char *path); _export int _xos_rename(const char *old, const char *newname); -_export int _xos_stat(const char *path, struct _stat *sbuf); +_export int _xos_stat(const char *path, struct _stati64 *sbuf); _export int _xos_chdir(const char *path); _export int _xos_mkdir(const char *path, int mode); _export int _xos_rmdir(const char *path); diff --git a/packages/tai/Makefile.in b/packages/tai/Makefile.in index b7dc4c8ce..d4164eee3 100755 --- a/packages/tai/Makefile.in +++ b/packages/tai/Makefile.in @@ -20,7 +20,7 @@ YAPLIBDIR=@libdir@/Yap # DEFS=@DEFS@ -D_YAP_NOT_INSTALLED_=1 CC=@CC@ -CFLAGS= @SHLIB_CFLAGS@ $(YAP_EXTRAS) $(DEFS) -I$(srcdir) -I../.. -I$(srcdir)/../../include -I$(srcdir)/../PLStream -I$(srcdir)/../../H +CFLAGS= @SHLIB_CFLAGS@ $(YAP_EXTRAS) $(DEFS) -I$(srcdir) -I../.. -I$(srcdir)/../../include -I$(srcdir)/../PLStream -I$(srcdir)/../PLStream/windows -I$(srcdir)/../../H # # # You shouldn't need to change what follows. diff --git a/pl/boot.yap b/pl/boot.yap index 345bcfb23..5e603742a 100755 --- a/pl/boot.yap +++ b/pl/boot.yap @@ -238,7 +238,6 @@ true :- true. % then we can execute the programs. '$startup_goals' :- recorded('$startup_goal',G,_), -writeln(G), '$current_module'(Module), '$system_catch'('$query'(once(G), []),Module,Error,user:'$Error'(Error)), fail. diff --git a/pl/control.yap b/pl/control.yap old mode 100644 new mode 100755