1
/* FLAC - Free Lossless Audio Codec
2
* Copyright (C) 2001 Josh Coalson
4
* This program is part of FLAC; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License
6
* as published by the Free Software Foundation; either version 2
7
* of the License, or (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
FLAC (http://flac.sourceforge.net/) is an Open Source lossless audio
21
codec developed by Josh Coalson.
23
FLAC is comprised of 1) `libFLAC', a library which implements
24
reference encoders and decoders, licensed under the GNU Lesser
25
General Public License (LGPL); 2) `flac', a command-line program for
26
encoding and decoding files, licensed under the GNU General public
27
License (GPL); 3) `metaflac', a command-line program for editing
28
FLAC metadata, licensed under the GPL; 4) player plugins for XMMS
29
and Winamp, licensed under the GPL; and 5) documentation, licensed
30
under the GNU Free Documentation License.
36
This is the source release for the FLAC project. See
40
for full documentation.
42
A brief description of the directory tree:
44
doc/ the HTML documentation
45
include/ public include files for libFLAC
46
src/ the source code and private headers
47
test/ the test scripts
50
=============================
51
Building in a GNU environment
52
=============================
54
FLAC uses autoconf and libtool for configuring and building.
55
Better documentation for these will be forthcoming, but in
56
general, this should work:
58
./configure && make && make install
60
NOTE: automake 1.5 has a bug which will affect the x86 assembly
61
part of the build. If you have automake 1.5 and have x86
62
assembly optimizations turned on, you will need to get a newer
63
version of automake or patch your /usr/bin/automake using the
64
included 'automake-1.5.patch' file.
66
If you still can't get it to work, see the next section on
69
There are a few FLAC-specific arguments you can give to
72
--enable-debug : Builds everything with debug symbols and some
73
extra (and more verbose) error checking.
75
--disable-asm-optimizations : Disables the compilation of the
76
assembly routines. Many routines have assembly versions for
77
speed and `configure' is pretty good about knowing what is
78
supported, but you can use this option to build only from the
81
--enable-sse : If you are building for an x86 CPU that supports
82
SSE instructions, you can enable some of the faster routines
83
if your operating system also supports SSE instructions. flac
84
can tell if the CPU supports the instructions but currently has
85
no way to test if the OS does, so if it does, you must pass
86
this argument to configure to use the SSE routines. If flac
87
crashes when built with this option you will have to go back and
88
configure without --enable-sse. Note that
89
--disable-asm-optimizations implies --disable-sse.
91
--enable-3dnow : If you are building for an AMD CPU which has 3DNOW!
92
support, you can use this flag to enable some assembly routines
93
which use 3DNOW! instructions. There have been some reports that
94
they may cause flac to crash, which is why it is not turned on
95
by default. Note that --disable-asm-optimizations overrides
99
===========================
100
Building with Makefile.lite
101
===========================
103
There is a more lightweight build system for do-it-yourself-ers.
104
It is also useful if configure isn't working, which may be the
105
case since lately we've had some problems with different versions
106
of automake and libtool. The Makefile.lite system should work
107
on Gnu systems with few or no minor adjustments.
109
From the top level just 'make -f Makefile.lite'. You can
110
specify zero or one optional target from 'release', 'debug',
111
'test', or 'clean'. The default is 'release'. There is no
112
'install' target but everything you need will end up in the
115
If you are not on an x86 system or you don't have nasm, you
116
may have to change the DEFINES in src/libFLAC/Makefile.lite. If
117
you don't have nasm, remove -DFLAC__HAS_NASM. If your target is
118
not an x86, change -DFLAC__CPU_IA32 to -DFLAC__CPU_UNKNOWN.
125
There is no overall make system for MSVC but the individual
126
source directories with a 'Makefile.vc' file in them allow
127
building with MSVC. Just 'nmake /f Makefile.vc'. Currently
128
the Makefile.vc for libFLAC is hardcoded to use nasm. If
129
you don't have nasm, or don't want any assembly optimizations,
130
edit the makefile, adding '/D FLAC__NO_ASM' and delete the
131
rules which compile the .s files.
138
There is a Project Builder project in the top-level source
139
directory to build libFLAC and the command-line utilities on
140
Mac OS X. In a terminal, cd to the top-level directory (the
141
one that contains this README file) and type:
145
This will create everything and leave it in build/ directory.
146
Don't worry about the rest of the stuff that is in build or
147
the stuff that was already there before building.
149
There currently is no install procedure; you will have to
150
manually copy the tools to wherever you need them.