When you use a VCS that makes it easy to manage several braches, it’s easy to get conflicts in the
.list file used to generate the C marshallers. I recently fixed this problem in WebKit stealing some code used at least by various Telepathy components and by avahi-gobject, and I want to share the solution so every project can benefit from it.
First of all you have to open your
Makefile.am and move the
myproject-marshal.list file from
BUILT_SOURCES and add somewhere in the file:
myproject-marshal.list: $(myproject_SOURCES) Makefile.am ( cd $(srcdir) && \ sed -n -e 's/.*myproject_marshal_([[:upper:][:digit:]]*__[[:upper:][:digit:]_]*).*/1/p' \ $(myproject_SOURCES) ) \ | sed -e 's/__/:/' -e 'y/_/,/' | sort -u > $@.tmp if cmp -s $@.tmp $@; then \ rm $@.tmp; \ else \ mv $@.tmp $@; \ fi
Then remember to remove the
myproject-marshal.list file from your VCS (
The code will search for all the functions looking like
myproject_marshal_RETTYPE__ARG1TYPE_ARG2TYPE and generate the
myproject-marshal.list from them, regenerating automatically the list when you change a signal signature.
Update: fixed the blackslashes in the code that were misteriously eaten by WordPress.