1PREFIX = /usr/local
2LIBDIR = $(PREFIX)/libexec/mafft
3BINDIR = $(PREFIX)/bin
4MANDIR = $(PREFIX)/share/man/man1
5
6#MNO_CYGWIN = -mno-cygwin
7
8ENABLE_MULTITHREAD = -Denablemultithread
9# Comment out the above line if your compiler
10# does not support TLS (thread-local strage).
11
12CC = gcc
13#CFLAGS = -O3
14#CFLAGS = -O3 -fPIC
15# add -fPIC when building .so files
16
17#CC = icc
18#CFLAGS = -fast
19# if you have icc, use this.
20
21#CFLAGS =  -O0  -fPIC -pedantic -Wall -std=c99 -g -pg -DMALLOC_CHECK_=3
22CFLAGS =  -fPIC -O0  -fPIC -pedantic -Wall -std=c99 -g -DMALLOC_CHECK_=3 # for shark, valgrind
23
24
25MYCFLAGS = $(MNO_CYGWIN) $(ENABLE_MULTITHREAD) $(CFLAGS)
26
27ifdef ENABLE_MULTITHREAD
28LIBS = -lm  -lpthread
29else
30LIBS = -lm
31endif
32
33INSTALL = install
34
35PROGS = dvtditr dndfast7 dndblast sextet5 mafft-distance pairlocalalign \
36		pair2hat3s multi2hat3s pairash addsingle \
37        splittbfast disttbfast tbfast mafft-profile f2cl mccaskillwrap contrafoldwrap countlen \
38		seq2regtable regtable2seq score getlag dndpre setcore replaceu restoreu setdirection makedirectionlist version
39SOS = libdisttbfast.so
40DLLS = libdisttbfast.dll
41DYLIBS = libdisttbfast.dylib
42
43PERLPROGS = mafftash_premafft.pl seekquencer_premafft.pl
44SCRIPTS = mafft mafft-homologs.rb
45OBJSETDIRECTION = mtxutl.o io.o setdirection.o defs.o mltaln9.o
46OBJREPLACEU = mtxutl.o io.o replaceu.o defs.o mltaln9.o
47OBJRESTOREU = mtxutl.o io.o restoreu.o defs.o mltaln9.o
48OBJREGTABLE2SEQ = mtxutl.o io.o regtable2seq.o defs.o mltaln9.o
49OBJSEQ2REGTABLE = mtxutl.o io.o seq2regtable.o defs.o
50OBJCOUNTLEN = mtxutl.o io.o countlen.o defs.o
51OBJF2CL = mtxutl.o io.o f2cl.o constants.o defs.o
52OBJMCCASKILLWRAP = mtxutl.o io.o mccaskillwrap.o constants.o defs.o mltaln9.o
53OBJCONTRAFOLDWRAP = mtxutl.o io.o contrafoldwrap.o constants.o defs.o mltaln9.o
54OBJMULTI2HAT3S = mtxutl.o io.o mltaln9.o tddis.o constants.o \
55				 multi2hat3s.o defs.o fft.o fftFunctions.o
56OBJPAIR2HAT3S = mtxutl.o io.o mltaln9.o tddis.o constants.o \
57				pair2hat3s.o defs.o fft.o fftFunctions.o
58OBJPAIRASH = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o \
59			 Falign.o MSalignmm.o Galign11.o MSalign11.o suboptalign11.o genalign11.o Lalign11.o SAalignmm.o \
60			 pairash.o defs.o fft.o fftFunctions.o
61OBJPAIRLOCALALIGN = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o \
62		            Falign.o MSalignmm.o Galign11.o MSalign11.o suboptalign11.o genalign11.o Lalign11.o SAalignmm.o \
63					pairlocalalign.o defs.o fft.o fftFunctions.o
64OBJDUMMY = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o \
65		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
66			disttbfast_dummy.o dummy.o defs.o fft.o fftFunctions.o
67OBJSPLITFROMALN = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  \
68		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
69			Lalign11.o splitfromaln.o defs.o fft.o fftFunctions.o
70OBJSPLITTBFAST = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  \
71		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
72			Lalign11.o splittbfast.o defs.o fft.o fftFunctions.o
73OBJSPLITTBFAST2 = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  \
74		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
75			Lalign11.o splittbfast2.o defs.o fft.o fftFunctions.o
76OBJSPLITTBFASTP = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o \
77		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
78			Lalign11.o defs.o fft.o fftFunctions.o
79OBJDISTTBFAST = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  \
80		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
81			disttbfast.o defs.o fft.o fftFunctions.o addfunctions.o
82OBJMAKEDIRECTIONLIST = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  \
83		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
84			Lalign11.o makedirectionlist.o defs.o fft.o fftFunctions.o addfunctions.o
85OBJTBFAST = mtxutl.o io.o mltaln9.o tddis.o constants.o MSalignmm.o partSalignmm.o Lalignmm.o rna.o Salignmm.o \
86		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o \
87			tbfast.o defs.o fft.o fftFunctions.o addfunctions.o
88OBJADDSINGLE = mtxutl.o io.o mltaln9.o tddis.o constants.o MSalignmm.o partSalignmm.o Lalignmm.o rna.o Salignmm.o \
89		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o \
90			addsingle.o defs.o fft.o fftFunctions.o addfunctions.o
91OBJTBFAST2 = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  MSalignmm.o \
92		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o \
93			tbfast2.o defs.o fft.o fftFunctions.o
94OBJSETCORE = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o \
95		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
96			setcore.o defs.o fft.o fftFunctions.o
97OBJTDITR = mtxutl.o io.o mltaln9.o tddis.o constants.o nj.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  \
98		   Falign.o Falign_localhom.o Galign11.o fftFunctions.o fft.o  \
99		   tditeration.o tditr.o defs.o SAalignmm.o treeOperation.o
100OBJDVTDITR = mtxutl.o io.o mltaln9.o tddis.o constants.o nj.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  \
101			Falign.o Falign_localhom.o Galign11.o MSalignmm.o fftFunctions.o fft.o  \
102			tditeration.o dvtditr.o defs.o SAalignmm.o treeOperation.o addfunctions.o
103OBJGETLAG = mtxutl.o io.o mltaln9.o tddis.o constants.o partSalignmm.o Lalignmm.o rna.o Salignmm.o  \
104		    Falign.o Falign_localhom.o Galign11.o SAalignmm.o MSalignmm.o \
105			getlag.o defs.o fft.o fftFunctions.o
106OBJGAPFILL = mtxutl.o io.o constants.o gapfill.o defs.o
107OBJDNDFAST5 = dndfast5.o io.o constants.o mtxutl.o mltaln9.o tddis.o defs.o
108OBJDNDBLAST = dndblast.o io.o constants.o mtxutl.o mltaln9.o tddis.o defs.o
109OBJDNDFAST7 = dndfast7.o io.o constants.o mtxutl.o mltaln9.o tddis.o defs.o
110OBJDNDFAST6 = dndfast6.o io.o constants.o mtxutl.o mltaln9.o tddis.o defs.o
111OBJDNDFAST4 = dndfast4.o io.o constants.o mtxutl.o mltaln9.o tddis.o defs.o
112OBJDNDFAST6 = dndfast6.o io.o constants.o mtxutl.o mltaln9.o tddis.o defs.o
113OBJSEXTET5 = io.o constants.o mtxutl.o mltaln9.o tddis.o sextet5.o defs.o
114OBJDISTANCE = io.o constants.o mtxutl.o mltaln9.o tddis.o mafft-distance.o defs.o
115OBJTRIPLET6 = io.o constants.o mtxutl.o mltaln9.o tddis.o triplet6.o defs.o
116OBJTRIPLET5 = io.o constants.o mtxutl.o mltaln9.o tddis.o triplet5.o defs.o
117OBJOCTET4 = io.o constants.o mtxutl.o mltaln9.o tddis.o octet4.o defs.o
118OBJDNDPRE = dndpre.o io.o constants.o mtxutl.o mltaln9.o defs.o
119OBJGALN = io.o mtxutl.o mltaln9.o tddis.o constants.o partSalignmm.o MSalignmm.o Lalignmm.o rna.o Salignmm.o \
120          SAalignmm.o Galign11.o Falign.o Falign_localhom.o fftFunctions.o fft.o mafft-profile.o defs.o
121OBJSCORE = io.o mtxutl.o mltaln9.o score.o constants.o defs.o
122
123HEADER = mltaln.h mtxutl.h mafft.h
124FFTHEADER = fft.h
125
126MANPAGES = mafft.1 mafft-homologs.1
127
128
129
130
131all : $(PERLPROGS) $(PROGS) $(SCRIPTS)
132	cp $(SCRIPTS) ../scripts
133	chmod 755 ../scripts/*
134	cp $(PERLPROGS) $(PROGS) ../binaries
135	chmod 755 ../binaries/*
136	cp $(MANPAGES) ../binaries
137	@echo done.
138
139sos : $(SOS)
140dylibs : $(DYLIBS)
141dlls : $(DLLS)
142
143univscript: univscript.tmpl Makefile
144	sed "s:_PROGS:$(PROGS):" univscript.tmpl  > univscript
145
146mafft: mafft.tmpl mltaln.h
147	sed "s:_LIBDIR:$(LIBDIR):" mafft.tmpl  > mafft
148
149mafft-homologs.rb: mafft-homologs.tmpl
150#	cp mafft-homologs.tmpl mafft-homologs.rb
151	sed "s:_BINDIR:$(BINDIR):" mafft-homologs.tmpl  > mafft-homologs.rb
152
153mltaln.h : functions.h
154	touch mltaln.h
155
156version : version.c mltaln.h
157	$(CC) -o $@ version.c $(MYCFLAGS) $(LDFLAGS)
158
159tbfast : $(OBJTBFAST)
160	$(CC) -o $@ $(OBJTBFAST) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
161
162addsingle : $(OBJADDSINGLE)
163	$(CC) -o $@ $(OBJADDSINGLE) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
164
165tbfast2 : $(OBJTBFAST2)
166	$(CC) -o $@ $(OBJTBFAST2) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
167
168disttbfast : $(OBJDISTTBFAST)
169	$(CC) -o $@ $(OBJDISTTBFAST) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
170
171libdisttbfast.so : $(OBJDISTTBFAST)
172	$(CC) -shared -o $@ $(OBJDISTTBFAST) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
173
174libdisttbfast.dylib : $(OBJDISTTBFAST)
175	$(CC) -dynamiclib -o $@ $(OBJDISTTBFAST) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
176
177libdisttbfast.dll : $(OBJDISTTBFAST)
178	$(CC) -shared -o $@ $(OBJDISTTBFAST) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
179
180makedirectionlist : $(OBJMAKEDIRECTIONLIST)
181	$(CC) -o $@ $(OBJMAKEDIRECTIONLIST) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
182
183splittbfast : $(OBJSPLITTBFAST)
184	$(CC) -o $@ $(OBJSPLITTBFAST) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
185
186splitfromaln : $(OBJSPLITFROMALN)
187	$(CC) -o $@ $(OBJSPLITFROMALN) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
188
189splittbfast2 : $(OBJSPLITTBFAST2)
190	$(CC) -o $@ $(OBJSPLITTBFAST2) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
191
192dummy : $(OBJDUMMY)
193	$(CC) -o $@ $(OBJDUMMY) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
194
195setcore : $(OBJSETCORE)
196	$(CC) -o $@ $(OBJSETCORE) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
197
198countlen : $(OBJCOUNTLEN)
199	$(CC) -o $@ $(OBJCOUNTLEN) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
200
201seq2regtable : $(OBJSEQ2REGTABLE)
202	$(CC) -o $@ $(OBJSEQ2REGTABLE) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
203
204regtable2seq : $(OBJREGTABLE2SEQ)
205	$(CC) -o $@ $(OBJREGTABLE2SEQ) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
206
207setdirection : $(OBJSETDIRECTION)
208	$(CC) -o $@ $(OBJSETDIRECTION) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
209
210replaceu : $(OBJREPLACEU)
211	$(CC) -o $@ $(OBJREPLACEU) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
212
213restoreu : $(OBJRESTOREU)
214	$(CC) -o $@ $(OBJRESTOREU) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
215
216f2cl : $(OBJF2CL)
217	$(CC) -o $@ $(OBJF2CL) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
218
219mccaskillwrap : $(OBJMCCASKILLWRAP)
220	$(CC) -o $@ $(OBJMCCASKILLWRAP) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
221
222contrafoldwrap : $(OBJCONTRAFOLDWRAP)
223	$(CC) -o $@ $(OBJCONTRAFOLDWRAP) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
224
225pairlocalalign : $(OBJPAIRLOCALALIGN)
226	$(CC) -o $@ $(OBJPAIRLOCALALIGN) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
227
228pairash : $(OBJPAIRASH)
229	$(CC) -o $@ $(OBJPAIRASH) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
230
231pair2hat3s : $(OBJPAIR2HAT3S)
232	$(CC) -o $@ $(OBJPAIR2HAT3S) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
233
234multi2hat3s : $(OBJMULTI2HAT3S)
235	$(CC) -o $@ $(OBJMULTI2HAT3S) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
236
237getlag : $(OBJGETLAG)
238	$(CC) -o $@ $(OBJGETLAG) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
239
240tditr : $(OBJTDITR)
241	$(CC) -o $@ $(OBJTDITR) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
242
243dvtditr : $(OBJDVTDITR)
244	$(CC) -o $@ $(OBJDVTDITR) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
245
246mafft-profile : $(OBJGALN)
247	$(CC) -o $@ $(OBJGALN) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
248
249gapfill : $(OBJGAPFILL)
250	$(CC) -o $@ $(OBJGAPFILL) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
251
252dndfast4 : $(OBJDNDFAST4)
253	$(CC) -o $@ $(OBJDNDFAST4) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
254
255dndfast5 : $(OBJDNDFAST5)
256	$(CC) -o $@ $(OBJDNDFAST5) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
257
258dndfast6 : $(OBJDNDFAST6)
259	$(CC) -o $@ $(OBJDNDFAST6) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
260
261dndfast7 : $(OBJDNDFAST7)
262	$(CC) -o $@ $(OBJDNDFAST7) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
263
264dndblast : $(OBJDNDBLAST)
265	$(CC) -o $@ $(OBJDNDBLAST) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
266
267dndfast3 : $(OBJDNDFAST3)
268	$(CC) -o $@ $(OBJDNDFAST3) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
269
270triplet : $(OBJTRIPLET)
271	$(CC) -o $@ $(OBJTRIPLET) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
272
273triplet3 : $(OBJTRIPLET3)
274	$(CC) -o $@ $(OBJTRIPLET3) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
275
276sextet3 : $(OBJSEXTET3)
277	$(CC) -o $@ $(OBJSEXTET3) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
278
279sextet4 : $(OBJSEXTET4)
280	$(CC) -o $@ $(OBJSEXTET4) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
281
282sextet5 : $(OBJSEXTET5)
283	$(CC) -o $@ $(OBJSEXTET5) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
284
285mafft-distance : $(OBJDISTANCE)
286	$(CC) -o $@ $(OBJDISTANCE) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
287
288triplet5 : $(OBJTRIPLET5)
289	$(CC) -o $@ $(OBJTRIPLET5) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
290
291triplet6 : $(OBJTRIPLET6)
292	$(CC) -o $@ $(OBJTRIPLET6) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
293
294octet4 : $(OBJOCTET4)
295	$(CC) -o $@ $(OBJOCTET4) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
296
297dndpre : $(OBJDNDPRE)
298	$(CC) -o $@ $(OBJDNDPRE) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
299
300score : $(OBJSCORE)
301	$(CC) -o $@ $(OBJSCORE) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
302
303genMtx : $(OBJGENMTX)
304	$(CC) -o $@ $(OBJGENMTX) $(MYCFLAGS) $(LDFLAGS) $(LIBS)
305
306mafftash_premafft.pl : mafftash_premafft.tmpl
307	cp mafftash_premafft.tmpl mafftash_premafft.pl
308
309seekquencer_premafft.pl : seekquencer_premafft.tmpl
310	cp seekquencer_premafft.tmpl seekquencer_premafft.pl
311
312gapfill.o : gapfill.c $(HEADER)
313	$(CC) $(MYCFLAGS) -c gapfill.c
314
315mltaln9.o : mltaln9.c $(HEADER)
316	$(CC) $(MYCFLAGS) -c mltaln9.c
317
318tddis.o : tddis.c $(HEADER)
319	$(CC) $(MYCFLAGS) -c tddis.c
320
321constants.o : constants.c miyata.h miyata5.h blosum.c DNA.h JTT.c $(HEADER)
322	$(CC) $(MYCFLAGS) -c constants.c
323
324defs.o : defs.c
325	$(CC) $(MYCFLAGS) -c defs.c
326
327#A+++alignmm.o : SA+++alignmm.c $(HEADER)
328#	$(CC) $(MYCFLAGS) -c SA+++alignmm.c -o A+++alignmm.o
329
330Salignmm.o : Salignmm.c $(HEADER)
331	$(CC) $(MYCFLAGS) -c Salignmm.c
332
333MSalignmm.o : MSalignmm.c $(HEADER)
334	$(CC) $(MYCFLAGS) -c MSalignmm.c
335
336partSalignmm.o : partSalignmm.c $(HEADER)
337	$(CC) $(MYCFLAGS) -c partSalignmm.c
338
339Lalign11.o : Lalign11.c $(HEADER)
340	$(CC) $(MYCFLAGS) -c Lalign11.c
341
342genalign11.o : genalign11.c $(HEADER)
343	$(CC) $(MYCFLAGS) -c genalign11.c
344
345suboptalign11.o : suboptalign11.c $(HEADER)
346	$(CC) $(MYCFLAGS) -c suboptalign11.c
347
348Galign11.o : Galign11.c $(HEADER)
349	$(CC) $(MYCFLAGS) -c Galign11.c
350
351MSalign11.o : MSalign11.c $(HEADER)
352	$(CC) $(MYCFLAGS) -c MSalign11.c
353
354SAalignmm.o : SAalignmm.c $(HEADER)
355	$(CC) $(MYCFLAGS) -c SAalignmm.c -o SAalignmm.o
356
357Lalignmm.o : Lalignmm.c $(HEADER)
358	$(CC) $(MYCFLAGS) -c Lalignmm.c
359
360rna.o : rna.c $(HEADER)
361	$(CC) $(MYCFLAGS) -c rna.c
362
363disttbfast.o : disttbfast.c $(HEADER) $(FFTHEADER)
364	$(CC) $(MYCFLAGS) -c disttbfast.c
365
366splitfromaln.o : splitfromaln.c $(HEADER) $(FFTHEADER)
367	$(CC) $(MYCFLAGS) -c splitfromaln.c
368
369splittbfast.o : splittbfast.c $(HEADER) $(FFTHEADER)
370	$(CC) $(MYCFLAGS) -c splittbfast.c
371
372splittbfast2.o : splittbfast2.c $(HEADER) $(FFTHEADER)
373	$(CC) $(MYCFLAGS) -c splittbfast2.c
374
375makedirectionlist.o : makedirectionlist.c $(HEADER) $(FFTHEADER)
376	$(CC) $(MYCFLAGS) -c makedirectionlist.c
377
378disttbfast_dummy.o : disttbfast_dummy.c $(HEADER) $(FFTHEADER)
379	$(CC) $(MYCFLAGS) -c disttbfast_dummy.c
380
381dummy.o : dummy.c $(HEADER) $(FFTHEADER)
382	$(CC) $(MYCFLAGS) -c dummy.c
383
384tbfast.o : tbfast.c $(HEADER) $(FFTHEADER)
385	$(CC) $(MYCFLAGS) -c tbfast.c
386
387addsingle.o : addsingle.c $(HEADER) $(FFTHEADER)
388	$(CC) $(MYCFLAGS) -c addsingle.c
389
390tbfast2.o : tbfast2.c $(HEADER) $(FFTHEADER)
391	$(CC) $(MYCFLAGS) -c tbfast2.c
392
393setcore.o : setcore.c $(HEADER) $(FFTHEADER)
394	$(CC) $(MYCFLAGS) -c setcore.c
395
396getlag.o : getlag.c $(HEADER) $(FFTHEADER)
397	$(CC) $(MYCFLAGS) -c getlag.c
398
399tditr.o : tditr.c $(HEADER)
400	 $(CC) $(MYCFLAGS) -c tditr.c
401
402dvtditr.o : dvtditr.c $(HEADER)
403	 $(CC) $(MYCFLAGS) -c dvtditr.c
404
405tditeration.o : tditeration.c $(HEADER)
406	 $(CC) $(MYCFLAGS) -c tditeration.c
407
408mafft-profile.o : mafft-profile.c $(HEADER) $(MTXHEADER)
409	$(CC) $(MYCFLAGS) -c mafft-profile.c
410
411dndfast4.o : dndfast4.c $(HEADER) $(MTXHEADER)
412	$(CC) $(MYCFLAGS) -c dndfast4.c
413
414dndfast5.o : dndfast5.c $(HEADER) $(MTXHEADER)
415	$(CC) $(MYCFLAGS) -c dndfast5.c
416
417dndfast6.o : dndfast6.c $(HEADER) $(MTXHEADER)
418	$(CC) $(MYCFLAGS) -c dndfast6.c
419
420dndfast7.o : dndfast7.c $(HEADER) $(MTXHEADER)
421	$(CC) $(MYCFLAGS) -c dndfast7.c
422
423dndblast.o : dndblast.c $(HEADER) $(MTXHEADER)
424	$(CC) $(MYCFLAGS) -c dndblast.c
425
426dndfast3.o : dndfast3.c $(HEADER) $(MTXHEADER)
427	$(CC) $(MYCFLAGS) -c dndfast3.c
428
429dndpre.o : dndpre.c $(HEADER)
430	$(CC) $(MYCFLAGS) -c dndpre.c
431
432countlen.o : countlen.c $(HEADER)
433	$(CC) $(MYCFLAGS) -c countlen.c
434
435seq2regtable.o : seq2regtable.c $(HEADER)
436	$(CC) $(MYCFLAGS) -c seq2regtable.c
437
438regtable2seq.o : regtable2seq.c $(HEADER)
439	$(CC) $(MYCFLAGS) -c regtable2seq.c
440
441f2cl.o : f2cl.c $(HEADER)
442	$(CC) $(MYCFLAGS) -c f2cl.c
443
444setdirection.o : setdirection.c $(HEADER)
445	$(CC) $(MYCFLAGS) -c setdirection.c
446
447replaceu.o : replaceu.c $(HEADER)
448	$(CC) $(MYCFLAGS) -c replaceu.c
449
450restoreu.o : restoreu.c $(HEADER)
451	$(CC) $(MYCFLAGS) -c restoreu.c
452
453mccaskillwrap.o : mccaskillwrap.c $(HEADER)
454	$(CC) $(MYCFLAGS) -c mccaskillwrap.c
455
456contrafoldwrap.o : contrafoldwrap.c $(HEADER)
457	$(CC) $(MYCFLAGS) -c contrafoldwrap.c
458
459pairlocalalign.o : pairlocalalign.c $(HEADER) $(FFTHEADER)
460	$(CC) $(MYCFLAGS) -c pairlocalalign.c
461
462pairash.o : pairash.c $(HEADER) $(FFTHEADER)
463	$(CC) $(MYCFLAGS) -c pairash.c
464
465multi2hat3s.o : multi2hat3s.c $(HEADER) $(FFTHEADER)
466	$(CC) $(MYCFLAGS) -c multi2hat3s.c
467
468pair2hat3s.o : pair2hat3s.c $(HEADER) $(FFTHEADER)
469	$(CC) $(MYCFLAGS) -c pair2hat3s.c
470
471io.o : io.c $(HEADER) $(FFTHEADER)
472	$(CC) $(MYCFLAGS) -c io.c
473
474nj.o : nj.c $(HEADER)
475	$(CC) $(MYCFLAGS) -c nj.c
476
477treeOperation.o : treeOperation.c $(HEADER)
478	$(CC) $(MYCFLAGS) -c treeOperation.c
479
480sextet5.o : sextet5.c $(HEADER) $(MTXHEADER)
481	$(CC) $(MYCFLAGS) -c sextet5.c
482
483mafft-distance.o : mafft-distance.c $(HEADER) $(MTXHEADER)
484	$(CC) $(MYCFLAGS) -c mafft-distance.c
485
486triplet5.o : triplet5.c $(HEADER) $(MTXHEADER)
487	$(CC) $(MYCFLAGS) -c triplet5.c
488
489triplet6.o : triplet6.c $(HEADER) $(MTXHEADER)
490	$(CC) $(MYCFLAGS) -c triplet6.c
491
492fft.o : fft.c $(HEADER) $(FFTHEADER)
493	$(CC) $(MYCFLAGS) -c fft.c
494
495fftFunctions.o : fftFunctions.c $(HEADER) $(FFTHEADER)
496	$(CC) $(MYCFLAGS) -c fftFunctions.c
497
498Falign.o : Falign.c $(HEADER) $(FFTHEADER) $(MTXHEADER)
499	$(CC) $(MYCFLAGS) -c Falign.c
500
501Falign_localhom.o : Falign_localhom.c $(HEADER) $(FFTHEADER) $(MTXHEADER)
502	$(CC) $(MYCFLAGS) -c Falign_localhom.c
503
504mtxutl.o : mtxutl.c
505	$(CC) $(MYCFLAGS) -c mtxutl.c
506
507addfunctions.o : addfunctions.c $(HEADER)
508	$(CC) $(MYCFLAGS) -c addfunctions.c
509
510score.o : score.c $(HEADER)
511	$(CC) $(MYCFLAGS) -c score.c
512
513clean :
514	rm -f *.o *.a *.exe *~ $(PERLPROGS) $(PROGS) $(SCRIPTS) $(SOS) $(DYLIBS) $(DLLS)
515#	rm -f ../binaries/* ../scripts/*
516
517install : all
518	mkdir -p $(LIBDIR)
519	chmod 755 $(LIBDIR)
520	mkdir -p $(BINDIR)
521	chmod 755 $(BINDIR)
522	chmod 755 $(SCRIPTS)
523	$(INSTALL) $(SCRIPTS)  $(BINDIR)
524	chmod 755 $(PROGS)
525	$(INSTALL) -s $(PROGS) $(LIBDIR)
526	$(INSTALL) $(PERLPROGS) $(LIBDIR)
527	$(INSTALL) -m 644 $(MANPAGES) $(LIBDIR)
528
529	( cd $(BINDIR); \
530rm -f linsi ginsi einsi fftns fftnsi nwns nwnsi xinsi qinsi; \
531rm -f mafft-linsi mafft-ginsi mafft-einsi mafft-fftns mafft-fftnsi mafft-nwns mafft-nwnsi mafft-xinsi mafft-qinsi; \
532ln -s mafft linsi; ln -s mafft ginsi; ln -s mafft fftns; \
533ln -s mafft fftnsi; ln -s mafft nwns; ln -s mafft nwnsi; \
534ln -s mafft einsi; \
535ln -s mafft mafft-linsi; ln -s mafft mafft-ginsi; ln -s mafft mafft-fftns; \
536ln -s mafft mafft-fftnsi; ln -s mafft mafft-nwns; ln -s mafft mafft-nwnsi; \
537ln -s mafft mafft-einsi; ln -s mafft mafft-xinsi; ln -s mafft mafft-qinsi;\
538rm -f mafft-profile mafft-profile.exe; ln -s $(LIBDIR)/mafft-profile .; \
539rm -f mafft-distance mafft-distance.exe; ln -s $(LIBDIR)/mafft-distance . )
540
541	mkdir -p $(MANDIR)
542	chmod 755 $(MANDIR)
543	$(INSTALL) -m 644 $(MANPAGES) $(MANDIR)
544# remove incorrectly installed manpages by previous versions
545#	rm -f /usr/local/man/man1/mafft.1 /usr/local/man/man1/mafft-homologs.1
546