From a6c428f6f35e2c5600c9fb8ad568e0d2ec9b00f4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= Date: Mon, 21 Apr 2008 20:42:38 +0300 Subject: [PATCH] Put common modules Makefiles stuff to an include file Less escaping, less stuff that Makefile.am's depend on --- modules/common.am | 82 +++++++++++++++++++++++++++++++++++++++++++++++ modules/genmf | 77 ++------------------------------------------ 2 files changed, 84 insertions(+), 75 deletions(-) create mode 100644 modules/common.am diff --git a/modules/common.am b/modules/common.am new file mode 100644 index 0000000000..9ca22b606d --- /dev/null +++ b/modules/common.am @@ -0,0 +1,82 @@ +# Common code for VLC modules/.../Makefile.am +# +# Copyright (C) 2005-2007 the VideoLAN team +# Copyright (C) 2005-2008 Rémi Denis-Courmont +# +# Authors: Sam Hocevar + +NULL = +SUFFIXES = _plugin$(LIBEXT) _plugin.la + +libvlcdir = $(libdir)/vlc/$(basedir) +libvlc_LTLIBRARIES = +EXTRA_DIST = Modules.am +BUILT_SOURCES = +CLEANFILES = + +include $(srcdir)/Modules.am + +if HAVE_PLUGINS +LTLIBVLC = $(top_builddir)/src/libvlc.la + +AM_LDFLAGS = -rpath '$(libvlcdir)' \ + -avoid-version -module -no-undefined \ + -shrext $(LIBEXT) +if HAVE_COMPILER_EXPORT +AM_LDFLAGS += -export-dynamic +else +AM_LDFLAGS += -export-symbol-regex ^vlc_entry +endif +AM_LIBADD = $(LTLIBVLC) +endif + +all: all-modules + +nice: + $(top_builddir)/compile + +# Find out which modules were enabled and tell make to build them +all-modules: + @set fnord $$MAKEFLAGS; amf=$$2; targets=`\ + z=$$($(VLC_CONFIG) --list plugin); for mod in $(mods); do case "$$z " in *\ $${mod}\ *) echo lib$${mod}_plugin.la;; esac; done; \ + `; case "$$targets" in *lib*) $(MAKE) $(AM_MAKEFLAGS) $$targets || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; ;; esac; \ + test -z "$$fail" + +# Build a plugin with the adequate linker and linker's flags +_plugin.la_plugin$(LIBEXT): + @mod="$*" ; mod=$${mod#lib} ; \ + ldfl="`$(VLC_CONFIG) --libs plugin $$mod` $(LIBVLC) -u $(SYMPREF)$(VLC_ENTRY)" ; \ + case `$(VLC_CONFIG) --linkage $$mod` in \ + c++) ld="$(CXXLINK)" ;; \ + objc) ld="$(OBJCLINK)" ;; \ + c|*) ld="$(LINK)" ;; \ + esac ; \ + echo $$ld $< $$ldfl ; \ + $$ld $< $$ldfl + +if MAINTAINER_MODE +$(srcdir)/Makefile.am: $(srcdir)/Modules.am $(top_srcdir)/modules/genmf + cd \$(top_srcdir) && \$(SHELL) modules/genmf ${dir} +endif + +mostlyclean-local: + -rm -f -- *.la + +### automake creates libvlcdir after running install-*-local +### so we have to create it ourselves first +install-exec-local: all-modules + @if test -z "$(libvlc_LTLIBRARIES)"; then \ + z=$$($(VLC_CONFIG) --list plugin); \ + m=`for mod in $(mods); do case "$$z " in *\ $${mod}\ *) printf " lib$${mod}_plugin.la" ;; esac; done` ; \ + test -z "$$m" || \ + $(MAKE) $(AM_MAKEFLAGS) libvlc_LTLIBRARIES="$$m" install-libvlcLTLIBRARIES || exit $$? ; \ + fi + +uninstall-local: + @if test -z "$(libvlc_LTLIBRARIES)"; then \ + z=$$($(VLC_CONFIG) --list plugin); \ + m=`for mod in $(mods); do case "$$z " in *\ $${mod}\ *) printf " lib$${mod}_plugin.la" ;; esac; done` ; \ + test -z "$$m" || \ + $(MAKE) $(AM_MAKEFLAGS) libvlc_LTLIBRARIES="$$m" uninstall-libvlcLTLIBRARIES || exit $$?; \ + fi + diff --git a/modules/genmf b/modules/genmf index 156b8862b6..e8030b9d4a 100755 --- a/modules/genmf +++ b/modules/genmf @@ -30,83 +30,10 @@ do basedir = ${basedir} mods = ${mods} - -NULL = -libvlc_LTLIBRARIES = -EXTRA_DIST = Modules.am -BUILT_SOURCES = -CLEANFILES = SUBDIRS = ${subdirs} -SUFFIXES = _plugin\$(LIBEXT) _plugin.la - -libvlcdir = \$(libdir)/vlc/\$(basedir) - EXTRA_LTLIBRARIES = ${extra_ltlibs} -include Modules.am - -if HAVE_PLUGINS -LTLIBVLC = \$(top_builddir)/src/libvlc.la - -AM_LDFLAGS = -rpath '\$(libvlcdir)' -avoid-version \\ - -module -no-undefined -shrext \$(LIBEXT) -if HAVE_COMPILER_EXPORT -AM_LDFLAGS += -export-dynamic -else -AM_LDFLAGS += -export-symbol-regex ^vlc_entry -endif -AM_LIBADD = \$(LTLIBVLC) -endif - -all: all-modules - -nice: - \$(top_builddir)/compile - -# Find out which modules were enabled and tell make to build them -all-modules: - @set fnord \$\$MAKEFLAGS; amf=\$\$2; targets=\`\\ - z=\$\$(\$(VLC_CONFIG) --list plugin); for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) echo lib\$\${mod}_plugin.la;; esac; done; \\ - \`; case "\$\$targets" in *lib*) \$(MAKE) \$(AM_MAKEFLAGS) \$\$targets || case "\$\$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; ;; esac; \\ - test -z "\$\$fail" - -# Build a plugin with the adequate linker and linker's flags -_plugin.la_plugin\$(LIBEXT): - @mod="\$*" ; mod=\$\${mod#lib} ; \ - ldfl="\`\$(VLC_CONFIG) --libs plugin \$\$mod\` \$(LIBVLC) -u \$(SYMPREF)\$(VLC_ENTRY)" ; \ - case \`\$(VLC_CONFIG) --linkage \$\$mod\` in \\ - c++) ld="\$(CXXLINK)" ;; \ - objc) ld="\$(OBJCLINK)" ;; \ - c|*) ld="\$(LINK)" ;; \ - esac ; \ - echo \$\$ld \$< \$\$ldfl ; \ - \$\$ld \$< \$\$ldfl - -if MAINTAINER_MODE -\$(srcdir)/Makefile.am: \$(srcdir)/Modules.am \$(top_srcdir)/modules/genmf - cd \$(top_srcdir) && \$(SHELL) modules/genmf ${dir} -endif - -mostlyclean-local: - -rm -f -- *.la - -### automake creates libvlcdir after running install-*-local -### so we have to create it ourselves first -install-exec-local: all-modules - @if test -z "\$(libvlc_LTLIBRARIES)"; then \ - z=\$\$(\$(VLC_CONFIG) --list plugin); \ - m=\`for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) printf " lib\$\${mod}_plugin.la" ;; esac; done\` ; \ - test -z "\$\$m" || \ - \$(MAKE) \$(AM_MAKEFLAGS) libvlc_LTLIBRARIES="\$\$m" install-libvlcLTLIBRARIES || exit \$\$? ; \ - fi - -uninstall-local: - @if test -z "\$(libvlc_LTLIBRARIES)"; then \ - z=\$\$(\$(VLC_CONFIG) --list plugin); \ - m=\`for mod in \$(mods); do case "\$\$z " in *\ \$\${mod}\ *) printf " lib\$\${mod}_plugin.la" ;; esac; done\` ; \ - test -z "\$\$m" || \ - \$(MAKE) \$(AM_MAKEFLAGS) libvlc_LTLIBRARIES="\$\$m" uninstall-libvlcLTLIBRARIES || exit \$\$?; \ - fi +include \$(top_srcdir)/modules/common.am EOF for mod in $mods @@ -126,7 +53,6 @@ EOF # work properly with any automake version I tested. cat >> "${makf}" << EOF # The ${mod} plugin - EOF cat >> "${makf}" << EOF lib${mod}_plugin_la_SOURCES = \$(SOURCES_${mod}) @@ -147,6 +73,7 @@ lib${mod}_plugin_la_LIBADD = \$(AM_LIBADD) \\ \`\$(VLC_CONFIG) -libs plugin ${mod}\` # Automake does not understand \`...\` very well inside LIBADD... lib${mod}_plugin_la_DEPENDENCIES = \$(AM_LIBADD) + EOF done -- 2.39.2