1# For verbose output: 2# % make V=1 3# 4 5# VPATH and shell configuration 6top_srcdir = @top_srcdir@ 7srcdir = @srcdir@ 8VPATH = @srcdir@ 9SHELL = /bin/sh 10 11# Installation targets 12# 13prefix = @prefix@ 14exec_prefix = @exec_prefix@ 15datarootdir = @datarootdir@ 16bindir = @bindir@ 17libdir = @libdir@ 18includedir = @includedir@ 19mandir = @mandir@ 20docdir = @docdir@ 21pdfdir = @pdfdir@ 22mandir = @mandir@ 23man1dir = ${mandir}/man1 24man1ext = .1 25 26CC = @CC@ 27CFLAGS = @CFLAGS@ 28PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ 29PIC_CFLAGS = @PIC_CFLAGS@ 30SIMD_CFLAGS = @SSE_CFLAGS@ @VMX_CFLAGS@ 31CPPFLAGS = @CPPFLAGS@ 32LDFLAGS = @LDFLAGS@ 33DEFS = @DEFS@ 34LIBS = -linfernal -lhmmer -leasel @LIBS@ @LIBGSL@ @PTHREAD_LIBS@ -lm 35MPILIBS = @MPILIBS@ 36 37AR = @AR@ 38RANLIB = @RANLIB@ 39INSTALL = @INSTALL@ 40 41IMPLDIR = @INFERNAL_IMPLDIR@ 42ESLDIR = @INFERNAL_ESLDIR@ 43HMMERDIR = @INFERNAL_HMMERDIR@ 44 45MYLIBDIRS = -L../${ESLDIR} -L../${HMMERDIR}/src -L./${IMPLDIR} -L. 46MYINCDIRS = -I../${ESLDIR} \ 47 -I../${HMMERDIR}/src \ 48 -I${top_srcdir}/easel \ 49 -I${top_srcdir}/hmmer/src \ 50 -I. \ 51 -I${srcdir} 52 53# full list of executable programs that get built 54PROGS = cmalign\ 55 cmbuild\ 56 cmcalibrate\ 57 cmconvert\ 58 cmemit\ 59 cmfetch\ 60 cmpress\ 61 cmscan\ 62 cmsearch\ 63 cmstat\ 64 trcyk\ 65 bandcyk-montecarlo-test\ 66 bandcyk-truncation-test\ 67 cp9-test\ 68 sub_cm-test\ 69 truncyk_check 70 71# list of executable programs that get installed 72IPROGS = \ 73 cmalign\ 74 cmbuild\ 75 cmcalibrate\ 76 cmconvert\ 77 cmemit\ 78 cmfetch\ 79 cmpress\ 80 cmscan\ 81 cmsearch\ 82 cmstat 83 84PROGOBJS = \ 85 cmalign.o\ 86 cmbuild.o\ 87 cmemit.o\ 88 cmfetch.o\ 89 cmscore.o\ 90 cmsearch.o\ 91 cmstat.o\ 92 trcyk.o\ 93 bandcyk-montecarlo-test.o\ 94 bandcyk-truncation-test.o\ 95 cp9-test.o\ 96 sub_cm-test.o\ 97 truncyk_check.o 98 99HDRS = infernal.h 100 101OBJS = cm.o\ 102 cm_alidisplay.o\ 103 cm_alndata.o\ 104 cm_dpalign.o\ 105 cm_dpalign_trunc.o\ 106 cm_dpsearch.o\ 107 cm_dpsearch_trunc.o\ 108 cm_dpsmall.o\ 109 cm_file.o\ 110 cm_modelconfig.o\ 111 cm_modelmaker.o\ 112 cm_mx.o\ 113 cm_parsetree.o\ 114 cm_pipeline.o\ 115 cm_qdband.o\ 116 cm_submodel.o\ 117 cm_tophits.o\ 118 cm_trunc.o\ 119 cm_p7_band.o\ 120 cm_p7_domaindef.o\ 121 cm_p7_modelconfig_trunc.o\ 122 cm_p7_modelmaker.o\ 123 cp9.o\ 124 cp9_dp.o\ 125 cp9_modelmaker.o\ 126 cp9_mx.o\ 127 cp9_trace.o\ 128 alphabet.o\ 129 display.o\ 130 errors.o\ 131 eweight.o\ 132 hmmband.o\ 133 logsum.o\ 134 mpisupport.o\ 135 prior.o\ 136 rnamat.o\ 137 stats.o\ 138 truncyk.o 139 140BENCHMARKS = \ 141 cm_tophits_benchmark 142 143UTESTS =\ 144 cm_tophits_utest\ 145 146ITESTS =\ 147 itest_brute 148 149# Definitions present in HMMER3's Makefile that are not yet necessary in Infernal's 150#STATS = 151#EXAMPLES = 152 153# beautification magic stolen from git 154QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c 155QUIET_SUBDIR1 = 156ifndef V 157 QUIET_CC = @echo ' ' CC $@; 158 QUIET_GEN = @echo ' ' GEN $@; 159 QUIET_AR = @echo ' ' AR $@; 160 QUIET_SUBDIR0 = +@subdir= 161 QUIET_SUBDIR1 = ; echo ' ' SUBDIR $$subdir; \ 162 ${MAKE} -C $$subdir 163endif 164 165.PHONY: all dev tests check install uninstall distclean clean TAGS 166 167all: ${PROGS} .FORCE 168 169dev: ${PROGS} ${UTESTS} ${ITESTS} ${BENCHMARKS} ${EXAMPLES} .FORCE 170ifdef IMPLDIR 171 ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} dev 172endif 173 174tests: ${PROGS} ${UTESTS} ${ITESTS} .FORCE 175ifdef IMPLDIR 176 ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} tests 177endif 178 179check: ${PROGS} ${UTESTS} ${ITESTS} .FORCE 180ifdef IMPLDIR 181 ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} check 182endif 183 184libinfernal.a: libinfernal-src.stamp .FORCE 185ifdef IMPLDIR 186 ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} libinfernal-impl.stamp 187endif 188 189libinfernal-src.stamp: ${OBJS} 190 ${QUIET_AR}${AR} -r libinfernal.a $? > /dev/null 2>&1 191 @${RANLIB} libinfernal.a 192 @echo "src_lib objects compiled:\c" > $@ 193 @date >> $@ 194 195.FORCE: 196 197${OBJS}: ${HDRS} config.h 198${PROGOBJS}: ${HDRS} config.h 199 200${PROGS}: % : %.o libinfernal.a ../${HMMERDIR}/src/libhmmer.a ../${ESLDIR}/libeasel.a 201 ${QUIET_GEN}${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${DEFS} ${LDFLAGS} ${MYLIBDIRS} -o $@ $@.o ${MPILIBS} ${LIBS} 202 203.c.o: 204 ${QUIET_CC}${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${SIMD_CFLAGS} ${DEFS} ${CPPFLAGS} ${MYINCDIRS} -o $@ -c $< 205 206${ITESTS}: % : %.o libinfernal.a ../${HMMERDIR}/src/libhmmer.a ../${ESLDIR}/libeasel.a ${HDRS} config.h 207 ${QUIET_GEN}${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${DEFS} ${LDFLAGS} ${MYLIBDIRS} -o $@ $@.o ${MPILIBS} ${LIBS} 208 209${UTESTS}: libinfernal.a ${HDRS} config.h 210 @BASENAME=`echo $@ | sed -e 's/_utest//' | sed -e 's/^cm_//'` ;\ 211 DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ 212 DFLAG=CM_$${DFLAG}_TESTDRIVE ;\ 213 if test -e ${srcdir}/cm_$${BASENAME}.c; then \ 214 DFILE=${srcdir}/cm_$${BASENAME}.c ;\ 215 else \ 216 DFILE=${srcdir}/$${BASENAME}.c ;\ 217 fi;\ 218 if test ${V} ;\ 219 then echo "{CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ 220 else echo ' ' GEN $@ ;\ 221 fi ;\ 222 ${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} 223 224${BENCHMARKS}: libinfernal.a ${HDRS} config.h 225 @BASENAME=`echo $@ | sed -e 's/_benchmark//' | sed -e 's/^cm_//'` ;\ 226 DFLAG=`echo $${BASENAME} | sed -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`;\ 227 DFLAG=CM_$${DFLAG}_BENCHMARK ;\ 228 if test -e ${srcdir}/cm_$${BASENAME}.c; then \ 229 DFILE=${srcdir}/cm_$${BASENAME}.c ;\ 230 else \ 231 DFILE=${srcdir}/$${BASENAME}.c ;\ 232 fi;\ 233 if test ${V} ;\ 234 then echo "{CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS}" ;\ 235 else echo ' ' GEN $@ ;\ 236 fi ;\ 237 ${CC} ${CFLAGS} ${PTHREAD_CFLAGS} ${PIC_CFLAGS} ${CPPFLAGS} ${LDFLAGS} ${DEFS} ${MYLIBDIRS} ${MYINCDIRS} -D$${DFLAG} -o $@ $${DFILE} ${LIBS} 238 239install: 240 for file in ${IPROGS}; do \ 241 ${INSTALL} -m 0755 $$file ${DESTDIR}${bindir}/ ;\ 242 done 243# no programs currently get installed from IMPLDIR 244 245uninstall: 246 for file in ${IPROGS}; do \ 247 rm -f ${DESTDIR}${bindir}/$$file ;\ 248 done 249# no programs currently get installed from IMPLDIR 250 251distclean: clean 252ifdef IMPLDIR 253 ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} distclean 254endif 255 -rm -f Makefile config.h 256 257clean: 258ifdef IMPLDIR 259 ${QUIET_SUBDIR0}${IMPLDIR} ${QUIET_SUBDIR1} clean 260endif 261 -rm -f *.o *~ Makefile.bak core ${PROGS} ${BENCHMARKS} ${UTESTS} ${ITESTS} TAGS gmon.out 262 -rm -f libinfernal.a libinfernal-src.stamp 263 -rm -f *.gcno 264 -rm -f cscope.out 265 for prog in ${PROGS} ${BENCHMARKS} ${UTESTS} ${ITESTS}; do \ 266 if test -d $$prog.dSYM; then rm -rf $$prog.dSYM; fi ;\ 267 done 268 269 270