[GRASS-dev] Compile errors - dllmain and fmode -
releasebranch_6_4 and develbranch_6
Glynn Clements
glynn at gclements.plus.com
Sun Mar 8 04:07:44 EDT 2009
Colin Nielsen wrote:
> 1) I reverted markus's patch and the jef_mingw patch as well.
> 2) make distclean
> 3) ./configure etc etc etc
> 4) make
> 5) as Glynn suggested, make again
>
> Seems to still be a lot of errors, so far the jef_mingw patch worked
> the best, it fixed dllmain but not fmode.
fmode.c seems to have disappeared at some point.
Eventually, I managed to get it to compile with the attached patch.
--
Glynn Clements <glynn at gclements.plus.com>
-------------- next part --------------
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/Makefile
===================================================================
--- lib/gis/Makefile (revision 36231)
+++ lib/gis/Makefile (working copy)
@@ -8,8 +8,13 @@
DATASRC = ellipse.table datum.table datumtransform.table FIPS.code state27 state83 projections gui.tcl
EXTRA_INC = $(ZLIBINCPATH)
+include $(MODULE_TOPDIR)/include/Make/Platform.make
+
LIB_OBJS := $(subst .c,.o,$(wildcard *.c))
LIB_OBJS := $(filter-out fmode.o dllmain.o,$(LIB_OBJS))
+ifneq ($(MINGW),)
+LIB_OBJS := $(LIB_OBJS) dllmain.o fmode.o
+endif
include $(MODULE_TOPDIR)/include/Make/Lib.make
include $(MODULE_TOPDIR)/include/Make/Doxygen.make
@@ -40,7 +45,7 @@
endif
-default: $(DLLMAIN_OBJ) lib $(FMODE_OBJ) $(DATAFILES) $(COLORFILES) $(ETC)/colors.desc $(ETC)/element_list
+default: lib $(FMODE_OBJ) $(DATAFILES) $(COLORFILES) $(ETC)/colors.desc $(ETC)/element_list
$(ETC)/colors:
$(MKDIR) $@
Index: include/Make/Shlib.make
===================================================================
--- include/Make/Shlib.make (revision 36231)
+++ include/Make/Shlib.make (working copy)
@@ -4,8 +4,12 @@
# Object that calls _setfmode(_O_BINARY) which must be linked to each DLL on Windows
ifdef MINGW
+ifneq ($(SHLIB_NAME),$(DATETIME_LIBNAME))
+ifneq ($(SHLIB_NAME),$(GIS_LIBNAME))
DLLMAIN_OBJ = $(MODULE_TOPDIR)/lib/gis/$(OBJDIR)/dllmain.o
endif
+endif
+endif
CFLAGS += $(SHLIB_CFLAGS) $(NLS_CFLAGS)
LDFLAGS += $(SHLIB_LDFLAGS)
More information about the grass-dev
mailing list