################################################################
# 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

## 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
#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 = qrna cfgbuild
       

MANSRC= 

DOCS =  

SQUIDPROGS = alistat getseq seqstat sreformat

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

MAIN =  main.c cfgbuild.c qrna.c qrna_sample.c qrna_evolve.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 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 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)
qrna:              $(OBJ) qrna.o
	           $(CC) $(CFLAGS) -o $@ -L$(SQUIDDIR) $@.o $(OBJ) $(LIBS)
qrna_sample:       $(OBJ) qrna_sample.o
	           $(CC) $(CFLAGS) -o $@ -L$(SQUIDDIR) $@.o $(OBJ) $(LIBS)
qrna_evolve:       $(OBJ) qrna_evolve.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 $?	
qrna.o:                   ../src/qrna.c
	                  $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
qrna_sample.o:            ../src/qrna_sample.c
	                  $(CC) $(CFLAGS) $(MDEFS) -I$(SQUIDDIR) -c $?	
qrna_evolve.o:            ../src/qrna_evolve.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 $?	
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 $<







