Skip to content

Instantly share code, notes, and snippets.

@shirosaki
Created December 26, 2011 15:09
Show Gist options
  • Select an option

  • Save shirosaki/1521349 to your computer and use it in GitHub Desktop.

Select an option

Save shirosaki/1521349 to your computer and use it in GitHub Desktop.
diff --git a/Makefile.in b/Makefile.in
index a3040b6..83d525b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -12,6 +12,7 @@ NULL = /dev/null
srcdir = @srcdir@
top_srcdir = $(srcdir)
hdrdir = $(srcdir)/include
+PLATFORM = @PLATFORM@
CC = @CC@
CPP = @CPP@
diff --git a/common.mk b/common.mk
index 1bca44e..b714d48 100644
--- a/common.mk
+++ b/common.mk
@@ -571,7 +571,11 @@ dl_os2.$(OBJEXT): {$(VPATH)}dl_os2.c
ia64.$(OBJEXT): {$(VPATH)}ia64.s
$(CC) $(CFLAGS) -c $<
-win32.$(OBJEXT): {$(VPATH)}win32.c $(RUBY_H_INCLUDES)
+make-platform-dir:
+ $(Q) $(MAKEDIRS) $(PLATFORM)
+
+win32/win32.$(OBJEXT): {$(VPATH)}win32/win32.c $(RUBY_H_INCLUDES) make-platform-dir
+$(PLATFORM)/file.$(OBJEXT): {$(VPATH)}$(PLATFORM)/file.c $(RUBY_H_INCLUDES) make-platform-dir
###
diff --git a/configure.in b/configure.in
index 7a6dcb6..9ac93ec 100644
--- a/configure.in
+++ b/configure.in
@@ -2581,7 +2581,8 @@ AS_CASE(["$target_os"],
fi
EXPORT_PREFIX=' '
DLDFLAGS="${DLDFLAGS}"' $(DEFFILE)'
- AC_LIBOBJ([win32])
+ AC_LIBOBJ([win32/win32])
+ PLATFORM="win32"
COMMON_LIBS=m
# COMMON_MACROS="WIN32_LEAN_AND_MEAN="
COMMON_HEADERS="winsock2.h windows.h"
@@ -2605,6 +2606,17 @@ AS_CASE(["$target_os"],
])])
MINIOBJS="$MINIDLNOBJ"
+: ${PLATFORM:=posix}
+AC_SUBST(PLATFORM)
+
+AS_CASE(["$PLATFORM"],
+[win32], [
+ AC_LIBOBJ([win32/file])
+ ],
+[
+ AC_LIBOBJ([posix/file])
+])
+
AS_CASE(["$THREAD_MODEL"],
[pthread], [AC_CHECK_HEADERS(pthread.h)],
[win32], [],
diff --git a/win32/file.c b/win32/file.c
new file mode 100644
index 0000000..e69de29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment