top_srcdir  = ../..
srcdir      = .

SHELL       = /bin/sh

prefix      = /nfs/amino-home/zcx/Projects/EVfold/ext/HMMER
exec_prefix = ${prefix}
datarootdir = ${prefix}/share
bindir      = ${exec_prefix}/bin
libdir      = ${exec_prefix}/lib
includedir  = ${prefix}/include

CC          = gcc -std=gnu99
CFLAGS      = -O3 -fomit-frame-pointer -fstrict-aliasing -march=core2 -pthread -fPIC
SIMDFLAGS   = -msse2
CPPFLAGS    = 
LDFLAGS     = -static
DEFS        = -DHAVE_CONFIG_H
LIBS        = -lhmmer -leasel  -lm

AR          = /usr/bin/ar 
RANLIB      = ranlib
INSTALL     = /usr/bin/install -c

ESLDIR         = easel
MYLIBDIRS      = -L../../${ESLDIR} -L.. 
MYINCDIRS      = -I../../${ESLDIR} \
		 -I${top_srcdir}/easel \
		 -I. \
		 -I.. \
		 -I${srcdir} \
		 -I${top_srcdir}/src \
		 -I${srcdir}/.. 

OBJS =  decoding.o\
	fwdback.o\
	io.o\
	ssvfilter.o\
	msvfilter.o\
	null2.o\
	optacc.o\
	stotrace.o\
	vitfilter.o\
	p7_omx.o\
	p7_oprofile.o\
	mpi.o

HDRS =  impl_sse.h

UTESTS = \
	decoding_utest\
	fwdback_utest\
	io_utest\
	msvfilter_utest\
	null2_utest\
	optacc_utest\
	stotrace_utest\
	vitfilter_utest

BENCHMARKS = \
	decoding_benchmark\
	fwdback_benchmark\
	msvfilter_benchmark\
	null2_benchmark\
	optacc_benchmark\
	stotrace_benchmark\
	vitfilter_benchmark

EXAMPLES =\
	fwdback_example\
	io_example\
	msvfilter_example\
	optacc_example\
	p7_oprofile_example\
	stotrace_example\
	vitfilter_example

# beautification magic stolen from git 
QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c
QUIET_SUBDIR1 = 
ifndef V
	QUIET_CC      = @echo '    ' CC $@;
	QUIET_GEN     = @echo '    ' GEN $@;
	QUIET_AR      = @echo '    ' AR $@;
	QUIET_SUBDIR0 = +@subdir=
	QUIET_SUBDIR1 = ; echo '    ' SUBDIR $$subdir; \
		        ${MAKE} -C $$subdir
endif

.PHONY: all dev check tests install uninstall distclean clean 


all:   libhmmer-impl.stamp
dev:   ${UTESTS} ${BENCHMARKS} ${EXAMPLES}
check: ${UTESTS}
tests: ${UTESTS}

libhmmer-impl.stamp: ${OBJS}
	${QUIET_AR}${AR} -r ../libhmmer.a $? > /dev/null 2>&1
	@${RANLIB} ../libhmmer.a
	@echo "impl_lib objects compiled:\c" > $@
	@date >> $@

.FORCE:

${OBJS}:   ${HDRS} ../hmmer.h 

.c.o:  
	${QUIET_CC}${CC} ${CFLAGS} ${SIMDFLAGS} ${CPPFLAGS} ${DEFS} ${PTHREAD_CFLAGS} ${MYINCDIRS} -o $@ -c $<

${UTESTS}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h
	@BASENAME=`echo $@ | sed -e 's/_utest//'| sed -e 's/^p7_//'` ;\
	DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\
	DFLAG=p7$${DFLAG}_TESTDRIVE ;\
	if test -e ${srcdir}/p7_$${BASENAME}.c; then \
           DFILE=${srcdir}/p7_$${BASENAME}.c ;\
        else \
           DFILE=${srcdir}/$${BASENAME}.c ;\
	fi;\
	if test ${V} ;\
	   then echo "${CC} ${CFLAGS} ${SIMDFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\
	   else echo '    ' GEN $@ ;\
	fi ;\
	${CC} ${CFLAGS} ${SIMDFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}

${BENCHMARKS}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h
	@BASENAME=`echo $@ | sed -e 's/_benchmark//' | sed -e 's/^p7_//'`;\
	DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\
	DFLAG=p7$${DFLAG}_BENCHMARK ;\
	if test -e ${srcdir}/p7_$${BASENAME}.c; then \
           DFILE=${srcdir}/p7_$${BASENAME}.c ;\
        else \
           DFILE=${srcdir}/$${BASENAME}.c ;\
	fi;\
	if test ${V} ;\
	   then echo "${CC} ${CFLAGS} ${SIMDFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\
	   else echo '    ' GEN $@ ;\
	fi ;\
	${CC} ${CFLAGS} ${SIMDFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}

${EXAMPLES}: libhmmer-impl.stamp ../libhmmer.a ${HDRS} ../hmmer.h
	@BASENAME=`echo $@ | sed -e 's/_example//'| sed -e 's/^p7_//'` ;\
	DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\
	DFLAG=p7$${DFLAG}_EXAMPLE ;\
	if test -e ${srcdir}/p7_$${BASENAME}.c; then \
           DFILE=${srcdir}/p7_$${BASENAME}.c ;\
        else \
           DFILE=${srcdir}/$${BASENAME}.c ;\
	fi;\
	if test ${V} ;\
	   then echo "${CC} ${CFLAGS} ${SIMDFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\
	   else echo '    ' GEN $@ ;\
	fi ;\
	${CC} ${CFLAGS} ${SIMDFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}


install:
	for file in ${HDRS}; do \
	   ${INSTALL} -m 0644 ${srcdir}/$$file ${DESTDIR}${includedir}/ ;\
	done

uninstall:
	for file in ${HDRS}; do \
	   rm -f ${DESTDIR}${includedir}/$$file ;\
	done

distclean: clean
	-rm -f Makefile 

clean:
	-rm -f libhmmer-impl.stamp
	-rm -f ${UTESTS}
	-rm -f ${BENCHMARKS}
	-rm -f ${EXAMPLES}
	-rm -f *.o *~ Makefile.bak core TAGS gmon.out cscope.out
	-rm -f *.gcno
	for prog in ${UTESTS} ${BENCHMARKS} ${EXAMPLES}; do\
	   if test -d $$prog.dSYM; then rm -rf $$prog.dSYM; fi;\
	done

################################################################
# HMMER - Biological sequence analysis with profile HMMs
# Version 3.1b2; February 2015
# Copyright (C) 2015 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
# 
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/3.1/src/impl_sse/Makefile.in $
# SVN $Id: Makefile.in 4321 2012-11-27 16:15:47Z wheelert $
################################################################

