CXX = g++
CPPFLAGS = -O3 -fopenmp
LDFLAGS = -O3
OPENMPFLAGS = -fopenmp

TARGET = assemble
OBJECTS = calignment.o Con_Qual.o contig.o Cons_Aln_Refn.o Cons_Seg_Graph.o Cons_Ctg_Cons.o Cons_mulaln.o Cons_Nod_Aln.o correct_err.o domain.o getseqs.o Graph_bestmatepath.o Graph_bubble.o Graph_ovlk_rpl.o Graph_repeat_sep.o Graph_rm_Contr.o Graph_Scf_rpl.o Graph_simbbl.o Graph_unp_Stig.o Graph_simple_path.o Graph_structure.o Graph_subg_Scf.o Graph_subgraph.o Graph_superpath.o Graph_Suptig_Assbl.o kmer.o layout_cons_exchange.o localalign.o main.o mates.o Mate_Pair.o matrixsol.o output.o ovl.o poperate.o probfunc.o sequencetransform.o short_assembly.o supplement_Gap.o Trans.o Trans_to_graph.o

.PHONY : all
all : $(TARGET) 

$(TARGET) : $(OBJECTS)
	$(CXX) $(LDFLAGS) $(OPENMPFLAGS) -o assemble $(OBJECTS)

calignment.o : typedefbase.h sequencetransform.h localalign.h probfunc.h poperate.h
Con_Qual.o : contig.h Mate_Pair.h assemblybank.h
Cons_Aln_Refn.o : Cons_Seg_Graph.h
Cons_Seg_Graph.o : cons.h
Cons_Ctg_Cons.o : cons.h
Cons_mulaln.o : cons.h Cons_Seg_Graph.h Cons_Aln_Refn.h Cons_Ctg_Cons.h Cons_Nod_Aln.h
Cons_Nod_Aln.o : Cons_Seg_Graph.h
contig.o : typedefbase.h sequencetransform.h calignment.h
correct_err.o : contig.h calignment.h assemblybank.h Trans.h
domain.o : link.h matrixsol.h 
getseqs.o : typedefbase.h sequencetransform.h Trans.h
Graph_bestmatepath.o : Graph_unp_Stig.h
Graph_bubble.o : Graph_subgraph.h Graph_Suptig_Assbl.h Graph_ovlk_rpl.h Graph_rm_Contr.h
Graph_ovlk_rpl.o : Graph_subgraph.h poperate.h
Graph_repeat_sep.o : Graph_subgraph.h Graph_rm_Contr.h Graph_Suptig_Assbl.h Graph_ovlk_rpl.h
Graph_rm_Contr.o : Graph_subgraph.h Graph_Suptig_Assbl.h poperate.h
Graph_Scf_rpl.o : Graph_subgraph.h
Graph_simbbl.o : Graph_subgraph.h Graph_Scf_rpl.h Graph_Suptig_Assbl.h
Graph_unp_Stig.o : Graph_subgraph.h Graph_Suptig_Assbl.h Graph_ovlk_rpl.h Graph_rm_Contr.h Graph_subg_Scf.h
Graph_simple_path.o : Graph_subgraph.h Graph_rm_Contr.h
Graph_structure.o : Graph_subgraph.h Graph_simbbl.h Graph_subg_Scf.h Graph_superpath.h Graph_rm_Contr.h Graph_bubble.h Graph_simple_path.h Graph_repeat_sep.h Graph_unp_Stig.h Graph_bestmatepath.h
Graph_subg_Scf.o : Graph_subgraph.h
Graph_subgraph.o : Graph_Bank.h link.h poperate.h
Graph_superpath.o : Graph_subgraph.h Graph_Suptig_Assbl.h 
Graph_Suptig_Assbl.o : Graph_subgraph.h Graph_ovlk_rpl.h poperate.h Graph_Scf_rpl.h
kmer.o : Trans.h contig.h
layout_cons_exchange.o : Cons_mulaln.h calignment.h contig.h assemblybank.h
localalign.o : typedefbase.h
main.o : config.h typedefbase.h sequencetransform.h short_assembly.h kmer.h getseqs.h contig.h calignment.h output.h link.h matrixsol.h Trans_to_graph.h
mates.o : contig.h probfunc.h seed.h
Mate_Pair.o : 
matrixsol.o : 
output.o : calignment.h contig.h sequencetransform.h link.h assemblybank.h
ovl.o : calignment.h kmer.h sequencetransform.h assemblybank.h link.h 
poperate.o : 
probfunc.o : 
sequencetransform.o : typedefbase.h
short_assembly.o : kmer.h calignment.h contig.h ovl.h assemblybank.h link.h layout_cons_exchange.h output.h correct_err.h Trans_to_graph.h Con_Qual.h supplement_Gap.h matrixsol.h domain.h
supplement_Gap.o : Graph_subgraph.h link.h contig.h Graph_Scf_rpl.h output.h calignment.h Trans_to_graph.h assemblybank.h
Trans.o : 
Trans_to_graph.o : Graph_Bank.h Graph_subgraph.h link.h contig.h Graph_Scf_rpl.h Graph_structure.h output.h assemblybank.h


.PHONY : clean
clean :
	@rm -f $(TARGET) $(OBJECTS) tracedbtrans trim *.o

.PHONY : remove
remove :
	@rm -f *.cpp
	@rm -f *.h
	@rm -f *.o
	@rm -f Makefile

