##
## Sound Tools Makefile for AMIGA with SAS/C 6.3
## 	builds libst.lib and sox
##
## Amiga users may need to modify amiga.h.  For non-SAS users,
## amiga.c may need to be added to the LIBOBJS definition

## This bit is from the standard makefile

FSRC1	= raw.c voc.c au.c sf.c aiff.c hcom.c 8svx.c sndrtool.c wav.c \
	smp.c sbdsp.c auto.c cdr.c dat.c
FSRC2	= g711.c g72x.c g721.c g723_24.c g723_40.c

ESRC	= copy.c avg.c pred.c stat.c vibro.c echo.c rate.c band.c lowp.c \
	highp.c reverse.c dyn.c
PSRC	= sox.c

SOURCES   = $(PSRC) $(FSRC1) $(FSRC2) $(ESRC) handlers.c libst.c misc.c getopt.c

HEADERS   = st.h libst.h sfheader.h patchlvl.h wav.h g72x.h

TESTS     = tests.sh testall.sh monkey.au monkey.voc

MISC      = README INSTALL TODO TIPS CHEAT sox.man sox.txt st.man \
	    Makefile.unx Makefile.bor Makefile.b30 Makefile.c70 \
	    sbprog.doc voc.info Makefile.ami

SKEL	  = skel.c skeleff.c

VMS       = descrip.mms sound2au.com sound2sun.c sound2sun.opt \
	    sox.opt tests.com vms.lis

OS2	  = MakeOS2 MakeOS2.dep

OS9	  = Makefile.os9

AMIGA	  = Makefile.ami amiga.c amiga.h mkamiver.c mkamidat.rexx
AMIXTRA   = amiver.h mkamiver mkamiver.o mkamiver.lnk

FILES     = $(MISC) $(HEADERS) $(SOURCES) $(VMS) $(AMIGA) $(OS2) $(OS9) \
		$(SKEL) $(TESTS)

FOBJ	= raw.o voc.o au.o sf.o aiff.o hcom.o 8svx.o sndrtool.o wav.o \
	smp.o sbdsp.o auto.o cdr.o dat.o \
	g711.o g72x.o g721.o g723_24.o g723_40.o

EOBJ= copy.o avg.o pred.o stat.o vibro.o echo.o rate.o band.o lowp.o \
	highp.o reverse.o dyn.o

## From here out we're Amiga-specific
##
## System dependency parameters
##

# Looks like we're running out of command space, or something.
LIBOBJS1	= $(FOBJ)
LIBOBJS2	= $(EOBJ) handlers.o libst.o misc.o getopt.o

## Configure your version here:
## If you have no math coprocessor:
#FPUF	= 
#MATHLIB	= lib:scm.lib
#FPUDEFS	= 
#FPU	= 
## If you have a 68881 or 68882 coprocessor:
FPUF	= MATH=68881
MATHLIB	= lib:scm881.lib
FPUDEFS	= DEF=AMIGA_MC68881
FPU	= 881
## If you have a 68000 or 68010:
#CPUF	= 
#CPUDEFS	= 
#CPU	= 
## If you have a 68020 or higher:
CPUF	= CPU=68020
CPUDEFS	= DEF=AMIGA_MC68020
CPU	= 020

SOX	= sox$(CPU)$(FPU)

CC	= sc
# IGNore some warnings due to lack of prototyping in SOX code
O	= IGN=85 IGN=93 IGN=100 IGN=154 IGN=161 OPTIMIZE OPTIMIZERINLINELOCAL OPTIMIZERTIME OPTIMIZERALIAS
AR	= oml
AR_ARGS	= a
RM	= delete

SOUNDLIB= libst$(CPU)$(FPU).lib
CFLAGS	= $(O) DEF=__STDC__ DEF=AMIGA DEF=NEED_GETOPT $(FPUF) $(FPUDEFS) $(CPUF) $(CPUDEFS)
LIBS	= $(MATHLIB) lib:sc.lib lib:amiga.lib
##

##
## start your engines
##
default:	$(SOX)

$(SOX): sox.o $(SOUNDLIB)
	slink lib:c.o sox.o to $(SOX) lib $(SOUNDLIB) $(LIBS) SMALLCODE SMALLDATA STRIPDEBUG NOICONS

$(SOUNDLIB): $(LIBOBJS1) $(LIBOBJS2) $(LIBOBJS3) $(LIBOBJS4)
	$(AR) $(SOUNDLIB) $(AR_ARGS) $(LIBOBJS1)
	$(AR) $(SOUNDLIB) $(AR_ARGS) $(LIBOBJS2)

sox.o:		sox.c st.h

sox.c:	amiver.h

amiver.h:	mkamiver
		mkamiver >amiver.h

mkamiver:	amidate.h mkamiver.c patchlvl.h
		$(CC) $(CFLAGS) link mkamiver
		$(RM) amidate.h

amidate.h:	mkamidat.rexx
		rx mkamidat.rexx >amidate.h

sox.doc: sox.man
	$(RM) sox.doc
	nroff -man sox.man > sox.doc
	nroff -man st.man > st.doc

clean:
	$(RM) $(LIBOBJS1) $(LIBOBJS2) $(LIBOBJS3) $(LIBOBJS4) $(AMIXTRA) sox.o

which:
	@echo ""
	@echo "'make sox' will create sox$(CPU)$(FPU) and libst$(CPU)$(FPU).lib."
