Hi Joachim, and others interested in bug #427796 ... I think this should fix it for you.
Sat Jul 28 18:33:05 BST 2007 Duncan Coutts <[EMAIL PROTECTED]> * Be more careful about cleaning split-objs and stub files And build the code gen tools without using split-objs at all. I've attached a standard patch format version of this change. It touches Makefile.am so you'll need to autoreconf, but I assume you're already doing that. Let me know if there are any remaining problems. Duncan
diff -rN -u old-gtk2hs-0.9.12/Makefile.am new-gtk2hs-0.9.12/Makefile.am --- old-gtk2hs-0.9.12/Makefile.am 2007-07-28 18:50:23.000000000 +0100 +++ new-gtk2hs-0.9.12/Makefile.am 2007-07-28 18:50:24.000000000 +0100 @@ -86,6 +86,7 @@ tools_hierarchyGen_TypeGenerator_MAIN = \ $(tools_hierarchyGen_TypeGenerator_SOURCES) tools_hierarchyGen_TypeGenerator_EXTERNALDEPS = base +tools_hierarchyGen_TypeGenerator_NOSPLITOBJS = yes tools_hierarchyGen_TypeGenerator_SOURCESDIRS = tools/hierarchyGen tools_hierarchyGen_TypeGenerator_SOURCES = \ tools/hierarchyGen/TypeGen.hs @@ -105,6 +106,7 @@ tools_callbackGen_HookGenerator_MAIN = \ $(tools_callbackGen_HookGenerator_SOURCES) tools_callbackGen_HookGenerator_EXTERNALDEPS = base +tools_callbackGen_HookGenerator_NOSPLITOBJS = yes tools_callbackGen_HookGenerator_SOURCESDIRS = tools/callbackGen tools_callbackGen_HookGenerator_SOURCES = \ tools/callbackGen/HookGenerator.hs @@ -123,8 +125,7 @@ tools_c2hs_c2hsLocal_MAIN = c2hs/toplevel/Main.hs tools_c2hs_c2hsLocal_EXTERNALDEPS = base haskell98 -tools_c2hs_c2hsLocal_HEADER = -tools_c2hs_c2hsLocal_HCFLAGS = +tools_c2hs_c2hsLocal_NOSPLITOBJS = yes tools_c2hs_c2hsLocal_SOURCESDIRS = \ tools/c2hs/base/admin tools/c2hs/base/errors \ @@ -319,6 +320,7 @@ if ENABLE_SPLITOBJS libHSglib_a_AR = $(srcdir)/mk/link-splitobjs.sh +glib_CLEANFILES_SPLIT = $(libHSglib_a_HSFILES:.hs=_split/) else libHSglib_a_AR = $(AR) $(ARFLAGS) endif @@ -686,9 +688,9 @@ gtk_MOSTLYCLEANFILES += $(libHSgtk_a_HSFILES:.hs=.hi) gtk_MOSTLYCLEANFILES += \ $(libHSgtk_a_CHSFILES:.chs=.chi) \ - $(libHSgtk_a_LIBADD) \ - $(libHSgtk_a_LIBADD:.o=_.c) \ - $(libHSgtk_a_LIBADD:.o=_.h) + $(libHSgtk_a_CHSFILES:.chs=_stub.h) \ + $(libHSgtk_a_CHSFILES:.chs=_stub.o) \ + $(libHSgtk_a_CHSFILES:.chs=_stub.c) gtk_CLEANFILES = $(libHSgtk_a_BUILDSOURCES) gtk_CLEANFILES += $(libHSgtk_a_CHSFILES_HS:.hs=.dep) @@ -700,6 +702,7 @@ if ENABLE_SPLITOBJS libHSgtk_a_AR = $(srcdir)/mk/link-splitobjs.sh +gtk_CLEANFILES_SPLIT = $(libHSgtk_a_HSFILES:.hs=_split/) else libHSgtk_a_AR = $(AR) $(ARFLAGS) endif @@ -813,6 +816,7 @@ if ENABLE_SPLITOBJS libHSglade_a_AR = $(srcdir)/mk/link-splitobjs.sh +glade_CLEANFILES_SPLIT = $(libHSglade_a_HSFILES:.hs=_split/) else libHSglade_a_AR = $(AR) $(ARFLAGS) endif @@ -933,9 +937,9 @@ gconf_MOSTLYCLEANFILES += $(libHSgconf_a_HSFILES:.hs=.hi) gconf_MOSTLYCLEANFILES += \ $(libHSgconf_a_CHSFILES:.chs=.chi) \ - $(libHSgconf_a_LIBADD) \ - $(libHSgconf_a_LIBADD:.o=_.c) \ - $(libHSgconf_a_LIBADD:.o=_.h) + $(libHSgconf_a_CHSFILES:.chs=_stub.h) \ + $(libHSgconf_a_CHSFILES:.chs=_stub.h) \ + $(libHSgconf_a_CHSFILES:.chs=_stub.c) gconf_CLEANFILES = $(libHSgconf_a_BUILDSOURCES) gconf_CLEANFILES += $(libHSgconf_a_CHSFILES_HS:.hs=.dep) @@ -948,6 +952,7 @@ if ENABLE_SPLITOBJS libHSgconf_a_AR = $(srcdir)/mk/link-splitobjs.sh +gconf_CLEANFILES_SPLIT = $(libHSgconf_a_HSFILES:.hs=_split/) else libHSgconf_a_AR = $(AR) $(ARFLAGS) endif @@ -1073,6 +1078,7 @@ if ENABLE_SPLITOBJS libHSsourceview_a_AR = $(srcdir)/mk/link-splitobjs.sh +sourceview_CLEANFILES_SPLIT = $(libHSsourceview_a_HSFILES:.hs=_split/) else libHSsourceview_a_AR = $(AR) $(ARFLAGS) endif @@ -1186,6 +1192,7 @@ if ENABLE_SPLITOBJS libHSmozembed_a_AR = $(srcdir)/mk/link-splitobjs.sh +mozembed_CLEANFILES_SPLIT = $(libHSmozembed_a_HSFILES:.hs=_split/) else libHSmozembed_a_AR = $(AR) $(ARFLAGS) endif @@ -1319,6 +1326,7 @@ if ENABLE_SPLITOBJS libHScairo_a_AR = $(srcdir)/mk/link-splitobjs.sh +cairo_CLEANFILES_SPLIT = $(libHScairo_a_HSFILES:.hs=_split/) else libHScairo_a_AR = $(AR) $(ARFLAGS) endif @@ -1417,6 +1425,7 @@ if ENABLE_SPLITOBJS libHSsvgcairo_a_AR = $(srcdir)/mk/link-splitobjs.sh +svgcairo_CLEANFILES_SPLIT = $(libHSsvgcairo_a_HSFILES:.hs=_split/) else libHSsvgcairo_a_AR = $(AR) $(ARFLAGS) endif @@ -1538,6 +1547,7 @@ if ENABLE_SPLITOBJS libHSgtkglext_a_AR = $(srcdir)/mk/link-splitobjs.sh +gtkglext_CLEANFILES_SPLIT = $(libHSgtkglext_a_HSFILES:.hs=_split/) else libHSgtkglext_a_AR = $(AR) $(ARFLAGS) endif @@ -1612,6 +1622,7 @@ soegtk_MOSTLYCLEANFILES = $(am_libHSsoegtk_a_OBJECTS) soegtk_MOSTLYCLEANFILES += $(libHSsoegtk_a_HSFILES:.hs=.hi) +soegtk_MOSTLYCLEANFILES += $(libHSsoegtk_a_BUILDSOURCES) ifeq (,$(findstring clean,$(MAKECMDGOALS))) -include soegtk/libHSsoegtk_a.deps @@ -1619,6 +1630,7 @@ if ENABLE_SPLITOBJS libHSsoegtk_a_AR = $(srcdir)/mk/link-splitobjs.sh +soegtk_CLEANFILES_SPLIT = $(libHSsoegtk_a_HSFILES:.hs=_split/) else libHSsoegtk_a_AR = $(AR) $(ARFLAGS) endif @@ -1968,18 +1980,29 @@ rm -f $(doc_MOSTLYCLEANFILES) clean: mostlyclean clean-am - rm -f $(c2hs_CLEANFILES) - rm -f $(glib_CLEANFILES) - rm -f $(gtk_CLEANFILES) - rm -f $(glade_CLEANFILES) - rm -f $(gconf_CLEANFILES) - rm -f $(sourceview_CLEANFILES) - rm -f $(mozembed_CLEANFILES) - rm -f $(cairo_CLEANFILES) - rm -f $(svgcairo_CLEANFILES) - rm -f $(gtkglext_CLEANFILES) - rm -f $(soegtk_CLEANFILES) - rm -f $(doc_CLEANFILES) + rm -f $(c2hs_CLEANFILES) + rm -rf $(c2hs_CLEANFILES_SPLIT) + rm -f $(glib_CLEANFILES) + rm -rf $(glib_CLEANFILES_SPLIT) + rm -f $(gtk_CLEANFILES) + rm -rf $(gtk_CLEANFILES_SPLIT) + rm -f $(glade_CLEANFILES) + rm -rf $(glade_CLEANFILES_SPLIT) + rm -f $(gconf_CLEANFILES) + rm -rf $(gconf_CLEANFILES_SPLIT) + rm -f $(sourceview_CLEANFILES) + rm -rf $(sourceview_CLEANFILES_SPLIT) + rm -f $(mozembed_CLEANFILES) + rm -rf $(mozembed_CLEANFILES_SPLIT) + rm -f $(cairo_CLEANFILES) + rm -rf $(cairo_CLEANFILES_SPLIT) + rm -f $(svgcairo_CLEANFILES) + rm -rf $(svgcairo_CLEANFILES_SPLIT) + rm -f $(gtkglext_CLEANFILES) + rm -rf $(gtkglext_CLEANFILES_SPLIT) + rm -f $(soegtk_CLEANFILES) + rm -rf $(soegtk_CLEANFILES_SPLIT) + rm -f $(doc_CLEANFILES) distclean: clean distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) diff -rN -u old-gtk2hs-0.9.12/mk/common.mk new-gtk2hs-0.9.12/mk/common.mk --- old-gtk2hs-0.9.12/mk/common.mk 2007-07-28 18:50:23.000000000 +0100 +++ new-gtk2hs-0.9.12/mk/common.mk 2007-07-28 18:50:23.000000000 +0100 @@ -59,10 +59,10 @@ #Obviously the 'subdir-objects' option only works for C/C++ files. if ENABLE_SPLITOBJS %.o : %.hs $(CONFIG_HEADER) - rm -rf $@ $*_split/ - mkdir -p $*_split + $(if $($(PKG)_NOSPLITOBJS),,rm -rf $@ $*_split/; mkdir -p $*_split) $(strip $(HC) +RTS $(HSTOOLFLAGS) -RTS \ - -c $< -o $@ -split-objs $(HCFLAGS) $($(PKG)_HCFLAGS) \ + $(if $($(PKG)_NOSPLITOBJS),,-split-objs) \ + -c $< -o $@ $(HCFLAGS) $($(PKG)_HCFLAGS) \ $(call getVar,$<,HCFLAGS) -i$(HS_SEARCH_PATH) \ $(HCFLAGS_PACKAGE_DEPS) $(HCFLAGS_PACKAGE_NAME) \ $(addprefix '-#include<,$(addsuffix >', $($(PKG)_HEADER))) \

