# Makefile for libbiokit

.SILENT:

.SUFFIXES: 

TCLFILES = libbiokit.tcl metric.tcl pkgIndex.tcl
PKGVERSION = 1.0
PKGNAME = libbiokit


AR= ar
ARFLAGS = cr
RANLIB = ranlib

COMPILEDIR = ../compile
ARCHDIR=${COMPILEDIR}/lib_${ARCH}/tcl/${PKGNAME}${PKGVERSION}
SRCDIR=src
INCDIR=-Isrc
VPATH = src ${ARCHDIR}

#
# Rules
#
bins: ${ARCHDIR} ${ARCHDIR}/percid ${ARCHDIR}/qpair ${ARCHDIR}/rmsd ${ARCHDIR}/seqqr ${ARCHDIR}/structqr
win32bins: ${ARCHDIR} ${ARCHDIR}/percid.exe ${ARCHDIR}/qpair.exe ${ARCHDIR}/rmsd.exe ${ARCHDIR}/seqqr.exe ${ARCHDIR}/structqr.exe
dynlibs:
staticlibs: 
win32staticlibs: 

distrib:
	echo "Copying ${PKGNAME} $(PKGVERSION) files to"
	for localname in `find ../compile -name percid -o -name percid.exe -o -name qpair -o -name qpair.exe -o -name rmsd -o -name rmsd.exe -o -name seqqr -o -name seqqr.exe -o -name structqr -o -name structqr.exe` ; do \
		pluginname=`echo $$localname | sed s/..\\\/compile\\\/lib_// `; \
		dir=`dirname $(PLUGINDIR)/$$pluginname`; \
		mkdir -p $$dir; \
		echo "    $$dir"; \
		cp $$localname $$dir; \
        cp $(TCLFILES) $$dir; \
	done
    
${ARCHDIR}:
	mkdir -p ${ARCHDIR}

OBJS = ${ARCHDIR}/alignedSequence.o \
	${ARCHDIR}/alignedStructure.o \
	${ARCHDIR}/alnReader.o \
	${ARCHDIR}/alphabet.o \
	${ARCHDIR}/alphabetBuilder.o \
	${ARCHDIR}/coordinate3D.o \
	${ARCHDIR}/fastaReader.o \
	${ARCHDIR}/fastaWriter.o \
	${ARCHDIR}/pdbReader.o \
	${ARCHDIR}/qTools.o \
	${ARCHDIR}/rmsdTools.o \
	${ARCHDIR}/sequence.o \
	${ARCHDIR}/sequenceAlignment.o \
	${ARCHDIR}/sequenceQR.o \
	${ARCHDIR}/structure.o \
	${ARCHDIR}/structureAlignment.o \
	${ARCHDIR}/structureAlignmentReader.o \
	${ARCHDIR}/structureQR.o \
	${ARCHDIR}/symbol.o \
	${ARCHDIR}/symbolList.o \
	${ARCHDIR}/typeConvert.o


# percid
${ARCHDIR}/percid.exe: ${ARCHDIR}/percid.o ${OBJS}
	LINK ${ARCHDIR}/percid.o ${OBJS} /OUT:${ARCHDIR}/percid.exe
${ARCHDIR}/percid: ${ARCHDIR}/percid.o ${OBJS}
	${CXX} ${CXXFLAGS} ${ARCHDIR}/percid.o ${OBJS} -o ${ARCHDIR}/percid -lm
${ARCHDIR}/percid.o: ${SRCDIR}/percid.cpp
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/percid.cpp $(COPTO)${ARCHDIR}/percid.o

# qpair
${ARCHDIR}/qpair.exe: ${ARCHDIR}/qPair.o ${OBJS}
	LINK ${ARCHDIR}/qPair.o ${OBJS} /OUT:${ARCHDIR}/qpair.exe
${ARCHDIR}/qpair: ${ARCHDIR}/qPair.o ${OBJS}
	${CXX} ${CXXFLAGS} ${ARCHDIR}/qPair.o ${OBJS} -o ${ARCHDIR}/qpair -lm
${ARCHDIR}/qPair.o: ${SRCDIR}/qPair.cpp
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/qPair.cpp $(COPTO)${ARCHDIR}/qPair.o

# rmsd
${ARCHDIR}/rmsd.exe: ${ARCHDIR}/rmsd.o ${OBJS}
	LINK ${ARCHDIR}/rmsd.o ${OBJS} /OUT:${ARCHDIR}/rmsd.exe
${ARCHDIR}/rmsd: ${ARCHDIR}/rmsd.o ${OBJS}
	${CXX} ${CXXFLAGS} ${ARCHDIR}/rmsd.o ${OBJS} -o ${ARCHDIR}/rmsd -lm
${ARCHDIR}/rmsd.o: ${SRCDIR}/rmsd.cpp
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/rmsd.cpp $(COPTO)${ARCHDIR}/rmsd.o

# seqqr
${ARCHDIR}/seqqr.exe: ${ARCHDIR}/seqqr.o ${OBJS}
	LINK ${ARCHDIR}/seqqr.o ${OBJS} /OUT:${ARCHDIR}/seqqr.exe
${ARCHDIR}/seqqr: ${ARCHDIR}/seqqr.o ${OBJS}
	${CXX} ${CXXFLAGS} ${ARCHDIR}/seqqr.o ${OBJS} -o ${ARCHDIR}/seqqr -lm
${ARCHDIR}/seqqr.o: ${SRCDIR}/seqqr.cpp
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/seqqr.cpp $(COPTO)${ARCHDIR}/seqqr.o

# structqr
${ARCHDIR}/structqr.exe : ${ARCHDIR}/structqr.o ${OBJS}
	LINK ${ARCHDIR}/structqr.o ${OBJS} /OUT:${ARCHDIR}/structqr.exe
${ARCHDIR}/structqr: ${ARCHDIR}/structqr.o ${OBJS}
	${CXX} ${CXXFLAGS} ${ARCHDIR}/structqr.o ${OBJS} -o ${ARCHDIR}/structqr -lm
${ARCHDIR}/structqr.o: ${SRCDIR}/structqr.cpp
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/structqr.cpp $(COPTO)${ARCHDIR}/structqr.o
    
# Library objects.
${ARCHDIR}/alignedSequence.o: ${SRCDIR}/alignedSequence.cpp ${SRCDIR}/alignedSequence.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/alignedSequence.cpp $(COPTO)${ARCHDIR}/alignedSequence.o
${ARCHDIR}/alignedStructure.o: ${SRCDIR}/alignedStructure.cpp ${SRCDIR}/alignedStructure.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/alignedStructure.cpp $(COPTO)${ARCHDIR}/alignedStructure.o
${ARCHDIR}/alnReader.o: ${SRCDIR}/alnReader.cpp ${SRCDIR}/alnReader.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/alnReader.cpp $(COPTO)${ARCHDIR}/alnReader.o
${ARCHDIR}/alphabet.o: ${SRCDIR}/alphabet.cpp ${SRCDIR}/alphabet.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/alphabet.cpp $(COPTO)${ARCHDIR}/alphabet.o
${ARCHDIR}/alphabetBuilder.o: ${SRCDIR}/alphabetBuilder.cpp ${SRCDIR}/alphabetBuilder.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/alphabetBuilder.cpp $(COPTO)${ARCHDIR}/alphabetBuilder.o
${ARCHDIR}/coordinate3D.o: ${SRCDIR}/coordinate3D.cpp ${SRCDIR}/coordinate3D.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/coordinate3D.cpp $(COPTO)${ARCHDIR}/coordinate3D.o
${ARCHDIR}/fastaReader.o: ${SRCDIR}/fastaReader.cpp ${SRCDIR}/fastaReader.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/fastaReader.cpp $(COPTO)${ARCHDIR}/fastaReader.o
${ARCHDIR}/fastaWriter.o: ${SRCDIR}/fastaWriter.cpp ${SRCDIR}/fastaWriter.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/fastaWriter.cpp $(COPTO)${ARCHDIR}/fastaWriter.o
${ARCHDIR}/pdbReader.o: ${SRCDIR}/pdbReader.cpp ${SRCDIR}/pdbReader.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/pdbReader.cpp $(COPTO)${ARCHDIR}/pdbReader.o
${ARCHDIR}/qTools.o: ${SRCDIR}/qTools.cpp ${SRCDIR}/qTools.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/qTools.cpp $(COPTO)${ARCHDIR}/qTools.o
${ARCHDIR}/rmsdTools.o: ${SRCDIR}/rmsdTools.cpp ${SRCDIR}/rmsdTools.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/rmsdTools.cpp $(COPTO)${ARCHDIR}/rmsdTools.o
${ARCHDIR}/sequence.o: ${SRCDIR}/sequence.cpp ${SRCDIR}/sequence.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/sequence.cpp $(COPTO)${ARCHDIR}/sequence.o
${ARCHDIR}/sequenceAlignment.o: ${SRCDIR}/sequenceAlignment.cpp ${SRCDIR}/sequenceAlignment.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/sequenceAlignment.cpp $(COPTO)${ARCHDIR}/sequenceAlignment.o
${ARCHDIR}/sequenceQR.o: ${SRCDIR}/sequenceQR.cpp ${SRCDIR}/sequenceQR.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/sequenceQR.cpp $(COPTO)${ARCHDIR}/sequenceQR.o
${ARCHDIR}/structure.o: ${SRCDIR}/structure.cpp ${SRCDIR}/structure.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/structure.cpp $(COPTO)${ARCHDIR}/structure.o
${ARCHDIR}/structureAlignment.o: ${SRCDIR}/structureAlignment.cpp ${SRCDIR}/structureAlignment.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/structureAlignment.cpp $(COPTO)${ARCHDIR}/structureAlignment.o
${ARCHDIR}/structureAlignmentReader.o: ${SRCDIR}/structureAlignmentReader.cpp ${SRCDIR}/structureAlignmentReader.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/structureAlignmentReader.cpp $(COPTO)${ARCHDIR}/structureAlignmentReader.o
${ARCHDIR}/structureQR.o: ${SRCDIR}/structureQR.cpp ${SRCDIR}/structureQR.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/structureQR.cpp $(COPTO)${ARCHDIR}/structureQR.o
${ARCHDIR}/symbol.o: ${SRCDIR}/symbol.cpp ${SRCDIR}/symbol.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/symbol.cpp $(COPTO)${ARCHDIR}/symbol.o
${ARCHDIR}/symbolList.o: ${SRCDIR}/symbolList.cpp ${SRCDIR}/symbolList.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/symbolList.cpp $(COPTO)${ARCHDIR}/symbolList.o
${ARCHDIR}/typeConvert.o: ${SRCDIR}/typeConvert.cpp ${SRCDIR}/typeConvert.h
	${CXX} ${CXXFLAGS} ${INCDIR} -c ${SRCDIR}/typeConvert.cpp $(COPTO)${ARCHDIR}/typeConvert.o

