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 EXTRA_DIST
to 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 (svn/git/hg/bzr rm
).
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.
One thought on “Automatic generation of .list files”
Comments are closed.