############################################################################
## ISO MPEG Audio Subgroup Software Simulation Group (1996)
## ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension
##
## $Id: Makefile.in,v 1.2 1996/03/28 02:06:41 rowlands Exp $
##
## Makefile for decoder. Requires GNU make.
##
## $Log: Makefile.in,v $
## Revision 1.2  1996/03/28 02:06:41  rowlands
## Added test script
##
## Revision 1.1  1996/02/14 05:19:13  rowlands
## Initial revision
##
## 16-Dec-96	Modified for Solaris mpeg3play 0.9 by Johan Hagman
## 30-Jan-97	Added Linux gcc options
##  2-Feb-97	Added HPUX gcc and cc options
## 15-Feb-97	Amiga gcc options
## 17-Feb-97	IBM AIX options
## 22-Feb-97	Solaris/x86 options
##  3-Apr-97	FreeBSD support was added
############################################################################

# Customization flags:
#
# FSINGLE		use single precision math
# OPTIMIZE		select optimized C routines
# BUILTIN_TABLES	build lookup tables into the binary
# DETECT_CLIP		check and correct clipped samples
# ASM_OPTIMIZE		select optimized assembly functions
# INT_MATH		select integer math routines

#--- Solaris/SPARC ---
# SPARCompiler C 4.0 options
COPTS	 = -fast -xO4 -fsimple -dalign -xdepend -xlibmil -v -xildoff
AUDIODIR = /usr/demo/SOUND
LIBS	 = -L$(AUDIODIR)/lib -laudio -lmopt -lm
SOUND	 = sun
CFLAGS	 = $(COPTS) -I$(AUDIODIR)/include -DUNIX -DSOLARIS_SPARC \
	   -DBS_FORMAT=BINARY -DFSINGLE -DOPTIMIZE -DBUILTIN_TABLES \
	   -DDETECT_CLIP

#--- Solaris/x86 ---
# ProWorks 3.0.1 options
#COPTS	 = -fast -xO4 -fsimple -xlibmil -x386 -fstore -v
#AUDIODIR = /usr/demo/SOUND
#LIBS	 = -L$(AUDIODIR)/lib -laudio -lmopt -lm
#SOUND	 = sun
#CFLAGS	 = $(COPTS) -I$(AUDIODIR)/include -DUNIX -DSOLARIS_X86 \
#	   -DBS_FORMAT=BINARY -DFSINGLE -DOPTIMIZE -DBUILTIN_TABLES \
#	   -DDETECT_CLIP

#--- SunOS 4.x ---
# SPARCompiler 3.0.1 options
#CC	 = acc
#COPTS	 = -O4 -cg92 -fsimple -dalign -xlibmil -xlibmopt
#AUDIODIR = /usr/demo/SOUND
#LIBS	 = -L$(AUDIODIR) -laudio -lmopt -lm
#SOUND	 = sun
#CFLAGS	 = $(COPTS) -I$(AUDIODIR) -DUNIX -DSUNOS \
#	   -DBS_FORMAT=BINARY -DFSINGLE -DOPTIMIZE -DBUILTIN_TABLES \
#	   -DDETECT_CLIP

#--- Linux and FreeBSD ---
#CC	= gcc
#COPTS	= -DLINUX -DUNIX -O2 -m486 -funroll-loops \
#	  -fomit-frame-pointer -Wall
# The -mpentium option below won't work unless you have downloaded and
# installed the pentium-gcc patches, but it can give you a 10% decrease
# in CPU usage. Get the pgcc patches from http://www.goof.com/pcg or
# a mirror http://www.nightflight.com/~pcg.
#COPTS	= -DLINUX -DUNIX -O6 -frisc -mpentium -funroll-loops \
#	  -fomit-frame-pointer -Wall
#LIBS	= -lm
#SOUND	= vox
#CFLAGS	= $(COPTS) -DBS_FORMAT=BINARY -DOPTIMIZE \
#	  -DBUILTIN_TABLES -DDETECT_CLIP -DFSINGLE

#--- HPUX ---
# HPUX gcc options
#CC	= gcc
#COPTS	= -DHPUX -DUNIX -DNO_MODFF -O6 -funroll-loops -fomit-frame-pointer
#LIBS	= -lm
#SOUND	= hpux
#CFLAGS	= $(COPTS) -DBS_FORMAT=BINARY \
#	  -DOPTIMIZE -DBUILTIN_TABLES -DDETECT_CLIP
#
# HPUX cc options
#CC	= cc
#COPTS	= -Ae -DHPUX -DUNIX -DNO_MODFF +O3
#LIBS	= -lm
#SOUND	= hpux
#CFLAGS = $(COPTS) -DBS_FORMAT=BINARY \
#	  -DOPTIMIZE -DBUILTIN_TABLES -DDETECT_CLIP

#--- IBM AIX ---
#CC	= cc
#CCOPTS	= -DUNIX -DAIX -g -O3
#LIBS	= -lm
#SOUND	= aix
#CFLAGS	= $(CCOPTS) -DBS_FORMAT=BINARY \
#	  -DOPTIMIZE -DBUILTIN_TABLES -DDETECT_CLIP -DFSINGLE -DNO_MODFF

#--- Amiga ---
# Amiga ADE gcc options
#CC	= gcc
#COPTS	= -DAMIGA -DUNIX -DNO_MODFF -O3 -funroll-loops -fomit-frame-pointer \
#	  -m68040 -m68881 -mstackextend
#LIBS	= -lm
#SOUND	= amiga
#CFLAGS	= $(COPTS) -DBS_FORMAT=BINARY \
#	  -DOPTIMIZE -DBUILTIN_TABLES -DDETECT_CLIP

headers	= common.h decoder.h huffman.h ieeefloat.h portableio.h sound.h

c_sources = tables.c portableio.c common.c ieeefloat.c huffman.c \
	  musicout.c decode.c sound-$(SOUND).c

OBJS	= tables.o portableio.o ieeefloat.o huffman.o \
	  musicout.o decode.o common.o sound-$(SOUND).o

PGM = mpeg3play

all: $(PGM)

$(PGM):	$(OBJS) Makefile
	$(CC) $(CFLAGS) -o $(PGM) $(OBJS) $(LIBS)
	strip $(PGM)

%.S: %.c
	$(CC) -S $(CFLAGS) -o $@ $<

clean:
	-rm -f $(OBJS) *~ core gmon.out
