################################################################
# Makefile for QRNA: Development version
# (Linux version)
##########
# @LICENSE@
###########


VERSION = 
VDATE   = 

## where you want things installed
BINDIR  = $(HOME)/bin
MANDIR  = $(HOME)/man

## where are the squid library, include, and source files?
SQUIDDIR    = ../squid
SQUIDSRCDIR = ../squid

SQUIDDIR02    = ../squid02
SQUIDSRCDIR02 = ../squid02

## your compiler
CC = gcc
#CC = cc

## any special compiler flags you want
#  -pedantic clashes with -DMEMDEBUG??
#
#CFLAGS = -g -Wall -pedantic 
#CFLAGS = -TARG:exc_max 
#CFLAGS = -g -fullwarn -wlint,-fviah
CFLAGS = -O -m32
#CFLAGS = -p # profiling #
#CFLAGS = -64 -Ofast=ip27   #specific warhorse compiler#

## machine specific definitions
#  None should be needed
#
# Development:
# -DASSERT        Diagnostics level 1. Assertions. 
# -DVERBOSE       Diagnostics level 2. Verbosity.  (unused at the moment)
# -DMEMDEBUG      Diagnostics level 3. Memory checking. (maybe slow!)
#                                      (must link w/ -ldbmalloc) 
# -DLINTING       Suppress overzealous warnings from gcc -Wall and lint   
#
#MDEFS = -DLINTING -DASSERT -DMEMDEBUG
MDEFS = -DASSERT 
 
## how to install the man pages 
## cp is fine
INSTMAN   = cp
MANSUFFIX = 1

## Your compression program
COMPRESS = gzip               # GNU compression (better, smaller)
#COMPRESS = compress          # generic UNIX compress (portable)

#######
## should not need to modify below this line
#######
SHELL  = /bin/sh
#LIBS   = -lsquid -lm -dbmalloc
LIBS = -lsquid -lm 

READMES = README 
#INSTALL COPYING DEMO GNULICENSE FILES

PROGS = main cfgbuild eqrna eqrna_sample shuffle rnamat_main
       

MANSRC= 

DOCS =  

SQUIDPROGS = alistat getseq seqstat sreformat

HDRS =  cfg.h funcs.h evolfuncs.h globals.h structs.h rnamat.h nstack.h

MAIN =  main.c cfgbuild.c  eqrna.c eqrna_sample.c shuffle.c rnamat_main.c

SQUIDSRC = aligneval.c  alignio.c   cluster.c   dayhoff.c\
           file.c       getopt.c    gsi.c       hsregex.c   interleaved.c\
           iupac.c      msf.c       revcomp.c   selex.c\
           sqerror.c    sqio.c      sre_ctype.c sre_math.c\
           sre_string.c stack.c     translate.c types.c\
           weight.c

SQUIDHDRS = squid.h sqfuncs.h

SRC =  cfgio.c cfgmodel.c cfgparse.c\
       codcreatealign.c coddp.c coddpscanfast.c codmodel.c codon.c codscorealign.c\
       er_math.c evd.c\
       evolcodmodel.c evolemissions.c evolmisc.c evolothmodel.c evolnullmodel.c evolqrnaversion.c\
       evolriboprob.c evolrnadp.c evolrnadpscanfast.c evolrnamodel.c evolrnascorealign.c\
       evolscorewithmodels.c evolscorewithmodelscanfast.c\
       evolve.c\
       globals.c hexamer.c matrix.c misc.c nrnscfg.c nullmodel.c\
       othcreatealign.c othmodel.c othdp.c othdpscanfast.c othscorealign.c\
       posterior.c\
       qrnaversion.c\
       riboprob.c\
       rnacreatealign.c rnadp.c rnadpscanfast.c rnaio.c rnamodel.c rnaoutput.c rnascorealign.c rnascfg.c rnascfgscanfast.c\
       scorewithmodels.c scorewithmodelscanfast.c seqio.c trace.c traceSCFG.c tying.c 

SRC2 =  globals.c nstack.c rnamat.c 

OBJ =  cfgio.o cfgmodel.o cfgparse.o\
       codcreatealign.o coddp.o coddpscanfast.o codmodel.o codon.o codscorealign.o\
       er_math.o evd.o\
       evolcodmodel.o evolemissions.o evolmisc.o evolothmodel.o evolnullmodel.o evolqrnaversion.o\
       evolriboprob.o evolrnadp.o evolrnadpscanfast.o evolrnamodel.o evolrnascorealign.o\
       evolscorewithmodels.o evolscorewithmodelscanfast.o\
       evolve.o\
       globals.o hexamer.o matrix.o misc.o nrnscfg.o nullmodel.o\
       othcreatealign.o othmodel.o othdp.o othdpscanfast.o othscorealign.o\
       posterior.o\
       qrnaversion.o\
       riboprob.o\
       rnacreatealign.o rnadp.o rnadpscanfast.o rnaio.o rnamodel.o rnaoutput.o rnascorealign.o rnascfg.o rnascfgscanfast.o\
       scorewithmodels.o scorewithmodelscanfast.o seqio.o trace.o traceSCFG.o tying.o

OBJ2 =  globals.o nstack.o rnamat.o 

DISTFILES = $(MAIN) $(SRC) $(SRC2) $(HDRS) $(MANSRC) $(READMES) $(DOCS)

TESTSUITE = 

DEMOS = 

all: 	$(PROGS)

main:              $(OBJ) main.o
	           $(CC) $(CFLAGS) -o $@ -L$(SQUIDDIR) $@.o  $(LIBS)
cfgbuild:          $(OBJ) cfgbuild.o
	           $(CC) $(CFLAGS) -o $@ -L$(SQUIDDIR) $@.o $(OBJ) $(LIBS)
eqrna:             $(OBJ) eqrna.o
	           $(CC) $(CFLAGS) -o $@ -L$(SQUIDDIR) $@.o $(OBJ) $(LIBS)
eqrna_sample:      $(OBJ) eqrna_sample.o
	           $(CC) $(CFLAGS) -o $@ -L$(SQUIDDIR) $@.o $(OBJ) $(LIBS)
shuffle:           $(OBJ) shuffle.o
	           $(CC) $(CFLAGS) -o $@ -L$(SQUIDDIR) $@.o $(OBJ) $(LIBS)
rnamat_main:       $(OBJ2) rnamat_main.o
	           $(CC) $(CFLAGS) -o $@ -L$(SQUIDDIR02) $@.o $(OBJ2) $(LIBS)

main.o:            ../src/main.c
	           $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
cfgbuild.o:        ../src/cfgbuild.c
	           $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
eqrna.o:           ../src/eqrna.c
	           $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
eqrna_sample.o:    ../src/eqrna_sample.c
	           $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
shuffle.o:         ../src/shuffle.c
	           $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnamat_main.o:     ../src/rnamat_main.c
	           $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR02) -c $?	

cfgio.o:                      ../src/cfgio.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
cfgmodel.o:                   ../src/cfgmodel.c
		              $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
cfgparse.o:                   ../src/cfgparse.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
codcreatealign.o:             ../src/codcreatealign.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
coddp.o:                      ../src/coddp.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
coddpscanfast.o:              ../src/coddpscanfast.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
codmodel.o:                   ../src/codmodel.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
codon.o:                      ../src/codon.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
codscorealign.o:              ../src/codscorealign.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
er_math.o:                    ../src/er_math.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
er_vectop.o:                  ../src/er_vectop.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR02) -c $?	
evd.o:                        ../src/evd.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolcodmodel.o:               ../src/evolcodmodel.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolemissions.o:              ../src/evolemissions.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolmisc.o:                   ../src/evolmisc.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolnullmodel.o:              ../src/evolnullmodel.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolothmodel.o:               ../src/evolothmodel.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolqrnaversion.o:            ../src/evolqrnaversion.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolscorewithmodels.o:        ../src/evolscorewithmodels.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolscorewithmodelscanfast.o: ../src/evolscorewithmodelscanfast.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolriboprob.o:               ../src/evolriboprob.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolrnadp.o:                  ../src/evolrnadp.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolrnadpscanfast.o:          ../src/evolrnadpscanfast.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolrnamodel.o:               ../src/evolrnamodel.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolrnascorealign.o:          ../src/evolrnascorealign.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
evolve.o:                     ../src/evolve.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
globals.o:                    ../src/globals.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
hexamer.o:                    ../src/hexamer.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
matrix.o:                     ../src/matrix.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
misc.o:                       ../src/misc.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
nrnscfg.o:                    ../src/nrnscfg.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
nstack.o:                     ../src/nstack.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR02) -c $?	
nullmodel.o:                  ../src/nullmodel.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
othcreatealign.o:             ../src/othcreatealign.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
othdp.o:                      ../src/othdp.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
othdpscanfast.o:              ../src/othdpscanfast.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
othmodel.o:                   ../src/othmodel.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
othscorealign.o:              ../src/othscorealign.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
posterior.o:                  ../src/posterior.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
qrnaversion.o:                ../src/qrnaversion.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
riboprob.o:                   ../src/riboprob.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnacreatealign.o:             ../src/rnacreatealign.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnadp.o:                      ../src/rnadp.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnadpscanfast.o:              ../src/rnadpscanfast.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnaio.o:                      ../src/rnaio.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnamat.o:                     ../src/rnamat.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR02) -c $?	
rnamodel.o:                   ../src/rnamodel.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnaoutput.o:                  ../src/rnaoutput.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnascorealign.o:              ../src/rnascorealign.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnascfg.o:                    ../src/rnascfg.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
rnascfgscanfast.o:            ../src/rnascfgscanfast.c
	                      $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
scorewithmodels.o:           ../src/scorewithmodels.c
	                     $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
scorewithmodelscanfast.o:    ../src/scorewithmodelscanfast.c
	                     $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
seqio.o:                     ../src/seqio.c
	                     $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
trace.o:                     ../src/trace.c
	                     $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
traceSCFG.o:                 ../src/traceSCFG.c
	                     $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
tying.o:                     ../src/tying.c
	                     $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	


install: $(PROGS)
	cp $(PROGS) $(BINDIR)/

clean:
	-rm -f *.o *~ *.Addrs *.Counts *.pixie Makefile.bak core $(PROGS) TAGS

tags:
	etags -t $(DISTFILES)

dist:
	@if test -d ncrnascan-$(VERSION);        then rm -rf ncrnascan-$(VERSION);    fi
	@if test -f ncrnascan-$(VERSION).tar.gz; then rm ncrnascan-$(VERSION).tar.gz; fi
	@if test -f ncrnascan-$(VERSION).tar.Z;  then rm ncrnascan-$(VERSION).tar.Z;  fi
	mkdir ncrnascan-$(VERSION)/
	cp $(DISTFILES) ncrnascan-$(VERSION)/
	for squidfile in $(SQUIDSRC); do \
	  cp $(SQUIDSRCDIR)/$$squidfile ncrnascan-$(VERSION)/;\
	done
	for squidfile in $(SQUIDHDRS); do \
	  cp $(SQUIDSRCDIR)/$$squidfile ncrnascan-$(VERSION)/;\
	done
	cp Makefile.dist ncrnascan-$(VERSION)/Makefile
	mkdir ncrnascan-$(VERSION)/Testsuite
	for testfile in $(TESTSUITE); do \
	  cp Testsuite/$$testfile ncrnascan-$(VERSION)/Testsuite/;\
	done
	mkdir ncrnascan-$(VERSION)/Demos
	for demofile in $(DEMOS); do\
	  cp Demos/$$demofile ncrnascan-$(VERSION)/Demos/;\
	done
	tar cvf ncrnascan-$(VERSION).tar ncrnascan-$(VERSION)
	$(COMPRESS) ncrnascan-$(VERSION).tar

test:   
	(cd Testsuite; testsuite.sh)

lint:
	lint -h -I$(SQUIDDIR) $(RFLAGS) $(MAIN) $(SRC) $(SQUIDDIR)/llib-lsquid.ln\
	/usr/lib/lint/llib-lm.ln

.c.o:
	$(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $<		

.m.o:
	$(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $<







