summaryrefslogtreecommitdiff
path: root/libcaja-private/Makefile.am
diff options
context:
space:
mode:
Diffstat (limited to 'libcaja-private/Makefile.am')
-rw-r--r--libcaja-private/Makefile.am40
1 files changed, 27 insertions, 13 deletions
diff --git a/libcaja-private/Makefile.am b/libcaja-private/Makefile.am
index 5db9c6e1..cbf91983 100644
--- a/libcaja-private/Makefile.am
+++ b/libcaja-private/Makefile.am
@@ -18,6 +18,11 @@ INCLUDES = \
$(UNIQUE_CFLAGS) \
$(NULL)
+BUILT_SOURCES = \
+ caja-marshal.c \
+ caja-marshal.h \
+ $(NULL)
+
dependency_static_libs = \
$(top_builddir)/cut-n-paste-code/libegg/libegg.la \
$(NULL)
@@ -36,11 +41,6 @@ libcaja_private_la_LIBADD = \
$(CORE_LIBS) \
$(NULL)
-marshal_sources = \
- caja-marshal.h \
- caja-marshal-guts.c \
- $(NULL)
-
libcaja_private_la_SOURCES = \
caja-autorun.c \
caja-autorun.h \
@@ -125,8 +125,6 @@ libcaja_private_la_SOURCES = \
caja-lib-self-check-functions.h \
caja-link.c \
caja-link.h \
- caja-marshal.c \
- caja-marshal.h \
caja-merged-directory.c \
caja-merged-directory.h \
caja-metadata.h \
@@ -195,14 +193,29 @@ libcaja_private_la_SOURCES = \
caja-undostack-manager.h \
$(NULL)
+nodist_libcaja_private_la_SOURCES =\
+ $(BUILT_SOURCES) \
+ $(NULL)
+
$(lib_LTLIBRARIES): $(dependency_static_libs)
-caja-marshal.h: caja-marshal.list $(GLIB_GENMARSHAL)
- $(AM_V_GEN)$(GLIB_GENMARSHAL) $< --header --prefix=caja_marshal > $@
-caja-marshal-guts.c: caja-marshal.list $(GLIB_GENMARSHAL)
- $(AM_V_GEN)$(GLIB_GENMARSHAL) $< --body --prefix=caja_marshal > $@
+caja-marshal.list: $(libcaja_private_la_SOURCES) Makefile.am
+ $(AM_V_GEN)( cd $(srcdir) && \
+ sed -n -e 's/.*caja_marshal_\([[:upper:][:digit:]]*__[[:upper:][:digit:]_]*\).*/\1/p' \
+ $(libcaja_private_la_SOURCES) ) \
+ | sed -e 's/__/:/' -e 'y/_/,/' | sort -u > [email protected]
+ @if cmp -s [email protected] $@; then \
+ else \
+ fi
+
+%-marshal.h: %-marshal.list Makefile
+ $(AM_V_GEN)$(GLIB_GENMARSHAL) --header --prefix=$(subst -,_,$*)_marshal $< > $*-marshal.h
-$(libcaja_private_la_OBJECTS): $(marshal_sources)
+%-marshal.c: %-marshal.list Makefile
+ $(AM_V_GEN)echo "#include \"caja-marshal.h\"" > $@ && \
+ $(GLIB_GENMARSHAL) --body --prefix=$(subst -,_,$*)_marshal $< >> $*-marshal.c
gsettingsschema_in_files = org.mate.caja.gschema.xml.in org.mate.media-handling.gschema.xml.in
gsettings_SCHEMAS = $(gsettingsschema_in_files:.xml.in=.xml)
@@ -220,9 +233,10 @@ EXTRA_DIST = \
$(NULL)
CLEANFILES = \
- $(marshal_sources) \
+ $(BUILT_SOURCES) \
$(schema_DATA) \
$(gsettings_SCHEMAS) \
+ caja-marshal.list \
$(NULL)
dist-hook: