| 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 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. |
| #define BRHIST to allow the optional display of the VBR histogram |
| |
| |
| |
| ======================================================================= |
| 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) |
| |
| --enable-brhist Include the VBR bitrate histogram feature |
| (default:yes if any ncurses/termcap available)" |
| |
| |
| 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) |
| ======================================================================= |
| 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 MSDOS 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 |
| |
| |
| |