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