1# Rules for generating marshal files using glib-genmarshal 2# 3# Define: 4# glib_marshal_list = marshal list file 5# glib_marshal_prefix = prefix for marshal functions 6# 7# before including Makefile.am.marshal. You will also need to have 8# the following targets already defined: 9# 10# CLEANFILES 11# DISTCLEANFILES 12# BUILT_SOURCES 13# EXTRA_DIST 14# 15# Author: Emmanuele Bassi <ebassi@linux.intel.com> 16 17# Basic sanity checks 18$(if $(GLIB_GENMARSHAL),,$(error Need to define GLIB_GENMARSHAL)) 19 20$(if $(or $(glib_marshal_list), \ 21 $(glib_marshal_prefix)),, \ 22 $(error Need to define glib_marshal_list and glib_marshal_prefix)) 23 24marshal_h = $(glib_marshal_list:.list=.h) 25marshal_c = $(glib_marshal_list:.list=.c) 26marshal_list = $(addprefix $(srcdir)/, $(glib_marshal_list)) 27 28CLEANFILES += stamp-marshal 29DISTCLEANFILES += $(marshal_h) $(marshal_c) 30BUILT_SOURCES += $(marshal_h) $(marshal_c) 31EXTRA_DIST += $(marshal_list) 32 33stamp-marshal: $(marshal_list) 34 $(AM_V_GEN)$(GLIB_GENMARSHAL) \ 35 --prefix=$(glib_marshal_prefix) \ 36 --header \ 37 $(marshal_list) > xgen-mh \ 38 && (cmp -s xgen-mh $(marshal_h) || cp -f xgen-mh $(marshal_h)) \ 39 && rm -f xgen-mh \ 40 && echo timestamp > $(@F) 41 42$(marshal_h): stamp-marshal 43 @true 44 45$(marshal_c): $(marshal_h) 46 $(AM_V_GEN)(echo "#include \"$(marshal_h)\"" ; \ 47 $(GLIB_GENMARSHAL) \ 48 --prefix=$(glib_marshal_prefix) \ 49 --body \ 50 $(marshal_list)) > xgen-mc \ 51 && cp xgen-mc $(marshal_c) \ 52 && rm -f xgen-mc 53