There are now two basic ways to get your mpg123 installation consisting of

	a) the mpg123 binary file
	b) a man page

(you may want to copy some of the documentation - README, etc - to /usr/share/doc/mpg123 or the like, too)


0. Prerequesites

You really need:

- a C compiler; we try to keep the code ANSI C89 compatible
  gcc from 2.95 on should work, others, too - please report any issues

You want:

- working assembler (recent GNU binutils) if using certain CPU optimizations

- headers and lib for certain audio output drivers (libasound for alsa, sdl for sdl...)


1. New installation via GNU autotools

The GNU 3-step procedure:

	./configure
	make
	make install

Run

	./configure --help

for a list of possible parameters you can specify. The obvious are --prefix and the normal GNU autotool bunch, but others include what audio subsystem to use and what CPU optimizations to build in.
In future we may have a merged build for the i386 platform including MMX, SSE, 3DNow!, etc. optimizations and choosing at runtime, but for now that's a build time decision.

Other important choices include --enable-gapless for enabling mpg123 to skip encoder/decoder padding for seamless transition between tracks and --with-seektable=<number> for setting the size for the table of stored frame addresses to make seeking faster. When you want a minimal memory footprint, you can set number to 0. Seeking will always start from the beginning, then - being accurate, but rather slow, what doesn't matter if you don't use interactive seeking forth and back.

2. The classic way via the provided Makefile

This is basically the known mpg123 Makefile with some mods and additions.
for coexistence with the autotools setup, a wrapper script for generating a fake config.h is needed.
You may want to edit that one in src/config.h and run make -f src/Makefile.legacy yourself, but normally run

	./MakeLegacy.sh

to get a list of targets and simply

	./MakeLegacy.sh <target>

to build. You may want to have some CFLAGS defined; these are used now in the Makefile.

	./MakeLegacy.sh install

will install the binary and man page to the dirs specified by these make variables (with default values):

PREFIX=/usr/local
BINDIR=$(PREFIX)/bin
MANDIR=$(PREFIX)/man

So, if you want it in /usr; just run

	./MakeLegacy.sh PREFIX=/usr install


Please note that the Makefile does not contain any CFLAGS or explicit `strip` calls anymore; mpg123 will be built and installed with debugging symbols - so if you want to conserve some space, please specify the -s in CFLAGS or strip the binary yourself.


3. Have fun!


These are some remarks from Michael that are likely to be still valid in essence:

 - There is currently no direct audio hardware support for the
   "dec" and "generic" targets.  That means that you have to use
   the "-s" commandline option to write the decoded audio data
   to stdout.

 - On Solaris, use Sun's SparcWorks compiler ("make solaris")
   if at all possible.  It generates faster code than gcc, so
   use gcc only if there's no other way.

 - The macro "htons" causes a compiler warning in httpget.c
   (at least on FreeBSD 2.1.x).  This can be safely ignored.

 - For Solaris 2.4:  append the options "-L/usr/ucblib -lucb"
   at the end of the link command line.  Do this ONLY for
   Solaris 2.4, NOT for Solaris 2.5 or newer versions.

 - The HP-UX port might be broken.  I was able to compile it
   on an HP-UX 9 account, but there were some problems with
   libraries on HP-UX 10.  I'm not an HP expert, but perhaps
   someone else can fix it.
   [note: some people report NO problems also with HP-UX 10]

 - IRIX: some people reported compile problems on IRIX 5.x (5.3)
         but 6.x seems to compile without problems
