# Toplevel makefile for Otools-1.0
#----------------------------------

#------------------------------------------------------------------------------
# To compile on newer linux systems:	-I/usr/X11R6/include
# To compile on sun4:			-I/local/X11R5/include
# Some systems may want this:		-I$(PWD)/Lib

INC=	-I$(PWD)/Lib -I/usr/X11R6/include

#------------------------------------------------------------------------------
# To compile on newer linux systems:	-L/usr/X11R6/lib
# Older systems require (boo):		-lX11

LNK=	-L/usr/X11R6/lib -lX11 -lm

#------------------------------------------------------------------------------
# Linux: AR = ar rcs
# Sun4:  AR = ar rc

AR=	ar rcs

#------------------------------------------------------------------------------
# Special setup to use with ranlib, don't use ranlib on sgi systems

RAN=	@test $(HOSTTYPE) = "sgi" && echo Not using ranlib. || ranlib

#------------------------------------------------------------------------------
# Verbose warning messages: -Wall -Wstrict-prototypes
# Optimizing:               -O2 -funroll-loops -funroll-all-loops

FLAGS=	-O2 -funroll-loops

#------------------------------------------------------------------------------
# Standard setup

CC=	gcc
OBJ=	Lib/Chain.o Lib/Figlet.o Lib/otools.o Lib/Colors.o
HDR=	Lib/otools.h Lib/macros.h Lib/protos.h Lib/colors.h
LIB=	Lib/Otools.a

PRG=	smp p01 p02 Xmix Xplay
PGO=	

#==============================================================================
# Programs

all:	$(LIB) $(PRG)
	@strip $(PRG)

smp:	Source/smp.o $(LIB) $(HDR)
	-$(CC) $(INC) $(FLAGS) Source/$@.o $(LIB) -o $@ $(LNK)

p01:	Source/p01.o $(LIB) $(HDR)
	-$(CC) $(INC) $(FLAGS) Source/$@.o $(LIB) -o $@ $(LNK)

p02:	Source/p02.o $(LIB) $(HDR)
	-$(CC) $(INC) $(FLAGS) Source/$@.o $(LIB) -o $@ $(LNK)

Xmix:	Source/Xmix.o $(LIB) $(HDR)
	-$(CC) $(INC) $(FLAGS) Source/$@.o $(LIB) -o $@ $(LNK)

Xplay:	Source/Xplay.o $(LIB) $(HDR)
	-$(CC) $(INC) $(FLAGS) Source/$@.o $(LIB) -o $@ $(LNK)

#------------------------------------------------------------------------------
# Compiling the library etc.

$(LIB):	$(OBJ) $(HDR)
	$(AR) $@ $(OBJ)
	$(RAN) $@

#------------------------------------------------------------------------------
# Rules

.cc.o:
	-$(CC) $(INC) $(FLAGS) -c $< -o $@

clean:
	rm -f *.o core a.out *~ $(OBJ) $(LIB) $(PRG) $(PGO) Source/*.o
