Index: raster/Makefile
===================================================================
--- raster/Makefile	(revision 35688)
+++ raster/Makefile	(working copy)
@@ -40,7 +40,6 @@
 	r.kappa \
 	r.lake \
 	r.le \
-	r.li \
 	r.los \
 	r.mapcalc \
 	r.median \
@@ -113,6 +112,10 @@
 	simwe \
 	wildfire
 
+ifneq ($(MINGW),)
+  SUBDIRS += r.li
+endif
+
 GDALBASED = r.in.gdal r.out.gdal
 
 FFTWBASED = r.surf.fractal
@@ -161,6 +164,9 @@
 
 PGM = rasterintro
 
+all:
+	echo $(SUBDIRS)
+
 include $(MODULE_TOPDIR)/include/Make/Dir.make
 
 default: htmldir
Index: lib/gis/dllmain.c
===================================================================
--- lib/gis/dllmain.c	(revision 0)
+++ lib/gis/dllmain.c	(revision 0)
@@ -0,0 +1,9 @@
+#include <windows.h>
+#include <stdlib.h>
+#include <fcntl.h>
+
+BOOL WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, LPVOID lpvReserved)
+{
+	_fmode = O_BINARY;
+	return TRUE;
+}

Property changes on: lib/gis/dllmain.c
___________________________________________________________________
Added: svn:mergeinfo

Index: lib/gis/fmode.c
===================================================================
--- lib/gis/fmode.c	(revision 0)
+++ lib/gis/fmode.c	(revision 0)
@@ -0,0 +1,4 @@
+#include <stdlib.h>
+#include <fcntl.h>
+#undef _fmode
+int _fmode = _O_BINARY;
Index: lib/gis/fmode.dat
===================================================================
--- lib/gis/fmode.dat	(revision 35688)
+++ lib/gis/fmode.dat	(working copy)
@@ -1,4 +0,0 @@
-#include <stdlib.h>
-#include <fcntl.h>
-#undef _fmode
-int _fmode = _O_BINARY;
Index: lib/gis/Makefile
===================================================================
--- lib/gis/Makefile	(revision 35688)
+++ lib/gis/Makefile	(working copy)
@@ -11,6 +11,9 @@
 include $(MODULE_TOPDIR)/include/Make/Lib.make
 include $(MODULE_TOPDIR)/include/Make/Doxygen.make
 
+LIB_OBJS := $(filter-out fmode.o,$(LIB_OBJS))
+LIB_OBJS := $(filter-out dllmain.o,$(LIB_OBJS))
+
 DATAFILES := $(patsubst %,$(ETC)/%,$(DATASRC))
 COLORSRC := $(filter-out colors/CVS,$(wildcard colors/[abcdefghijklmnopqrstuvwxyz]*))
 COLORFILES := $(patsubst colors/%,$(ETC)/colors/%,$(COLORSRC))
@@ -37,13 +40,8 @@
 
 endif
 
-default: lib $(FMODE_OBJ) $(DATAFILES) $(COLORFILES) $(ETC)/colors.desc $(ETC)/element_list
+default: $(DLLMAIN_OBJ) lib $(FMODE_OBJ) $(DATAFILES) $(COLORFILES) $(ETC)/colors.desc $(ETC)/element_list
 
-$(FMODE_OBJ): fmode.dat
-	@test -d $(OBJDIR) || mkdir $(OBJDIR)
-	cat fmode.dat > $(OBJDIR)/fmode.c
-	$(CC) $(CFLAGS) $(INC) -o $(FMODE_OBJ) -c $(OBJDIR)/fmode.c
-
 $(ETC)/colors:
 	$(MKDIR) $@
 
Index: include/Make/Shlib.make
===================================================================
--- include/Make/Shlib.make	(revision 35688)
+++ include/Make/Shlib.make	(working copy)
@@ -2,11 +2,16 @@
 
 SHLIB = $(ARCH_LIBDIR)/$(SHLIB_PREFIX)$(SHLIB_NAME).$(GRASS_VERSION_NUMBER)$(SHLIB_SUFFIX)
 
+# Object that calls _setfmode(_O_BINARY) which must be linked to each DLL on Windows
+ifdef MINGW
+  DLLMAIN_OBJ = $(MODULE_TOPDIR)/lib/gis/$(OBJDIR)/dllmain.o
+endif
+
 CFLAGS += $(SHLIB_CFLAGS) $(NLS_CFLAGS)
 LDFLAGS += $(SHLIB_LDFLAGS)
 
 $(SHLIB): $(SHLIB_OBJS)
-	$(SHLIB_LD) -o $@ $(LDFLAGS) $^ $(EXTRA_LIBS) && \
+	$(SHLIB_LD) -o $@ $(LDFLAGS) $^ $(EXTRA_LIBS) $(DLLMAIN_OBJ) && \
 	(cd $(ARCH_LIBDIR); ln -f -s $(notdir $@) $(patsubst %.$(GRASS_VERSION_NUMBER)$(SHLIB_SUFFIX),%$(SHLIB_SUFFIX),$@))
 
 shlib: $(SHLIB)

