1#################################################################
2# Infernal
3# src Makefile
4
5SHELL  = /bin/sh
6
7## your compiler and compiler flags
8#
9CC     = @CC@
10CFLAGS = @CFLAGS@
11
12## other defined flags.
13#  DEFS contains stuff that autoconf decides on.
14#  LIBS contains system libraries that the configure script decides we need.
15#
16DEFS  = @DEFS@
17LIBS  = @LIBS@ -lm
18
19## archiving command, and ranlib command if you need one.
20#  In general, you shouldn't need to change these, and they're
21#  only used for building the testsuite anyway... e.g. we
22#  make a "libinfernal.a" library for building the testsuite.
23#
24AR     = @AR@ rcv
25RANLIB = @RANLIB@
26
27# configuration for optional MPI functionality
28MPILIBS   = @MPILIBS@
29
30# Where the build arena is (module .h and .o files)
31#
32MYLIBS   = -leasel
33MYLIBDIR = -L../../easel
34MYINCDIR = -I../../easel
35
36PROGS = cmalign cmbuild cmcalibrate cmemit cmscore cmsearch cmstat trcyk truncyk_check
37
38OBJS  = cm.o\
39	cm_dpalign.o\
40	cm_dpsearch.o\
41	cm_dpsmall.o\
42	cm_io.o\
43	cm_modelconfig.o\
44	cm_modelmaker.o\
45	cm_mx.o\
46	cm_parsetree.o\
47	cm_qdband.o\
48	cm_submodel.o\
49	cp9.o\
50	cp9_dp.o\
51	cp9_modelconfig.o\
52	cp9_modelmaker.o\
53	cp9_mx.o\
54	cp9_trace.o\
55	alphabet.o\
56	dispatch.o\
57	display.o\
58	eweight.o\
59	errors.o\
60	hmmband.o\
61	hybridsearch.o\
62	logsum.o\
63	mpisupport.o\
64	prior.o\
65	rnamat.o\
66	searchinfo.o\
67	seqstoaln.o\
68	stats.o\
69	truncyk.o
70
71HDRS  = funcs.h\
72	structs.h
73
74.c.o:
75	$(CC) $(CFLAGS) $(DEFS) $(MYINCDIR) -c $<
76
77#################################################################
78## Targets defining how to make INFERNAL executables.
79##
80all: 	$(PROGS)
81
82$(PROGS): % : %.o $(OBJS) ${HDRS}
83	$(CC) $(CFLAGS) $(DEFS) $(MYLIBDIR) -o $@ $@.o $(OBJS) $(MYLIBS) $(LIBS) $(MPILIBS)
84
85
86#################################################################
87## Targets used in making INFERNAL module for testsuite compilation.
88##
89module: libinfernal.a
90
91libinfernal.a: $(OBJS) ${HDRS}
92	$(AR) libinfernal.a $(OBJS)
93	$(RANLIB) libinfernal.a
94	chmod 644 libinfernal.a
95
96#################################################################
97## Miscellaneous targets.
98##
99clean:
100	-rm -f *.o *~ Makefile.bak core $(PROGS) TAGS gmon.out libinfernal.a
101
102distclean:
103	-rm -f *.o *~ Makefile.bak core $(PROGS) TAGS gmon.out libinfernal.a
104	-rm -f Makefile config.h
105
106TAGS:
107	etags -t *.c *.h Makefile.in
108
109
110#################################################################
111## For building as a library with an SSU-ALIGN distribution.
112##
113ssu: module
114	mv cmalign ssu-cmalign
115	mv cmbuild ssu-cmbuild
116	mv cmcalibrate ssu-cmcalibrate
117	mv cmemit ssu-cmemit
118	mv cmscore ssu-cmscore
119	mv cmsearch ssu-cmsearch
120	mv cmstat ssu-cmstat
121