#############################################
# Gnu gcc

ifndef CC
CC            	= gcc
endif
ifndef CXX
CXX           	= g++
endif
CCC           	= g++
CCLIB         	= g++
RNNDIR		= ./RNNs
#BOOST		= -I./boost # if you have your own personal boost distribution
#BOOST		= -I/usr/include/boost
CINCLUDES     	= -I$(RNNDIR) $(BOOST)
#WARNINGS      	= -Wall
WARNINGS      	= -Wno-deprecated
CODEOPT       	= -O3
RAN 		= ranlib
DEBUG         	= #-g -DDEBUG
PROFILE       	= #-pg
# end of edit

#LIBS       	= -L/home/alex/lib/

CXXFLAGS      	+= $(DEFINES) $(WARNINGS) -ftemplate-depth-36 -fpermissive 
CFLAGS        	+= $(DEFINES) $(WARNINGS) 
LDFLAGS       	= $(CODEOPT) $(DEBUG)
LD            	= $(CXX) #$(LDFLAGS)

.cpp.o:
	$(CXX) $(CINCLUDES) $(CODEOPT) $(DEBUG) $(CXXFLAGS) $(PROFILE) -c $< -o $@
SOURCES.cpp= \
	$(RNNDIR)/Node.cpp \
	$(RNNDIR)/StructureSearch.cpp \
	$(RNNDIR)/DataSet.cpp \
	$(RNNDIR)/DPAG.cpp \
	$(RNNDIR)/Options.cpp \
	protein_util.cpp \
	blast_util.cpp \
	rnn_util.cpp

SOURCES.h= \
	$(RNNDIR)/require.h \
	$(RNNDIR)/util.h \
	$(RNNDIR)/ActivationFunctions.h \
	$(RNNDIR)/DataSet.h \
	$(RNNDIR)/DPAG.h \
	$(RNNDIR)/ErrorMinimizationProcedure.h \
	$(RNNDIR)/Node.h \
	$(RNNDIR)/Options.h \
	$(RNNDIR)/RecursiveNN.h \
	$(RNNDIR)/StructureSearch.h \
	protein_util.h \
	blast_util.h \
	rnn_util.h

OBJECTS = $(SOURCES.cpp:%.cpp=%.o)

TARGETS = disulfind-conn 

all: ${TARGETS}

disulfind-conn: $(OBJECTS) disulfind-conn.o deps.mk
	$(LD) $(OBJECTS) disulfind-conn.o -o $@ $(PROFILE) $(LDFLAGS)

disulfind-conn.o: $(SOURCES.cpp) disulfind-conn.cpp $(SOURCES.h)
	$(CXX) $(CINCLUDES) $(WARNINGS) $(CODEOPT) $(DEBUG) $(CXXFLAGS) $(PROFILE) -c disulfind-conn.cpp

clean:
	rm -f *.o core
	rm -f $(RNNDIR)/*.o $(RNNDIR)/core $(TARGETS)

deps.mk: $(SOURCES.h) $(SOURCES.cpp) Makefile
	$(CXX) -MM $(CINCLUDES) $(CXXFLAGS) $(SOURCES.h) $(SOURCES.cpp) disulfind-conn.cpp > deps.mk 

# DO NOT DELETE

include deps.mk

