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

OBJECTS = theseus.o \
CovMat.o DistMat.o Embed.o  Error.o FragCoords.o FragDist.o HierarchVars.o \
LedoitWolf.o MultiPose.o MultiPose2MSA.o MultiPoseMix.o \
PCAstats.o pdbIO.o pdbMalloc.o pdbStats.o pdbUtils.o QuarticHornFrag.o \
RandCoords.o pdbSSM.o \
ProcLAPACKSVDOcc.o ProcLAPACKSVD.o

all:				libs progs

libs:				ldistfit lDLTutils lmsa ldltmath ldssplite

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:			$(OBJECTS)
					$(CC) $(OPT) $(CFLAGS) $(LIBDIR) $(LAPACKLIBDIR) $(BLASLIBDIR) $(OBJECTS) $(LIBS) $(LAPACKLIB) $(BLASLIB) $(SYSLIBS) -o theseus

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

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

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

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

FragCoords.o:		FragCoords.c
					$(CC) $(OPT) $(CFLAGS) -c FragCoords.c

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

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

LedoitWolf.o:		LedoitWolf.c
					$(CC) $(OPT) $(CFLAGS) -c LedoitWolf.c

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

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

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

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

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

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

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

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

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

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

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

RandCoords.o:		RandCoords.c
					$(CC) $(OPT) $(CFLAGS) -c RandCoords.c


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

ProcLAPACKSVD.o:	ProcLAPACKSVD.c
					$(CC) $(OPT) $(CFLAGS) -c ProcLAPACKSVD.c

ProcLAPACKSVDOcc.o:	ProcLAPACKSVDOcc.c
					$(CC) $(OPT) $(CFLAGS) -c ProcLAPACKSVDOcc.c


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

clean:
					find . -name '*.[oa]' -exec rm {} \;	

