0a2de8997e
Test
194 lines
6.8 KiB
Text
194 lines
6.8 KiB
Text
LAME 3.xx January 2001 Mark Taylor (http://www.mp3dev.org)
|
|
|
|
|
|
=======================================================================
|
|
Compile time options
|
|
=======================================================================
|
|
There are serveral targets which can be built from this
|
|
source code:
|
|
|
|
lame, lame.exe The command line encoder
|
|
|
|
mp3x A GTK based graphical MP3 frame analyzer. For debugging,
|
|
development, and studing MP3 frames produced by any
|
|
encoder.
|
|
|
|
lame_enc.dll a Windows DLL used by many GUIs which support lame.
|
|
(Can only be compiled by MSVC???)
|
|
|
|
lame.acm *** DEPRECATED ***
|
|
a Windows ACM codec which can be used by many windows programs,
|
|
and any directshow program. See MSVC project files in ACM
|
|
directory. Right click on lame.inf to install.
|
|
|
|
lame_enc.dshow a Windows direct show filter for lame. Potentially has
|
|
more flexability than the ACM codec, but code needs some
|
|
work. See MSVC project files in dshow directory
|
|
|
|
libmp3lame.a the static encoding library used by all platforms, required
|
|
by all the above targets.
|
|
|
|
libmp3lame.so shared version of libmp3lame.a for *NIX platforms
|
|
|
|
|
|
The following compile time options can be used. For libmp3lame.a and
|
|
lame_enc.dll, none are required. On non-unix systems, these options must
|
|
be set in config.h or in the IDE.
|
|
On unix systems, they are set via ./configure.
|
|
|
|
|
|
#define HAVE_MPGLIB compile in mpglib's mp3 *decoding* capibility
|
|
#define HAVE_VORBIS compile in Vorbis decoding capibility
|
|
(you need libvorbis already built)
|
|
#define NOANALYSIS do not compile in hooks used by the
|
|
MP3 frame analyzer.
|
|
|
|
Options for the command line encoder:
|
|
#define LIBSNDFILE to use Erik de Castro Lopo's libsndfile
|
|
for input.
|
|
|
|
|
|
=======================================================================
|
|
Building the software on *NIX platforms using configure:
|
|
=======================================================================
|
|
Run the following commands:
|
|
|
|
% ./configure
|
|
% make
|
|
% make install
|
|
|
|
For a complete list of options, try "./configure --help"
|
|
Some of the more usefull options:
|
|
|
|
For the encoding library:
|
|
|
|
--enable-mp3x Build the mp3 frame analyzer, 'mp3x'
|
|
|
|
--enable-mp3rtp Build the encode-to-RTP program, 'mp3rtp'
|
|
(broken as of August 2001)
|
|
|
|
|
|
For the LAME front end encoder:
|
|
|
|
--with-fileio=lame Use lame's internal file io routines [default]
|
|
=sndfile Use Erik de Castro Lopo's libsndfile (Supports
|
|
many more input formats, but no stdin possible
|
|
currently)
|
|
|
|
--with-sndfile-prefix=DIR Alternate location for libsndfile
|
|
(if --with-fileio=sndfile)
|
|
|
|
|
|
Other usefull configure options:
|
|
|
|
--enable-debug Build a debug version
|
|
|
|
--enable-expopt Enable some more optimizations flags for
|
|
the compiler, may or may not produce
|
|
faster code
|
|
|
|
--prefix = PATH default is /usr/local
|
|
(LAME currently installs:
|
|
/usr/local/bin/lame
|
|
/usr/local/lib/libmp3lame.a
|
|
/usr/local/lib/libmp3lame.so
|
|
/usr/local/include/lame.h
|
|
|
|
|
|
--with-vorbis Enable Ogg Vorbis decoding support
|
|
--with-vorbis-prefix = PATH specify where to find Vorbis libs
|
|
|
|
|
|
Some more advanced ways to influence the build procedure
|
|
(experienced users only, use it at your own risk):
|
|
|
|
- If you want to use some custom defines for building (e.g. some out
|
|
of the file "DEFINES") use:
|
|
|
|
* bourne shell or compatible (ash, bash, zsh, ...):
|
|
CONFIG_DEFS="-Dmy_define" ./configure
|
|
|
|
* C shell or compatible (csh, tcsh, ...):
|
|
setenv CONFIG_DEFS "-Dmy_define"
|
|
./configure
|
|
|
|
- If you want to use some additional options for the compiler:
|
|
|
|
* bourne shell or compatible (ash, bash, zsh, ...):
|
|
CFLAGS="--my_flag" ./configure
|
|
|
|
* C shell or compatible (csh, tcsh, ...):
|
|
setenv CFLAGS "--my_flag"
|
|
./configure
|
|
|
|
Or some combination of the above.
|
|
|
|
Note:
|
|
If configure detects the presents of "nasm" some additional speed
|
|
improvements get compiled in (additional assembler code to detect
|
|
and use multimedia extensions of the used processor).
|
|
|
|
|
|
=======================================================================
|
|
Building the software on *NIX platforms without configure:
|
|
=======================================================================
|
|
% make -f Makefile.unix
|
|
|
|
|
|
=======================================================================
|
|
Building the software on Windows with MSVC:
|
|
(or MSVC + 3rd party C compiler such as ICL)
|
|
=======================================================================
|
|
There are MSVC project files, and a Makefile.MSVC included with the
|
|
project. For production use, be sure to compile a "Release" target,
|
|
with the "maximum speed" compile option, and #define NDEBUG.
|
|
|
|
It is possible to compile the GTK frame analyzer under windows, see
|
|
README.WINGTK
|
|
|
|
Various build options can be set in configMS.h
|
|
|
|
Note: project files for building lame.exe seem to be broken or not
|
|
quite compatable with MSVC6. The most reliable way to build lame and
|
|
lame_enc.dll is to run the .bat script (comes with MSVC6) which sets
|
|
up your VC environment to work from the command line, and then:
|
|
|
|
copy configMS.h config.h
|
|
nmake -f Makefile.MSVC comp=msvc asm=no
|
|
|
|
Project files for the dll, ACM codec and directshow filter
|
|
seem to be in better sahpe.
|
|
|
|
|
|
=======================================================================
|
|
Building the software on Windows with free compilers:
|
|
=======================================================================
|
|
LAME can be compiled with various Windows ports (all free) of GCC (DJGPP,
|
|
Mingw32). See README.DJGPP.
|
|
|
|
For Mingw32, you should now be able to use the Unix Makefile that
|
|
comes with LAME. Try: "make -f Makefile.unix UNAME=MSDOS"
|
|
You may need to remove these lines from brhist.c:
|
|
|
|
#ifdef _WIN32
|
|
COORD Pos;
|
|
HANDLE CH;
|
|
CONSOLE_SCREEN_BUFFER_INFO CSBI;
|
|
#endif
|
|
|
|
Mingw32 users may also try to use the unix configure script (explained
|
|
above), it has _untested_ support for Mingw32.
|
|
|
|
Cygwin users should use the unix configure script (explained above). If
|
|
you have problems with the configure script try:
|
|
CC=gcc ./configure
|
|
Patches to enable the build of the lame_enc.dll with Cygwin and autoconf /
|
|
automake / libtool are welcome!
|
|
|
|
To use the Borland C compiler (now free!) see README.B32 and Makefile.B32.
|
|
Borland can also compile the lame_enc.dll, but this is untested.
|
|
|
|
Can DJGPP or Mingw32 produce lame_enc.dll?
|
|
|
|
Various build options can be set in configMS.h
|
|
|