# Do not modify this file
# modify make.inc instead for platform specific compilation

include make.inc

OBJECTS = CovMat.o DistMat.o Embed.o  Error.o FragCds.o FragDist.o HierarchVars.o \
lodmats.o MultiPose.o MultiPose2MSA.o MultiPoseMix.o \
PCAstats.o pdbIO.o pdbMalloc.o pdbStats.o pdbUtils.o QuarticHornFrag.o \
RandCds.o pdbSSM.o \
ProcGSLSVD.o ProcGSLSVDOcc.o ProcJacobiSVD.o \
GibbsMet.o \
qcprot.o \
termcol.o theseuslib.o

all:				libs progs

libs:				ldistfit lDLTutils lmsa ldltmath ldssplite ltheseus

progs:				theseus


ldistfit:
					( cd libdistfit; $(MAKE) && cp libdistfit.a ../lib  )

lDLTutils:
					( cd libDLTutils; $(MAKE) && cp libDLTutils.a ../lib  )

lmsa:
					( cd libmsa; $(MAKE) && cp libmsa.a ../lib  )

ldltmath:
					( cd libdltmath; $(MAKE) && cp libdltmath.a ../lib  )

ldssplite:
					( cd libdssplite; $(MAKE) && cp libdssplite.a ../lib  )

distfitexe:
					$(CC) $(OPT) $(CFLAGS) -c distfit.c
					$(CC) $(OPT) $(CFLAGS) $(LIBDIR) $(LAPACKLIBDIR) $(BLASLIBDIR) distfit.o $(LIBS) $(LAPACKLIB) $(BLASLIB) $(SYSLIBS) -o distfit


# THESEUS-specific files
theseus:			theseus.o $(OBJECTS)
					$(CC) $(OPT) $(CFLAGS) $(LIBDIR) $(LAPACKLIBDIR) $(BLASLIBDIR) theseus.o $(OBJECTS) $(LIBS) $(LAPACKLIB) $(BLASLIB) $(SYSLIBS) -o theseus

CovMat.o:			CovMat.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c CovMat.c

DistMat.o:			DistMat.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c DistMat.c

Error.o:			Error.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c Error.c

FragCds.o:			FragCds.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c FragCds.c

FragDist.o:			FragDist.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c FragDist.c

HierarchVars.o:		HierarchVars.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c HierarchVars.c

lodmats.o:			lodmats.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c lodmats.c

Embed.o:			Embed.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c Embed.c

MultiPose.o:		MultiPose.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c MultiPose.c

MultiPose2MSA.o:	MultiPose2MSA.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c MultiPose2MSA.c

MultiPoseMix.o:		MultiPoseMix.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c MultiPoseMix.c

PCAstats.o:			PCAstats.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c PCAstats.c

pdbIO.o:			pdbIO.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c pdbIO.c

pdbMalloc.o:		pdbMalloc.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c pdbMalloc.c

pdbStats.o:			pdbStats.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c pdbStats.c

pdbSSM.o:			pdbSSM.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c pdbSSM.c

pdbUtils.o:			pdbUtils.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c pdbUtils.c

QuarticHornFrag.o:	QuarticHornFrag.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c QuarticHornFrag.c

RandCds.o:			RandCds.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c RandCds.c

GibbsMet.o: 		GibbsMet.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c GibbsMet.c


# Superposition algorithms
Kabsch.o:			Kabsch.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c Kabsch.c
 
# Kearsley.o:			Kearsley.c
# 					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c Kearsley.c
# 
# Horn.o:				Horn.c
# 					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c Horn.c
 
ProcJacobiSVD.o:	ProcJacobiSVD.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c ProcJacobiSVD.c
# 
# ProcJacobiSVDOcc.o:	ProcJacobiSVDOcc.c
# 					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c ProcJacobiSVDOcc.c

ProcGSLSVD.o:		ProcGSLSVD.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c ProcGSLSVD.c

ProcGSLSVDOcc.o:	ProcGSLSVDOcc.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c ProcGSLSVDOcc.c

termcol.o:  		termcol.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c termcol.c

qcprot.o:			qcprot.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c qcprot.c

theseus.o:			theseus.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c theseus.c

theseuslib.o:		theseuslib.c
					$(CC) $(OPT) $(CFLAGS) $(INCDIR) -c theseuslib.c

ltheseus:			$(OBJECTS)
					$(ARCH) $(ARCHFLAGS) libtheseus.a $(OBJECTS)
					mv libtheseus.a lib/libtheseus.a
					$(RANLIB) lib/libtheseus.a

install:
					chmod +x theseus theseus_align
					cp theseus theseus_align $(INSTALLDIR)

installlibs:
					cp lib/*.a ${LOCALLIBDIR}

clean:
					find . -name '*.[oa]' -exec rm -f {} \;	
					rm -f theseus &> /dev/null

