I had the problem with the goocanvasenumtypes.h but I had no issues with generating the DLL.

I got around the goocanvasenumtypes.h issue a different way. The tar source files come already come with goocanvasenumtypes.h so I ran configure and then deleted the following lines from src\Makefile. Once I did that I ran make and all was fine.

goocanvasenumtypes.h: stamp-goocanvasenumtypes.h   
stamp-goocanvasenumtypes.h:  $(goo_canvas_public_headers) Makefile
    (cd $(srcdir) && $(GLIB_MKENUMS) \
        --fhead "#ifndef __GOO_CANVAS_ENUM_TYPES_H__\n#define __GOO_CANVAS_ENUM_TYPES_H__\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n" \
        --fprod "/* Enumerations from \"@filename@\" */\n" \
        --vhead "GType @enum_name@_get_type (void);\n#define GOO_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n\n\n" \
        --ftail "G_END_DECLS\n\n#endif /* __GOO_CANVAS_ENUM_TYPES_H__ */" \
        $(libgoocanvas_public_headers)) >> xgen-gtbh \
    && (cmp -s xgen-gtbh goocanvasenumtypes.h || cp xgen-gtbh goocanvasenumtypes.h ) \
    && rm -f xgen-gtbh \
    && echo timestamp > $(@F)

goocanvasenumtypes.c:  $(goo_canvas_public_headers) Makefile
    (cd $(srcdir) && $(GLIB_MKENUMS) \
        --fhead "#include <glib-object.h>\n" \
        --fhead "#include \"goocanvas.h\"\n" \
        --fprod "\n/* Enumerations from \"@filename@\" */" \
        --vhead "GType\n@enum_name@_get_type (void)\n{\n  static GType etype = 0;\n if( etype == 0 ) \n  {\n    static const G@Type@Value values[] = {" \
        --vprod "      { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \
        --vtail "      { 0, NULL, NULL }\n    };\n    etype = g_@type@_register_static (\"@EnumName@\", values );\n  }\n  return etype;\n}\n" \
        $(libgoocanvas_public_headers)) > xgen-gtbc \
    && cp xgen-gtbc goocanvasenumtypes.c  \
    && rm -f xgen-gtbc

Not very elegant, but it works!

control H wrote:
Just a quick note for those who compile goocanvas on windows like I
did 2 weeks ago. There were 2 problems on my Windows system

1. there were errors in goocanvasenumtypes.h
2. there was no libgoocanvas dll generated

1. glib-mkenums needs perl, and even if it can find perl it sometimes
generates a syntax incorrect goocanvasenumtypes.h. I solved it by
making sure in msys perl can really be found at /usr/bin/perl.
2. this is because libtool is a bit flawed IMO. In the function
func_win32_libid () we see:

func_win32_libid ()
  win32_fileres=`file -L $1 2>/dev/null`

However, my version of file.exe (4.16) doesn't support the option -L
on windows, but libtool assumes it does, therefore func_win32_libid()
doesn't recognize. I just removed -L in the code above, resulting in
libgoocanvas-3.dll being made.

Of course all this is not goocanvas specific, but general
mingw/libtool stuff. But it can take you a lot of time finding out why
things don't work, so hope this helps.


PS I don't know about libtool at all actually, but wouldn't it be an
idea to check whether file supports option -L?

Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
Goocanvas-devel mailing list