- Use automake --foreign to silence warnings about gnu extensions.
- Add gstreamer-api.xml as prerequisite for gstreamer-sharp/*plugins/generated/%.cs
- Avoid executing $(MAKE) -C {core,base}plugins multiple times when gstreamer-api.xml is changed.
- Only generate xml for elements with changed metadata
autoheader || { echo "**Error**: autoheader failed."; exit 1; }
fi
-echo "Running automake --gnu $am_opt ..."
-automake --add-missing --gnu $am_opt ||
+echo "Running automake --add-missing --foreign $am_opt ..."
+automake --add-missing --foreign $am_opt ||
{ echo "**Error**: automake failed."; exit 1; }
echo "Running autoconf ..."
autoconf || { echo "**Error**: autoconf failed."; exit 1; }
gstreamer-sharp.dll.mdb
gstreamer-sharp.pdb
gstreamer-sharp.snk
+*plugins/generated/*
*plugins/*.cs
*plugins/*.xml
&& mv generated/ObjectManager.cs.tmp generated/ObjectManager.cs \
&& touch generated-stamp
-coreplugins/generated/*.cs: $(API) coreplugins/*.metadata coreplugins/inspect/*.raw
+coreplugins/generated/*.cs: coreplugins/generated
+coreplugins/generated: $(API) coreplugins/*.metadata coreplugins/inspect/*.raw
$(MAKE) -C coreplugins
-baseplugins/generated/*.cs: $(API) baseplugins/*.custom baseplugins/*.metadata baseplugins/inspect/*.raw
+baseplugins/generated/*.cs: baseplugins/generated
+baseplugins/generated: $(API) baseplugins/*.custom baseplugins/*.metadata baseplugins/inspect/*.raw
$(MAKE) -C baseplugins
$(KEYFILE): $(top_srcdir)/gstreamer-sharp.snk
$(top_builddir)/elementgen/gsts-xmlinspect $(patsubst inspect-%,%,$@) > inspect/$(patsubst inspect-%,%,$@).raw
all: $(XML_FILES) $(CS_FILES)
+ touch generated
-generated/%.cs: $(top_builddir)/elementgen/element-gen.exe $(CUSTOM_FILES) $(XML_FILES)
- mkdir -p generated
+generated/%.cs: $(top_builddir)/elementgen/element-gen.exe $(srcdir)/../gstreamer-api.xml $(CUSTOM_FILES) %.xml
+ @mkdir -p generated
$(MONO) $(top_builddir)/elementgen/element-gen.exe --namespace=$(NAMESPACE) \
--api=$(srcdir)/../gstreamer-api.xml --input=$(patsubst generated/%.cs,%,$@) > $@
-%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe $(INSPECT_FILES) $(METADATA_FILES)
+%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe inspect/%.raw %.metadata
+ cp $(patsubst %.xml,inspect/%.raw,$@) $@
+ $(MONO) $(top_builddir)/parser/gst-gapi-fixup.exe --api=$@ --metadata=$(patsubst %.xml,%.metadata,$@)
+
+%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe inspect/%.raw
cp $(patsubst %.xml,inspect/%.raw,$@) $@
- if [ -e $(patsubst %.xml,%.metadata,$@) ]; then \
- $(MONO) $(top_builddir)/parser/gst-gapi-fixup.exe --api=$@ \
- --metadata=$(patsubst %.xml,%.metadata,$@) ; \
- fi
$(top_builddir)/elementgen/gsts-xmlinspect $(patsubst inspect-%,%,$@) > inspect/$(patsubst inspect-%,%,$@).raw
all: $(XML_FILES) $(CS_FILES)
+ touch generated
-generated/%.cs: $(top_builddir)/elementgen/element-gen.exe $(CUSTOM_FILES) $(XML_FILES)
- mkdir -p generated
+generated/%.cs: $(top_builddir)/elementgen/element-gen.exe $(srcdir)/../gstreamer-api.xml $(CUSTOM_FILES) %.xml
+ @mkdir -p generated
$(MONO) $(top_builddir)/elementgen/element-gen.exe --namespace=$(NAMESPACE) \
--api=$(srcdir)/../gstreamer-api.xml --input=$(patsubst generated/%.cs,%,$@) > $@
-%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe $(INSPECT_FILES) $(METADATA_FILES)
+%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe inspect/%.raw %.metadata
+ cp $(patsubst %.xml,inspect/%.raw,$@) $@
+ $(MONO) $(top_builddir)/parser/gst-gapi-fixup.exe --api=$@ --metadata=$(patsubst %.xml,%.metadata,$@)
+
+%.xml: $(top_builddir)/parser/gst-gapi-fixup.exe inspect/%.raw
cp $(patsubst %.xml,inspect/%.raw,$@) $@
- if [ -e $(patsubst %.xml,%.metadata,$@) ]; then \
- $(MONO) $(top_builddir)/parser/gst-gapi-fixup.exe --api=$@ \
- --metadata=$(patsubst %.xml,%.metadata,$@) ; \
- fi