From ff24d7d310817d4a94113ac077fbaf1b1b4d9b14 Mon Sep 17 00:00:00 2001 From: Maarten Bosmans Date: Fri, 5 Jun 2009 07:03:45 +0200 Subject: [PATCH] Build system fixes - 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 --- autogen.sh | 4 ++-- gstreamer-sharp/.gitignore | 1 + gstreamer-sharp/Makefile.am | 6 ++++-- gstreamer-sharp/baseplugins/Makefile.am | 15 ++++++++------- gstreamer-sharp/coreplugins/Makefile.am | 15 ++++++++------- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/autogen.sh b/autogen.sh index b6243547ca..4df94810ce 100755 --- a/autogen.sh +++ b/autogen.sh @@ -92,8 +92,8 @@ if grep "^AM_CONFIG_HEADER" configure.ac >/dev/null; then 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; } diff --git a/gstreamer-sharp/.gitignore b/gstreamer-sharp/.gitignore index ee14644f6b..de973ec7d5 100644 --- a/gstreamer-sharp/.gitignore +++ b/gstreamer-sharp/.gitignore @@ -7,5 +7,6 @@ gstreamer-sharp.dll.config gstreamer-sharp.dll.mdb gstreamer-sharp.pdb gstreamer-sharp.snk +*plugins/generated/* *plugins/*.cs *plugins/*.xml diff --git a/gstreamer-sharp/Makefile.am b/gstreamer-sharp/Makefile.am index a6a7357054..fa50998d87 100644 --- a/gstreamer-sharp/Makefile.am +++ b/gstreamer-sharp/Makefile.am @@ -145,10 +145,12 @@ generated-stamp: $(API) $(build_customs) $(overrides) && 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 diff --git a/gstreamer-sharp/baseplugins/Makefile.am b/gstreamer-sharp/baseplugins/Makefile.am index a209365aab..ade4d7ce1b 100644 --- a/gstreamer-sharp/baseplugins/Makefile.am +++ b/gstreamer-sharp/baseplugins/Makefile.am @@ -15,16 +15,17 @@ inspect-%: $(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 diff --git a/gstreamer-sharp/coreplugins/Makefile.am b/gstreamer-sharp/coreplugins/Makefile.am index 23df40351b..fdd66355f7 100644 --- a/gstreamer-sharp/coreplugins/Makefile.am +++ b/gstreamer-sharp/coreplugins/Makefile.am @@ -20,16 +20,17 @@ inspect-%: $(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