#! /bin/sh ## genmf file for the VLC media player ## ## Copyright (C) 2005-2007 the VideoLAN team ## ## Authors: Sam Hocevar ## RĂ©mi Denis-Courmont cd $(dirname "$0")/.. || exit 1 while test "$1" do printf "." dir="$1" modf="modules/${dir}/Modules.am" makf="modules/${dir}/Makefile.am" basedir="`echo "${dir}" | cut -f1 -d/`" # automake will not recurse for make dist if we don't define SUBDIRS = . subdirs="`sed -ne 's,'modules/${dir}'/\([^/]*\)/Makefile,\1,p' configure.ac | xargs`" mods="`sed -n -e 's/^ *SOURCES_\([^ ]*\).*/\1/p' < "${modf}" | xargs`" extra_ltlibs="" for mod in $mods do extra_ltlibs="${extra_ltlibs} lib${mod}_plugin.la" done rm -f "${makf}" && cat > "${makf}" << EOF # ${makf} automatically generated from ${modf} by bootstrap # DO NOT EDIT - edit Modules.am or \$(top_srcdir)/bootstrap instead basedir = ${basedir} mods = ${mods} SUBDIRS = ${subdirs} EXTRA_LTLIBRARIES = ${extra_ltlibs} include \$(top_srcdir)/modules/common.am EOF for mod in $mods do if grep '^nodist_SOURCES_'${mod}'' < "${modf}" >/dev/null 2>&1; then NODIST=''; else NODIST='#'; fi cat >> m4/private.m4 << EOF ${mod}) list="\\\${list} ${dir}/lib${mod}" ;; EOF # Generation of modules/**/Makefile.am # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # - L_ is for LIBRARIES_, D_ for DATA_, B_ for BUILT_SOURCES_, F_ for LDFLAGS_, # S_ for SOURCES_, _p is for _plugin, _b is for _builtin. This is to reduce # the resulting file size. # - *_CFLAGS, *_CXXFLAGS etc. because per-object CPPFLAGS does not seem to # 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}) EOF if [ "${NODIST}" != "#" ]; then cat >> "${makf}" << EOF nodist_lib${mod}_plugin_la_SOURCES = \$(nodist_SOURCES_${mod}) CLEANFILES += \$(nodist_SOURCES_${mod}) BUILT_SOURCES += \$(B${mod}) EOF fi cat >> "${makf}" << EOF lib${mod}_plugin_la_CFLAGS = \$(AM_CFLAGS) lib${mod}_plugin_la_CXXFLAGS = \$(AM_CXXFLAGS) lib${mod}_plugin_la_OBJCFLAGS = \$(AM_OBJCFLAGS) 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 shift done printf "\n"