#------------------------------------------------------------------------------
#       file:   makefile
#       desc:   makefile for matrix library package using gcc
#               and for feasible cross-validation
#       date: August, 1996
#------------------------------------------------------------------------------

OBJS = matcreat.o matdump.o materr.o matadd.o matsub.o \
matmul.o matinv.o matsolve.o mattran.o matdet.o \
matsubx.o matsubm.o matsubmm.o

SOURCE = matcreat.c matdump.c materr.c matadd.c matsub.c \
matmul.c matinv.c matsolve.c mattran.c matdet.c \
matsubx.c matsubm.c matsubmm.c

# -g flag for 32 debug...
# -O2 for optimization...
# -DUNIX for unix
# -DSECS_TIME for timing rounding to seconds
# -DMILLI_TIME for timing rounding to milliseconds using gcc
#
# to use, type `make feas_cv' for the feasible version, `make standard'
# for the standard approach.

CC = gcc -O9 -DSECS_TIME -DBANNER -DUNIX
LIBS = -lm -lpc

feas_cv: feas_cv.c $(SOURCE) $(OBJS)
	$(CC) -o feas_cv.exe feas_cv.c $(OBJS) $(LIBS)

standard: standard.c $(SOURCE) $(OBJS)
	$(CC) -o standard.exe standard.c $(OBJS) $(LIBS)

matcreat.o:	matcreat.c matrix.h
	$(CC) -c matcreat.c

matdump.o:	matdump.c matrix.h
	$(CC) -c matdump.c

materr.o:	materr.c matrix.h
	$(CC) -c materr.c

matadd.o:	matadd.c matrix.h
	$(CC) -c matadd.c

matsub.o:	matsub.c matrix.h
	$(CC) -c matsub.c

matmul.o:	matmul.c matrix.h
	$(CC) -c matmul.c

matinv.o:	matinv.c matrix.h
	$(CC) -c matinv.c

matsolve.o:	matsolve.c matrix.h
	$(CC) -c matsolve.c

mattran.o:	mattran.c matrix.h
	$(CC) -c mattran.c

matdet.o:	matdet.c matrix.h
	$(CC) -c matdet.c

matsubx.o:	matsubx.c matrix.h
	$(CC) -c matsubx.c

matsubm.o:	matsubm.c matrix.h
	$(CC) -c matsubm.c

matsubmm.o:	matsubmm.c matrix.h
	$(CC) -c matsubmm.c

# Clean up..

clean:
	rm *.o

