summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-10 03:07:24 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-02-10 03:07:24 +0000
commit9594f68f5011005935de3388a7d00a6991eab774 (patch)
treee1f8e1da66c55147b3b1427edf64348c58aaef2d
parent1f9da5e23cb663cb22c820d60c0903495e916d56 (diff)
downloadruby-9594f68f5011005935de3388a7d00a6991eab774.tar.gz
ruby-9594f68f5011005935de3388a7d00a6991eab774.tar.xz
ruby-9594f68f5011005935de3388a7d00a6991eab774.zip
* bcc32/Makefile.sub (COMMON_LIBS): add libraries included in
import32.lib. * lib/mkmf.rb (create_makefile): restrict prefixing with srcdir to rule lines, add search path to implicit rules, and set Borland make special macros for search path. * win32/win32.c, win32/win32.h (read): aboid a BCC runtime bug. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7938 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog11
-rw-r--r--bcc32/Makefile.sub2
-rw-r--r--lib/mkmf.rb12
-rw-r--r--win32/win32.c17
-rw-r--r--win32/win32.h3
5 files changed, 40 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 79ccea8c8..1da25b692 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,16 @@
-Thu Feb 10 12:06:31 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+Thu Feb 10 12:07:10 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/win32.c (init_stdhandle): assign standard file handles.
+ * bcc32/Makefile.sub (COMMON_LIBS): add libraries included in
+ import32.lib.
+
+ * lib/mkmf.rb (create_makefile): restrict prefixing with srcdir to
+ rule lines, add search path to implicit rules, and set Borland make
+ special macros for search path.
+
+ * win32/win32.c, win32/win32.h (read): aboid a BCC runtime bug.
+
Wed Feb 9 16:33:05 2005 NAKAMURA Usaku <usa@ruby-lang.org>
* ext/socket/socket.c (wait_connectable): fixed wrong condition.
diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub
index 700b23fc8..230050d4d 100644
--- a/bcc32/Makefile.sub
+++ b/bcc32/Makefile.sub
@@ -369,7 +369,7 @@ s,@LINK_SO@,$$(LDSHARED) $$(DLDFLAGS) $$(LIBPATH) $$(OBJS), $$(@:/=\), nul, $$(L
s,@COMPILE_C@,$$(CC) $$(CFLAGS) $$(CPPFLAGS) -c $$(<:/=\),;t t
s,@COMPILE_CXX@,$$(CXX) $$(CXXFLAGS) $$(CPPFLAGS) -P -c $$(<:/=\),;t t
s,@COMPILE_RULES@,{$$(srcdir)}.%s{}.%s: .%s.%s:,;t t
-s,@COMMON_LIBS@,m,;t t
+s,@COMMON_LIBS@,m advapi32 avicap32 avifil32 cap comctl32 comdlg32 dlcapi gdi32 glu32 imagehlp imm32 inetmib1 kernel32 loadperf lsapi32 lz32 mapi32 mgmtapi mpr msacm32 msvfw32 nddeapi netapi32 ole32 oleaut32 oledlg olepro32 opengl32 pdh pkpd32 rasapi32 rasdlg rassapi rpcrt4 setupapi shell32 shfolder snmpapi sporder tapi32 url user32 vdmdbg version win32spl winmm wintrust wsock32,;t t
s,@COMMON_MACROS@,WIN32_LEAN_AND_MEAN;t t
s,@COMMON_HEADERS@,winsock2.h windows.h,;t t
s,@TRY_LINK@,$$(CC) -oconftest $$(INCFLAGS) -I$$(hdrdir) $$(CPPFLAGS) $$(CFLAGS) $$(LIBPATH) $$(LDFLAGS) $$(src) $$(LOCAL_LIBS) $$(LIBS),;t t
diff --git a/lib/mkmf.rb b/lib/mkmf.rb
index c5cfad30b..b2ae7e501 100644
--- a/lib/mkmf.rb
+++ b/lib/mkmf.rb
@@ -1033,6 +1033,7 @@ site-install-rb: install-rb
return unless target
+ mfile.puts SRC_EXT.collect {|ext| ".path.#{ext} = $(VPATH)"} if $nmake == ?b
mfile.print ".SUFFIXES: .#{SRC_EXT.join(' .')} .#{$OBJEXT}\n"
mfile.print "\n"
@@ -1068,13 +1069,22 @@ site-install-rb: install-rb
end
depend = File.join(srcdir, "depend")
+ cont = rule = false
if File.exist?(depend)
open(depend, "r") do |dfile|
mfile.printf "###\n"
while line = dfile.gets()
line.gsub!(/\.o\b/, ".#{$OBJEXT}")
- line.gsub!(/(\s)([^\s\/]+\.[ch])/, '\1{$(srcdir)}\2') if $nmake
line.gsub!(/\$\(hdrdir\)\/config.h/, $config_h) if $config_h
+ if $nmake
+ rule = /^[$\w][^#]*:/ =~ line unless cont
+ cont = /(?:^|[^\\])(?:\\\\)*\\$/ =~ line
+ if rule
+ line.gsub!(%r"(?<=\s)(?!\.)(?=[^\s\/]+\.(?:#{(SRC_EXT + ['h']).join('|')})(?\s|\z))"o, '{.;$(VPATH)}')
+ else
+ line.sub!(/^(\.\w+)(\.\w+)(?=\s*:)/, '{.;$(VPATH)}\1{}\2')
+ end
+ end
mfile.print line
end
end
diff --git a/win32/win32.c b/win32/win32.c
index 92d00166b..166d58e79 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -3244,6 +3244,23 @@ catch_interrupt(void)
CHECK_INTS;
}
+#if defined __BORLANDC__ || defined _WIN32_WCE
+#undef read
+int
+read(int fd, void *buf, size_t size)
+{
+ int trap_immediate = rb_trap_immediate;
+ int ret = _read(fd, buf, size);
+ if ((ret < 0) && (errno == EPIPE)) {
+ errno = 0;
+ ret = 0;
+ }
+ rb_trap_immediate = trap_immediate;
+ catch_interrupt();
+ return ret;
+}
+#endif
+
#undef fgetc
int
rb_w32_getc(FILE* stream)
diff --git a/win32/win32.h b/win32/win32.h
index 916e8ce27..58538b26e 100644
--- a/win32/win32.h
+++ b/win32/win32.h
@@ -105,7 +105,6 @@ extern "C++" {
#define eof() _eof()
#define filelength(h) _filelength(h)
#define mktemp(t) _mktemp(t)
-#define read(h, b, l) _read(h, b, l)
#define tell(h) _tell(h)
#define unlink(p) _unlink(p)
#define write(h, b, l) _write(h, b, l)
@@ -205,7 +204,7 @@ extern int rb_w32_rmdir(const char *);
#ifdef __BORLANDC__
extern int rb_w32_fstat(int, struct stat *);
extern FILE *rb_w32_fopen(const char *, const char *);
-extern FILE *rb_w32_fdopen(int, char *);
+extern FILE *rb_w32_fdopen(int, const char *);
extern FILE *rb_w32_fsopen(const char *, const char *, int);
#endif