| Index: flac/README | 
| =================================================================== | 
| --- flac/README	(revision 0) | 
| +++ flac/README	(revision 0) | 
| @@ -0,0 +1,254 @@ | 
| +/* FLAC - Free Lossless Audio Codec | 
| + * Copyright (C) 2001,2002,2003,2004,2005,2006,2007  Josh Coalson | 
| + * | 
| + * This file is part the FLAC project.  FLAC is comprised of several | 
| + * components distributed under difference licenses.  The codec libraries | 
| + * are distributed under Xiph.Org's BSD-like license (see the file | 
| + * COPYING.Xiph in this distribution).  All other programs, libraries, and | 
| + * plugins are distributed under the LGPL or GPL (see COPYING.LGPL and | 
| + * COPYING.GPL).  The documentation is distributed under the Gnu FDL (see | 
| + * COPYING.FDL).  Each file in the FLAC distribution contains at the top the | 
| + * terms under which it may be distributed. | 
| + * | 
| + * Since this particular file is relevant to all components of FLAC, | 
| + * it may be distributed under the Xiph.Org license, which is the least | 
| + * restrictive of those mentioned above.  See the file COPYING.Xiph in this | 
| + * distribution. | 
| + */ | 
| + | 
| + | 
| +FLAC (http://flac.sourceforge.net/) is an Open Source lossless audio | 
| +codec developed by Josh Coalson. | 
| + | 
| +FLAC is comprised of | 
| +  * `libFLAC', a library which implements reference encoders and | 
| +    decoders for native FLAC and Ogg FLAC, and a metadata interface | 
| +  * `libFLAC++', a C++ object wrapper library around libFLAC | 
| +  * `flac', a command-line program for encoding and decoding files | 
| +  * `metaflac', a command-line program for viewing and editing FLAC | 
| +    metadata | 
| +  * player plugins for XMMS and Winamp | 
| +  * user and API documentation | 
| + | 
| +The libraries (libFLAC, libFLAC++) are | 
| +licensed under Xiph.org's BSD-like license (see COPYING.Xiph).  All other | 
| +programs and plugins are licensed under the GNU General Public License | 
| +(see COPYING.GPL).  The documentation is licensed under the GNU Free | 
| +Documentation License (see COPYING.FDL). | 
| + | 
| + | 
| +=============================================================================== | 
| +FLAC - 1.2.1 - Contents | 
| +=============================================================================== | 
| + | 
| +- Introduction | 
| +- Prerequisites | 
| +- Note to embedded developers | 
| +- Building in a GNU environment | 
| +- Building with Makefile.lite | 
| +- Building with MSVC | 
| +- Building on Mac OS X | 
| + | 
| + | 
| +=============================================================================== | 
| +Introduction | 
| +=============================================================================== | 
| + | 
| +This is the source release for the FLAC project.  See | 
| + | 
| +	doc/html/index.html | 
| + | 
| +for full documentation. | 
| + | 
| +A brief description of the directory tree: | 
| + | 
| +	doc/          the HTML documentation | 
| +	include/      public include files for libFLAC and libFLAC++ | 
| +	man/          the man page for `flac' | 
| +	src/          the source code and private headers | 
| +	test/         the test scripts | 
| + | 
| + | 
| +=============================================================================== | 
| +Prerequisites | 
| +=============================================================================== | 
| + | 
| +To build FLAC with support for Ogg FLAC you must have built and installed | 
| +libogg according to the specific instructions below.  You must have | 
| +libogg 1.1.2 or greater, or there will be seeking problems with Ogg FLAC. | 
| + | 
| +If you are building on x86 and want the assembly optimizations, you will | 
| +need to have NASM >= 0.98.30 installed according to the specific instructions | 
| +below. | 
| + | 
| + | 
| +=============================================================================== | 
| +Note to embedded developers | 
| +=============================================================================== | 
| + | 
| +libFLAC has grown larger over time as more functionality has been | 
| +included, but much of it may be unnecessary for a particular embedded | 
| +implementation.  Unused parts may be pruned by some simple editing of | 
| +configure.in and src/libFLAC/Makefile.am; the following dependency | 
| +graph shows which modules may be pruned without breaking things | 
| +further down: | 
| + | 
| +metadata.h | 
| +	stream_decoder.h | 
| +	format.h | 
| + | 
| +stream_encoder.h | 
| +	stream_decoder.h | 
| +	format.h | 
| + | 
| +stream_decoder.h | 
| +	format.h | 
| + | 
| +In other words, for pure decoding applications, both the stream encoder | 
| +and metadata editing interfaces can be safely removed. | 
| + | 
| +There is a section dedicated to embedded use in the libFLAC API | 
| +HTML documentation (see doc/html/api/index.html). | 
| + | 
| +Also, there are several places in the libFLAC code with comments marked | 
| +with "OPT:" where a #define can be changed to enable code that might be | 
| +faster on a specific platform.  Experimenting with these can yield faster | 
| +binaries. | 
| + | 
| + | 
| +=============================================================================== | 
| +Building in a GNU environment | 
| +=============================================================================== | 
| + | 
| +FLAC uses autoconf and libtool for configuring and building. | 
| +Better documentation for these will be forthcoming, but in | 
| +general, this should work: | 
| + | 
| +./configure && make && make check && make install | 
| + | 
| +The 'make check' step is optional; omit it to skip all the tests, | 
| +which can take several hours and use around 70-80 megs of disk space. | 
| +Even though it will stop with an explicit message on any failure, it | 
| +does print out a lot of stuff so you might want to capture the output | 
| +to a file if you're having a problem.  Also, don't run 'make check' | 
| +as root because it confuses some of the tests. | 
| + | 
| +NOTE: Despite our best efforts it's entirely possible to have | 
| +problems when using older versions of autoconf, automake, or | 
| +libtool.  If you have the latest versions and still can't get it | 
| +to work, see the next section on Makefile.lite. | 
| + | 
| +There are a few FLAC-specific arguments you can give to | 
| +`configure': | 
| + | 
| +--enable-debug : Builds everything with debug symbols and some | 
| +extra (and more verbose) error checking. | 
| + | 
| +--disable-asm-optimizations : Disables the compilation of the | 
| +assembly routines.  Many routines have assembly versions for | 
| +speed and `configure' is pretty good about knowing what is | 
| +supported, but you can use this option to build only from the | 
| +C sources.  May be necessary for building on OS X (Intel) | 
| + | 
| +--enable-sse : If you are building for an x86 CPU that supports | 
| +SSE instructions, you can enable some of the faster routines | 
| +if your operating system also supports SSE instructions.  flac | 
| +can tell if the CPU supports the instructions but currently has | 
| +no way to test if the OS does, so if it does, you must pass | 
| +this argument to configure to use the SSE routines.  If flac | 
| +crashes when built with this option you will have to go back and | 
| +configure without --enable-sse.  Note that | 
| +--disable-asm-optimizations implies --disable-sse. | 
| + | 
| +--enable-local-xmms-plugin : Installs the FLAC XMMS plugin in | 
| +$HOME/.xmms/Plugins, instead of the global XMMS plugin area | 
| +(usually /usr/lib/xmms/Input). | 
| + | 
| +--with-ogg= | 
| +--with-xmms-prefix= | 
| +--with-libiconv-prefix= | 
| +Use these if you have these packages but configure can't find them. | 
| + | 
| +If you want to build completely from scratch (i.e. starting with just | 
| +configure.in and Makefile.am) you should be able to just run 'autogen.sh' | 
| +but make sure and read the comments in that file first. | 
| + | 
| + | 
| +=============================================================================== | 
| +Building with Makefile.lite | 
| +=============================================================================== | 
| + | 
| +There is a more lightweight build system for do-it-yourself-ers. | 
| +It is also useful if configure isn't working, which may be the | 
| +case since lately we've had some problems with different versions | 
| +of automake and libtool.  The Makefile.lite system should work | 
| +on GNU systems with few or no adjustments. | 
| + | 
| +From the top level just 'make -f Makefile.lite'.  You can | 
| +specify zero or one optional target from 'release', 'debug', | 
| +'test', or 'clean'.  The default is 'release'.  There is no | 
| +'install' target but everything you need will end up in the | 
| +obj/ directory. | 
| + | 
| +If you are not on an x86 system or you don't have nasm, you | 
| +may have to change the DEFINES in src/libFLAC/Makefile.lite.  If | 
| +you don't have nasm, remove -DFLAC__HAS_NASM.  If your target is | 
| +not an x86, change -DFLAC__CPU_IA32 to -DFLAC__CPU_UNKNOWN. | 
| + | 
| + | 
| +=============================================================================== | 
| +Building with MSVC | 
| +=============================================================================== | 
| + | 
| +There are .dsp projects and a master FLAC.dsw workspace to build all | 
| +the libraries and executables with MSVC6.  There are also .vcproj | 
| +projects and a master FLAC.sln solution to build all the libraries and | 
| +executables with VC++ 2005. | 
| + | 
| +Prerequisite: you must have the Ogg libraries installed as described | 
| +later. | 
| + | 
| +Prerequisite: you must have nasm installed, and nasmw.exe must be in | 
| +your PATH, or the path to nasmw.exe must be added to the list of | 
| +directories for executable files in the MSVC global options. | 
| + | 
| +MSVC6: | 
| +To build everything, run Developer Studio, do File|Open Workspace, | 
| +and open FLAC.dsw.  Select "Build | Set active configuration..." | 
| +from the menu, then in the dialog, select "All - Win32 Release" (or | 
| +Debug if you prefer).  Click "Ok" then hit F7 to build. | 
| + | 
| +VC++ 2005: | 
| +To build everything, run Visual Studio, do File|Open and open FLAC.sln. | 
| +From the dropdown in the toolbar, select "Release" instead of "Debug", | 
| +then hit F7 to build. | 
| + | 
| +Either way, this will build all libraries both statically (e.g. | 
| +obj\release\lib\libFLAC_static.lib) and as DLLs (e.g. | 
| +obj\release\lib\libFLAC.dll), and it will build all binaries, statically | 
| +linked (e.g. obj\release\bin\flac.exe). | 
| + | 
| +Everything will end up in the "obj" directory.  DLLs and .exe files | 
| +are all that are needed and can be copied to an installation area and | 
| +added to the PATH.  The plugins have to be copied to their appropriate | 
| +place in the player area.  For Winamp2 this is <winamp2-dir>\Plugins. | 
| + | 
| +By default the code is configured with Ogg support.  Before building FLAC | 
| +you will need to get the Ogg source distribution | 
| +(see http://xiph.org/ogg/vorbis/download/), build ogg_static.lib (load and | 
| +build win32\ogg_static.dsp), copy ogg_static.lib into FLAC's | 
| +'obj\release\lib' directory, and copy the entire include\ogg tree into | 
| +FLAC's 'include' directory (so that there is an 'ogg' directory in FLAC's | 
| +'include' directory with the files ogg.h, os_types.h and config_types.h). | 
| + | 
| +If you want to build without Ogg support, instead edit all .dsp or | 
| +.vcproj files and remove any occurrences of "/D FLAC__HAS_OGG". | 
| + | 
| + | 
| +=============================================================================== | 
| +Building on Mac OS X | 
| +=============================================================================== | 
| + | 
| +If you have Fink or a recent version of OS X with the proper autotooles, | 
| +the GNU flow above should work.  The Project Builder project has been | 
| +deprecated but we are working on replacing it with an Xcode equivalent. | 
|  |