
               Compiling LAME with DJGPP

by S.T.L. and Christopher Wise <cwise@ses.swin.edu.au>

(LAME's homepage is http://www.sulaco.org/mp3, and LAME is distributed
under the LGPL. More information is in the README file)

============================================================================
Also, check out:

http://www.chat.ru/~lame_djgpp/lame_djgpp.htm
============================================================================

(Note: S.T.L. doesn't know C programming (...yet) but he has learned
how to compile things with DJGPP. He's not providing his E-mail address
here because he wouldn't know how to answer any questions even if you
asked him!)

Compiling LAME with DJGPP is actually somewhat easy, though not as easy
as you might expect at first glance. Here are step-by-step instructions
on how to compile LAME with the latest version of DJGPP. S.T.L. runs a
Pentium III 600Mhz system using Windows 98 SE. These instructions should
work on any Windows 9x system and probably Windows 2000 as well, and for
all true Intel Pentium III, Pentium II, Celeron, or Pentium Pro processors.
The instructions can be made to work (with less optimization) on other
processors including Pentium (MMX or not), 486, 386, and K6. Also this
might work under DOS, but I haven't tried it. S.T.L. takes no responsibility
for what you do with these instructions. Now, let's get compiling!

1) Find and install DJGPP.  It's at www.delorie.com. They have a Zip Picker
there that makes the process easy and painless.  Make sure you also
get the utilities "MAKE.EXE" and "AR.EXE".  


2) Download the LAME sourcecode, preferably the latest version. Extract it
to a directory using WinZip or another decompressor set to preserve the
directory structure. Hopefully you already have done this, as you're reading
this file!

3) Open an MSDOS window and cd into the directory with the LAME source
code (the directory with all the .c and .h files, README, INSTALL,
etc)

4) From the dos prompt, run:  

   make -f Makefile.DJGPP.  

5) To compile a faster version of LAME.EXE, edit "Makefile.DJGPP"
   and experiment with some of the other settings given for
   CC_OPTS.  

6) Have fun!

Notes on optimization: 

Using some of the settings for CC_OPTS won't work for non-P6-core processors.
The key is the -march=i686
option. If you are running a Pentium (MMX or not), use -march=i586. For
the 386 and 486, the option should now be self-explanatory! For a K6
processor, use -march=k6 . For any other type of processor, you'll just
have to not use the -march option at all, which will cost you some
optimization. If you'd like to create an executable that runs fast on
[modern computer X], say a Pentium III, but you still want it to be
able to run on any i386 or later computer, use the -mcpu=[CPU TYPE
HERE], using the same cpu types as -march= accepts.  The
mcpu option gives less optimization, though.


