OBJECTS =	Xplorigin.o\
                cBlock.o\
		cBothWaysStates.o\
		cDip.o\
		cDipSet.o\
		cDipStateCounter.o\
		cFirstStates.o\
		cHap.o\
		cHiPrecision.o\
		cMarkers.o\
		cMatRow.o\
		cModel.o\
		cModelBlockStates.o\
		cModelHap.o\
		cModelHapSet.o\
		cModelPair.o\
		cNextStates.o\
		cParameters.o\
		cPrintable.o\
		cProbBaseDir.o\
		cProbBwd.o\
		cProbData.o\
		cProbDirDataVec.o\
		cProbDirection.o\
		cProbFwd.o\
		cProbFwdBwd.o\
		cProbNoDir.o\
		cProbSample.o\
		cSelfStates.o\
		cTransMat.o\
		cVecHiPrec.o

#CFLAGS = -O
CFLAGS = -g -pedantic

#CC = /util/bin/gcc-3.3.2
#CC = /usr/bin/gcc
CC = g++
#CC = /util/bin/g++-3.3.2
#CC = /fg/hapmap_scratch/Kosrae/BRLMM/AddDM/src/Purify/yamd-0.32/yamd-g++
.cc.o:
	$(CC) -c $(CFLAGS) $<

OS             = $(shell uname -s)

bin/$(OS)/Xplorigin: Xplorigin.o libhmm.a
	$(CC) $(CFLAGS) $<  -L./ -lhmm -lc -lm -lstdc++ -o $@
# -L/fg/hapmap_scratch/Kosrae/BRLMM/AddDM/src/Purify/yamd-0.32 
#	$(CC) $(CFLAGS) $<  -lstdc++ -lm -L./  -ltag -o $@


cDipSet.o: cDipSet.cc
	$(CC) -c cDipSet.cc

libhmm.a: $(OBJECTS)
	ar r libhmm.a $(OBJECTS)

OBJECTS_DUP = 	Duplicate.o\
		cInputFromHmp.o\
                cInputFromHapsPed.o\
		cProcessInfoFile.o\
		cDiscardFromHmp.o\
		cDiscardFromInfo.o\
		cMergeDiscard.o

cInputFromHmp.o: cInputFromHmp.cc
	$(CC) -c cInputFromHmp.cc 

libdup.a: $(OBJECTS_DUP)
	ar r libdup.a $(OBJECTS_DUP)

bin/$(OS)/Duplicate: Duplicate.o libdup.a
	$(CC) $(CFLAGS) $<  -L./ -ldup -lc -lm -lstdc++ -o $@

OBJECTS_MERGE = cMergeBlocks.o

cMergeBlocks.o: cMergeBlocks.cc
	$(CC) -c cMergeBlocks.cc

libmrg.a: $(OBJECTS_MERGE)
	ar r libmrg.a $(OBJECTS_MERGE)

bin/$(OS)/Merge: Merge.o libmrg.a
	$(CC) $(CFLAGS) $<  -L./ -lmrg -lc -lm -lstdc++ -o $@

all: bin/$(OS)/Duplicate bin/$(OS)/Xplorigin bin/$(OS)/Merge

clean:
	/bin/rm *.o libhmm.a Main Xplorigin Duplicate Merge 

depend:
	makedepend
# DO NOT DELETE
