[MPlayer-dev-eng] deterministic builds

Enrico Weigelt weigelt at metux.de
Sun Dec 28 03:23:18 CET 2003


* Joey Parrish <joey at nicewarrior.org> [2003-12-23 21:27:59 -0600]:

<snip>
> > In other words: not checking whether libfoo is available and then
> > include some support for it, but instead having a module or feature
> > which can be enabled and depends on libfoo.
> 
> It's a great idea.

Well, I'm glad that I'm not the only one with this idea :)


Okay, lets start to find a good modeling of software structure on 
mplayer as example :) Its complexity is big enough to make this work
be usable for dozens of other projects ...

In a XML presentation it could look like:


<PROJECT name="mplayer" version="1.0.0.2" stability="pre">
    <MODULE name="mplayer::core" class="inlined">
	<OPTION name="confdir" default="/etc/mplayer" c_define="MPLAYER_CONFDIR" pgk_define="SYSCONFDIR"/>
	<OPTION name="prefix"  default="/usr"         c_define="MPLAYER_PREFIX"/>
	<OPTION name="libdir"  default="{PREFIX}/lib" c_define="MPLAYER_LIBDIR"  pkg_define="LIBDIR"/>
	<OPTION name="bindir"  default="{PREFIX}/bin" c_define="MPLAYER_BINDIR"  pkg_define="BINDIR"/>
	<SOURCE name="asxparser.c" class="c-source"/>
	<SOURCE name="codec-cfg.c" class="c-source"/>
	<SOURCE name="cpudetect.c" class="c-source"/>
	<SOURCE name="divx4_vbr.c" class="c-source"/>
	<SOURCE name="fibmap_mplayer.c" class="c-source"/>
	<SOURCE name="fifo.c" class="c-source"/>
	<SOURCE name="find_sub.c" class="c-source"/>
	<SOURCE name="get_path.c" class="c-source"/>
	<SOURCE name="m_config.c" class="c-source"/>
	<SOURCE name="mixer.c" class="c-source"/>
	<SOURCE name="m_options.c" class="c-source"/>
	<SOURCE name="m_struct.c" class="c-source"/>
	<SOURCE name="parser-cfg.c" class="c-source"/>
	<SOURCE name="parser-mecmd.c" class="c-source"/>
	<SOURCE name="parser-mpcmd.c" class="c-source"/>
	<SOURCE name="playtree.c" class="c-source"/>
	<SOURCE name="playtreeparser.c" class="c-source"/>
	<SOURCE name="spudec.c" class="c-source"/>
	<SOURCE name="subreader.c" class="c-source"/>
	<SOURCE name="sub_cc.c" class="c-source"/>
	<SOURCE name="urarlib.c" class="c-source"/>
	<SOURCE name="vobsub.c" class="c-source"/>
	<SOURCE name="xvid_vbr.c" class="c-source"/>
	<SOURCE name="mp_msg.c" class="c-source"/>
	<SOURCE name="mp_msg-mencoder.c" class="c-source"/>
    </MODULE>
    	
    <APPLICATION name="mplayer" platforms="posix">
	<IMPORT module="mplayer::core"/>
	<MANPAGE language="en" name="mplayer" source="DOCS/en/mplayer.1"/>
	<MANPAGE language="de" name="mplayer" source="DOCS/de/mplayer.1"/>
	<MANPAGE language="es" name="mplayer" source="DOCS/es/mplayer.1"/>
	<MANPAGE language="fr" name="mplayer" source="DOCS/fr/mplayer.1"/>
	<MANPAGE language="hu" name="mplayer" source="DOCS/hu/mplayer.1"/>
	<MANPAGE language="pl" name="mplayer" source="DOCS/pl/mplayer.1"/>
	<MANPAGE language="zl" name="mplayer" source="DOCS/zl/mplayer.1"/>
	<SOURCE name="mplayer.c" class="c-source"/>
	<SOURCE name="mplayer_wine_spec.c" class="c-source"/>
    </APPLICATION>

    <APPLICATION name="gmplayer" platforms="posix">
	<IMPORT module="mplayer::core"/>
	<IMPORT module="gnome::gtk"/>
	<MANPAGE language="en" name="gmplayer" source="DOCS/en/gmplayer.1"/>
	<MANPAGE language="de" name="gmplayer" source="DOCS/de/gmplayer.1"/>
	<MANPAGE language="es" name="gmplayer" source="DOCS/es/gmplayer.1"/>
	<MANPAGE language="fr" name="gmplayer" source="DOCS/fr/gmplayer.1"/>
	<MANPAGE language="hu" name="gmplayer" source="DOCS/hu/gmplayer.1"/>
	<MANPAGE language="pl" name="gmplayer" source="DOCS/pl/gmplayer.1"/>
	<MANPAGE language="zl" name="gmplayer" source="DOCS/zl/gmplayer.1"/>
    </APPLICATION>

    <APPLICATION name="mencoder" platforms="posix">
	<IMPORT module="mplayer::core"/>
	<MANPAGE language="en" name="mencoder" source="DOCS/en/mencoder.1"/>
	<MANPAGE language="de" name="mencoder" source="DOCS/de/mencoder.1"/>
	<MANPAGE language="es" name="mencoder" source="DOCS/es/mencoder.1"/>
	<MANPAGE language="fr" name="mencoder" source="DOCS/fr/mencoder.1"/>
	<MANPAGE language="hu" name="mencoder" source="DOCS/hu/mencoder.1"/>
	<MANPAGE language="pl" name="mencoder" source="DOCS/pl/mencoder.1"/>
	<MANPAGE language="zl" name="mencoder" source="DOCS/zl/mencoder.1"/>
	<SOURCE name="mencoder.c" class="c-source"/>
    </APPLICATION>
</PROJECT>


cu
-- 
---------------------------------------------------------------------
 Enrico Weigelt    ==   metux IT services

  phone:     +49 36207 519931         www:       http://www.metux.de/
  fax:       +49 36207 519932         email:     contact at metux.de
  cellphone: +49 174 7066481
---------------------------------------------------------------------
 Diese Mail wurde mit UUCP versandt.      http://www.metux.de/uucp/




More information about the MPlayer-dev-eng mailing list