[vorbis-dev] build process patches

Jeff Squyres jsquyres at lsc.nd.edu
Fri Dec 29 22:47:17 PST 2000


Here's an updated set of patches to fix some problems with the build
process.  These patches are relevant to the CVS head as of 30 Dec 2000.

Overview:

- Patch 1: Allowing the user to set CFLAGS/LDFLAGS before running
configure in all four modules.  All these patches do is essentially:

        cflags_save="$CFLAGS"
        ldflags_save="$LDFLAGS"
        # ... stuff to set CFLAGS and/or LDFLAGS
        CFLAGS="$CFLAGS $cflags_save"
        LDFLAGS="$LDFLAGS $ldflags_save"

Yes, there's other ways of doing it, but this was low-cost, easy to
understand, and modified very little configure.in code that is already
there.

Applies to:

        ao/configure.in
        ogg/configure.in
        vorbis/configure.in

- Patch 2: Allow --prefix to specify where libao, libogg, and libvorbis
live.  It's a real pain to have to specify --with-ogg-prefix=foo (etc.) on
all those configure lines.  The most common case is that they're all
installed in the same place anyway.  Hence, the --prefix directory should
be checked for libogg (and the rest) as well.

Applies to:

        vorbis/acinclude.m4
        vorbis-tools/acinclude.m4

- Patch 3: Allows vorbis-tools packages to be linked statically.  The
linker flags are in the wrong order for static linking (regardless of your
compiler), and the wrong automake keyword suffix is used (LDFLAGS instead
of LDADD).  If you configure vorbis-tools with "--enable-static
--disable-shared" (these are legal options), oggenc and ogg123 will fail
to link properly if libao, libogg, or libvorbis were compiled statically
(which is also legal).

Applies to:

        vorbis-tools/ogg123/Makefile.am
        vorbis-tools/oggenc/Makefile.am

- Patch 4: The Makefile dependency stuff in automake is ***BROKEN***.  It
adds CFLAGS that simply are gcc-specific (the automake manual clearly
states this).  As such, you can't compile with native (i.e., non-gcc)
compilers (where you can get a substantial performance boost).  To a)
remove the automake dependency stuff and b) make it portable to other
compilers, you have to add "no-dependencies" to the AUTOMAKE_OPTIONS line
in every Makefile.am.

Yes, this sucks, and yes, dependencies are important for developers.  But
there are other ways of doing it [yes, they also suck, but they're
portable].

Applies to:

        every Makefile.am that has .c/.h files in them
        (I might have missed some in ao; I only did the ones relevant on
         Solaris)

{+} Jeff Squyres
{+} squyres at cse.nd.edu
{+} Perpetual Obsessive Notre Dame Student Craving Utter Madness
{+} "I came to ND for 4 years and ended up staying for a decade"


<HR NOSHADE>
<UL>
<LI>TEXT/PLAIN attachment: patch1
</UL>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch1
Type: application/octet-stream
Size: 3396 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20001230/546f2017/patch1.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch2
Type: application/octet-stream
Size: 2154 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20001230/546f2017/patch2.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch3
Type: application/octet-stream
Size: 1620 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20001230/546f2017/patch3.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch4
Type: application/octet-stream
Size: 2692 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/vorbis-dev/attachments/20001230/546f2017/patch4.obj


More information about the Vorbis-dev mailing list