40
40
===============================================================================
41
FLAC - 1.1.4 - Contents
41
FLAC - 1.2.1 - Contents
42
42
===============================================================================
46
- Note to embedded developers
46
47
- Building in a GNU environment
47
48
- Building with Makefile.lite
48
49
- Building with MSVC
49
50
- Building on Mac OS X
50
- Note to embedded developers
53
53
===============================================================================
63
63
A brief description of the directory tree:
65
65
doc/ the HTML documentation
66
flac.pbproj/ the Mac OS X Project Builder project
67
66
include/ public include files for libFLAC and libFLAC++
68
67
man/ the man page for `flac'
69
68
src/ the source code and private headers
86
85
===============================================================================
86
Note to embedded developers
87
===============================================================================
89
libFLAC has grown larger over time as more functionality has been
90
included, but much of it may be unnecessary for a particular embedded
91
implementation. Unused parts may be pruned by some simple editing of
92
configure.in and src/libFLAC/Makefile.am; the following dependency
93
graph shows which modules may be pruned without breaking things
107
In other words, for pure decoding applications, both the stream encoder
108
and metadata editing interfaces can be safely removed.
110
There is a section dedicated to embedded use in the libFLAC API
111
HTML documentation (see doc/html/api/index.html).
113
Also, there are several places in the libFLAC code with comments marked
114
with "OPT:" where a #define can be changed to enable code that might be
115
faster on a specific platform. Experimenting with these can yield faster
119
===============================================================================
87
120
Building in a GNU environment
88
121
===============================================================================
115
148
assembly routines. Many routines have assembly versions for
116
149
speed and `configure' is pretty good about knowing what is
117
150
supported, but you can use this option to build only from the
151
C sources. May be necessary for building on OS X (Intel)
120
153
--enable-sse : If you are building for an x86 CPU that supports
121
154
SSE instructions, you can enable some of the faster routines
167
200
Building with MSVC
168
201
===============================================================================
170
There are now .dsp projects and a master FLAC.dsw workspace to build
171
all the libraries and executables.
203
There are .dsp projects and a master FLAC.dsw workspace to build all
204
the libraries and executables with MSVC6. There are also .vcproj
205
projects and a master FLAC.sln solution to build all the libraries and
206
executables with VC++ 2005.
173
208
Prerequisite: you must have the Ogg libraries installed as described
177
212
your PATH, or the path to nasmw.exe must be added to the list of
178
213
directories for executable files in the MSVC global options.
180
216
To build everything, run Developer Studio, do File|Open Workspace,
181
217
and open FLAC.dsw. Select "Build | Set active configuration..."
182
218
from the menu, then in the dialog, select "All - Win32 Release" (or
183
Debug if you prefer). Click "Ok" then hit F7 to build. This will build
184
all libraries both statically (e.g. obj\release\lib\libFLAC_static.lib)
185
and as DLLs (e.g. obj\release\bin\libFLAC.dll), and it will build all
186
binaries, statically linked (e.g. obj\release\bin\flac.exe).
219
Debug if you prefer). Click "Ok" then hit F7 to build.
222
To build everything, run Visual Studio, do File|Open and open FLAC.sln.
223
From the dropdown in the toolbar, select "Release" instead of "Debug",
224
then hit F7 to build.
226
Either way, this will build all libraries both statically (e.g.
227
obj\release\lib\libFLAC_static.lib) and as DLLs (e.g.
228
obj\release\lib\libFLAC.dll), and it will build all binaries, statically
229
linked (e.g. obj\release\bin\flac.exe).
188
231
Everything will end up in the "obj" directory. DLLs and .exe files
189
232
are all that are needed and can be copied to an installation area and
198
241
FLAC's 'include' directory (so that there is an 'ogg' directory in FLAC's
199
242
'include' directory with the files ogg.h, os_types.h and config_types.h).
244
If you want to build without Ogg support, instead edit all .dsp or
245
.vcproj files and remove any occurrences of "/D FLAC__HAS_OGG".
202
248
===============================================================================
203
249
Building on Mac OS X
204
250
===============================================================================
206
If you have Fink, the GNU flow above should work. Otherwise,
207
there is a Project Builder project in the top-level source
208
directory to build libFLAC and the command-line utilities on
209
Mac OS X. In a terminal, cd to the top-level directory (the
210
one that contains this README file) and type:
214
This will create everything and leave it in the build/ directory.
215
Don't worry about the rest of the stuff that is in build/ or
216
the stuff that was already there before building.
218
The Project Builder project requires that you have libiconv and
219
libogg in /sw, ala fink. If you don't, you'll need to install
220
them somewhere and change the path to them in the Library Paths
221
section of several targets.
223
It also assumes the CPU supports Altivec instructions. If it does
224
not, you will also have to add -DFLAC__NO_ASM to the CFLAGS in the
227
There currently is no install procedure; you will have to
228
manually copy the tools to wherever you need them.
231
===============================================================================
232
Note to embedded developers
233
===============================================================================
235
libFLAC has grown larger over time as more functionality has been
236
included, but much of it may be unnecessary for a particular embedded
237
implementation. Unused parts may be pruned by some simple editing of
238
configure.in and src/libFLAC/Makefile.am; the following dependency
239
graph shows which modules may be pruned without breaking things
252
In other words, for pure decoding applications, both the stream encoder
253
and metadata editing interfaces can be safely removed.
255
There is a section dedicated to embedded use in the libFLAC API
256
HTML documentation (see doc/html/api/index.html).
252
If you have Fink or a recent version of OS X with the proper autotooles,
253
the GNU flow above should work. The Project Builder project has been
254
deprecated but we are working on replacing it with an Xcode equivalent.