1LAME 3.xx    January 2001  Mark Taylor (http://www.mp3dev.org)
2
3
4=======================================================================
5Compile time options
6=======================================================================
7There are serveral targets which can be built from this
8source code:
9
10lame, lame.exe  The command line encoder
11
12mp3x            A GTK based graphical MP3 frame analyzer.  For debugging,
13                development, and studing MP3 frames produced by any
14                encoder.
15
16lame_enc.dll    a Windows DLL used by many GUIs which support lame.
17                (Can only be compiled by MSVC???)
18
19
20lame.acm        a Windows ACM codec which can be used by
21                many windows programs, and any directshow program.
22                See MSVC project files in ACM directory.
23                Right click on lame.inf to install.
24
25lame_enc.dshow  a Windows direct show filter for lame.  Potentially has
26                more flexability than the ACM codec, but code needs some
27                work.  See MSVC project files in dshow directory
28
29
30libmp3lame.a    the static encoding library used by all platforms, required
31                by all the above targets.
32
33libmp3lame.so   shared version of libmp3lame.a for *NIX platforms
34
35
36
37The following compile time options can be used.  For libmp3lame.a
38and lame_enc.dll, none are required.  On non-unix systems,
39these options must be set in config.h or in the IDE.
40On unix systems, they are set via ./configure.
41
42
43#define HAVE_MPGLIB   compile in mpglib's mp3 *decoding* capibility
44#define HAVE_VORBIS   compile in Vorbis decoding capibility
45                      (you need libvorbis already built)
46#define NOANALYSIS   do not compile in hooks used by the
47                     MP3 frame analyzer.
48
49
50Options for the command line encoder:
51#define LIBSNDFILE   to use Erik de Castro Lopo's libsndfile
52                     for input.
53
54
55
56=======================================================================
57Building the software on *NIX platforms using configure:
58=======================================================================
59Run the following commands:
60
61% ./configure
62% make
63% make install
64
65For a complete list of options, try "./configure --help"
66Some of the more usefull options:
67
68For the encoding library:
69
70  --enable-mp3x               Build the mp3 frame analyzer, 'mp3x'
71
72  --enable-mp3rtp             Build the encode-to-RTP program, 'mp3rtp'
73                              (broken as of August 2001)
74
75
76For the LAME front end encoder:
77
78  --with-fileio=lame          Use lame's internal file io routines [default]
79               =sndfile       Use Erik de Castro Lopo's libsndfile
80                              (Supports many more input formats, but no stdin possible currently)
81
82  --with-sndfile-prefix=DIR   Alternate location for libsndfile
83                              (if --with-fileio=sndfile)
84
85
86Other usefull configure options:
87
88  --enable-debug              Build a debug version
89
90  --enable-expopt             Enable some more optimizations flags for
91                              the compiler, may or may not produce
92                              faster code
93
94  --prefix = PATH             default is /usr/local
95                              (LAME currently installs:
96                                /usr/local/bin/lame
97                                /usr/local/lib/libmp3lame.a
98                                /usr/local/lib/libmp3lame.so
99                                /usr/local/include/lame.h
100
101
102  --with-vorbis                Enable Ogg Vorbis decoding support
103  --with-vorbis-prefix = PATH  specify where to find Vorbis libs
104
105
106Some more advanced ways to influence the build procedure
107(experienced users only, use it at your own risk):
108
109  - If you want to use some custom defines for building (e.g. some out
110    of the file "DEFINES") use:
111
112     * bourne shell or compatible (ash, bash, zsh, ...):
113       CONFIG_DEFS="-Dmy_define" ./configure
114
115     * C shell or compatible (csh, tcsh, ...):
116       setenv CONFIG_DEFS "-Dmy_define"
117       ./configure
118
119  - If you want to use some additional options for the compiler:
120
121    * bourne shell or compatible (ash, bash, zsh, ...):
122      CFLAGS="--my_flag" ./configure
123
124    * C shell or compatible (csh, tcsh, ...):
125      setenv CFLAGS "--my_flag"
126      ./configure
127
128  Or some combination of the above.
129
130  Note:
131    If configure detects the presents of "nasm" some additional speed
132    improvements get compiled in (additional assembler code to detect
133    and use multimedia extensions of the used processor).
134
135
136=======================================================================
137Building the software on *NIX platforms without configure:
138=======================================================================
139% make -f Makefile.unix
140
141
142
143=======================================================================
144Building the software on Windows with MSVC:
145(or MSVC + 3rd party C compiler)
146=======================================================================
147There are MSVC project files, and a Makefile.MSVC included
148with the project.  For production use, be sure to compile
149a "Release" target, with the "maximum speed" compile
150option, and #define NDEBUG.
151
152It is possible to compile the GTK frame analyzer under windows, see
153README.WINGTK
154
155Various build options can be set in configMS.h
156
157Note: project files for building lame.exe seem to be broken or not
158quite compatable with MSVC6.  The most reliable way to build lame and
159lame_enc.dll is to run the .bat script (comes with MSVC6) which sets
160up your VC environment to work from the command line, and then:
161
162copy configMS.h config.h
163nmake -f Makefile.MSVC  comp=msvc  asm=no
164
165Project files for the dll, ACM codec and directshow filter
166seem to be in better sahpe.
167
168
169
170
171
172
173=======================================================================
174Building the software on Windows with free compilers:
175=======================================================================
176LAME can be compiled with various Windows MSDOS ports (all free)
177of GCC (DJGPP, Mingw32).  See README.DJGPP.
178
179For Mingw32, you should now be able to use the Unix Makefile that
180comes with LAME.  Try: "make -f Makefile.unix UNAME=MSDOS"
181You may need to remove these lines from brhist.c:
182
183#ifdef _WIN32
184COORD Pos;
185HANDLE CH;
186CONSOLE_SCREEN_BUFFER_INFO CSBI;
187#endif
188
189Mingw32 users may also try to use the unix configure script (explained
190above), it has _untested_ support for Mingw32.
191
192Cygwin users should use the unix configure script (explained above). If
193you have problems with the configure script try:
194      CC=gcc ./configure
195Patches to enable the build of the lame_enc.dll with Cygwin and autoconf /
196automake / libtool are welcome!
197
198To use the Borland C compiler (now free!) see README.B32 and Makefile.B32.
199Borland can also compile the lame_enc.dll, but this is untested.
200
201Can DJGPP or Mingw32 produce lame_enc.dll?
202
203Various build options can be set in configMS.h
204
205
206
207