-
Notifications
You must be signed in to change notification settings - Fork 3
/
Makefile.unix
executable file
·729 lines (583 loc) · 24.8 KB
/
Makefile.unix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
#
# Generic Linux/Unix Makefile for PHYLIP 4.0.
#
# You should not need to change anything, though if you want you could
# change the first (noncomment) statement -- the one that sets the
# folder (directory) in which the executables will be placed -- to some
# directory location that might be more useful.
#
# The compressed tar archive phylip.tar.Z when uncompressed and extracted
# puts the source code into a directory ./src, and also makes two other
# directories ./exe and ./doc for the final executables and the documentation
# files. Only change the EXEDIR settings if you want something different
# from that structure.
#
# If it causes trouble in compiling, the CFLAGS statement below may also need
# to be changed.
#
# To use the PHYLIP v4.0 Makefile, type one of these:
#
# make install to compile the whole package and install
# the executables in $(EXEDIR), and then
# remove the object files to save space.
#
# make all to compile the whole package but not install it
# or remove the object files.
#
# make put to move the executables into $(EXEDIR).
#
# make clean to remove all object files and executables from the
# current directory.
#
# make dnaml to compile and link one program, (in this example,
# Dnaml) and leave the executable and object files
# in the current directory (where the source code is).
# You will have to move the executable in to the
# executables directory (e.g. "mv dnaml ../exe")
# Note that the program name should be lower case.
#
# ----------------------------------------------------------------------------
# Starting here is the section where you may want to change things.
# ----------------------------------------------------------------------------
#
# These are the statements we have been talking about:
#
# One of the reasons for changing them would be to put the executables
# on a different file system. The default configuration is to have within
# the overall PHYLIP directory three subdirectories:
# "src" for source code, "exe" for the executables, and
# "doc" for the documentation files.
#
# The following specifies the directory where the executables will be placed:
EXEDIR = ../exe
#
# The following fetches the name of the Unix or Linux shell
#
UNAME := $(shell uname)
#
# ----------------------------------------------------------------------------
#
# The following statements set these variables:
#
# CFLAGS -- compiler directives needed to compile most programs
# DFLAGS -- compiler directives needed to compile draw programs
# LIBS -- non-default system libraries needed to compile most programs
# DLIBS -- non-default system libraries needed to compile draw programs
# CC -- the name (and, optionally, location) of your C compiler
# DC -- the name (and, optionally, location) of your C compiler
# for draw programs
#
# We've provided a set of possible values for each variable.
#
# The value used is the one without a "#" at the beginning of the line.
#
# To try an alternate value, make sure the one you want has no "#"
# as its first character and that all other possibilities have "#" for
# their first character.
#
# Advanced users may need to further edit one of the alternatives in
# order to correctly compile on their system.
#
# ----------------------------------------------------------------------------
#
# In the following statements (the ones that set CFLAGS, DFLAGS, LIBS
# and DLIBS, CC and DC) you should make sure each is set properly.
# Usually this will simply involve making sure that the proper statement
# has no "#" as its first character and that all other possibilities
# have "#" for their first character.
#
# ----------------------------------------------------------------------------
#
# This is the CFLAGS statement:
#
# If these statements say "-g" and that causes trouble, remove the "-g".
# If the "-lX11" does not work (X compiling not working), you may want to
# remove that switch or fix it.
#
# Here are some possible CFLAGS statements:
#
# A minimal one:
#CFLAGS = -g
CFLAGS = -Wl -zmuldefs
#
# A basic one for debugging:
#CFLAGS = -g -Wall
#
# For MacOS using the clang compiler
#CFLAGS = -g
#
# For some serious debugging using GNU GCC. This raises debug warning
# reporting to highest level possible.
#ifeq ($(MODE), GDB)
# No optimization; intended for debugging with GDB. Debug level
# is "-ggdb3", maximal for GDB. Originally was "-g". Maximal debug
# information preserved (at cost of "-Wuninitialized" warning).
#CFLAGS=-ggdb3 -std=c99 -Wall -Wmain -Wmissing-prototypes -Wreturn-type -Wstrict-prototypes -Wunused -Wextra -pedantic -Wredundant-decls -Waggregate-return -Wcast-align -Wcomment
#else
# Minimal optimization; intended for debugging via compilation but not
# using GDB. Debug level is "-g", good for debugging but not maximal for GDB.
#CFLAGS=-g -std=c99 -O -Wall -Wmain -Wmissing-prototypes -Wreturn-type -Wstrict-prototypes -Wunused -Wextra -pedantic -Wuninitialized -Wredundant-decls -Waggregate-return -Wcast-align -Wcomment
# In case value is not defined (or bogus), give MODE a value to indicate
# "NORMAL" compilation; used only for display.
#MODE=NORMAL
#endif
#
# An optimized one for gcc:
#CFLAGS = -O3 -fomit-frame-pointer
#
# For some serious debugging using Gnu gcc:
CFLAGS=-g -Wall -Wmain -Wmissing-prototypes -Wreturn-type -Wstrict-prototypes -Wunused -Werror -Wredundant-decls -Waggregate-return -Wcast-align -Wcomment
#
# These are for specific systems, in these cases fairly obsolete ones:
#
# For Digital Alpha systems with Compaq Tru64 Unix
# (however, be aware that this may cause floating-point problems in programs
# like Dnaml owing to not using IEEE floating point standards):
#CFLAGS = -fast
#
# Optimized one for the IBM Visualage compiler for Linux or AIX on IBM pSeries
#CFLAGS = -O -qmaxmem=-1 -qarch=auto -qtune=auto
#
# ----------------------------------------------------------------------------
#
# This is the DFLAGS statement. It specifies compiler behavior for the
# programs drawgram and drawtree. It adds additional information to
# the $(CFLAGS) value so these programs can use X11 graphics.
#
# A minimal one -- drawing programs will run, but will not use X11 graphics.
# If you use this one, you must also use the minimal value for $(DLIBS).
#DFLAGS = -DX $(CFLAGS)
#
# A basic one for debugging:
#DFLAGS = -g -DX
#
# For Gnu C++ for runs:
#DFLAGS = -I/usr/X11R6/include -O3 -DX -fomit-frame-pointer
#
# For Linux with X Windows development packages installed
# or for MacOS X with X Windows installed:
DFLAGS = -DX $(CFLAGS) -I/usr/X11R6/include
#
# For Digital Alpha systems with Compaq Tru64 Unix:
#DFLAGS = -DX -fast
#
# For IBM Visualage compiler on Linux or AIX for the IBM pSeries
#DFLAGS = -DX $(CFLAGS)
#
# ----------------------------------------------------------------------------
#
# These are the libraries for the CC and DC compiles, respectively:
#
# Use this one to include debugging facility.
#LIBS = Slist.o phylip.o debug.o
#
LIBS = Slist.o phylip.o
LDADD = -lm
#
# If the Xlib library for the X windowing system is somewhere
# unexpected, you may have to change the path /usr/X11R6/lib in this one.
#
# For gcc for Linux with X windows development packages installed
# or for MacOS X with X windows installed
# or for IBM pSeries with Linux:
DLIBS= -L/usr/X11R6/lib/ -lX11 -lXt
# was: DLIBS= -L/usr/X11R6/lib/ -lX11 -lXaw -lXt Athena widgets available? needed?
#
# For IBM Visualage compiler for AIX:
#DLIBS= -L/usr/X11R6/lib/ -lX11 -lXaw -lXt -lXmu -lXext
#
# ----------------------------------------------------------------------------
#
# The next two assignments are the invocations of the compiler for the
# ordinary compiles and the tree-drawing programs, CC and DC:
#
# This one specifies the "cc" C compiler:
#CC = cc $(CFLAGS)
#
# To use GCC instead, if it is not the compiler that "cc" invokes:
CC = gcc $(CFLAGS)
#
# For the clang compiler on MacOS
#CC = clang $(CFLAGS)
#
# For IBM compiler for Linux or AIX on IBM pSeries
#CC = xlc $(CFLAGS)
#
# This one specifies the "cc" C compiler for the Draw programs:
#DC = cc $(DFLAGS)
#
# To use GCC for the Draw programs instead, if it is not the compiler that "cc" invokes:
DC = gcc $(DFLAGS)
#
# For IBM compiler for the Draw programs for Linux or AIX on IBM pSeries:
#DC = xlc $(DFLAGS)
#
# ----------------------------------------------------------------------------
# After this point there should not be any reason to change anything.
# ----------------------------------------------------------------------------
#
# The list of programs.
# Draw programs are listed last since they are the most likely to cause
# compilation or linking problems.
#
PROGS = clique codml consense contml contrast dnacomp dnadist dnainvar dnaml \
dnamlk dnamove dnapars dnapenny dolmove dollop dolpenny factor fitch \
gendist kitsch mix move neighbor pars penny proml promlk protdist protpars \
restdist restml retree seqboot threshml treedist drawgram drawtree
DYLIBS := libclique.so libconsense.so libcontml.so libdnacomp.so libdnadist.so libdnainvar.so
DYLIBS += lidnaml.so libdnapars.so libdnapenny.so libdollop.so libdolpenny.so libdrawgram.so
DYLIBS += libdrawtree.so libfactor.so libfitch.so libgendist.so libmix.so libneighbor.so libpars.so
DYLIBS += libpenny.so libprotpars.so libproml.so libprotdist.so librestdist.so libseqboot.so
DYLIBS += libtreedist.so
SHARED := -shared
# These for now, until we get this stuff debugged.
BUILD_FAILURES := codml contml dnamlk dnamove fitch kitsch neighbor pars proml promlk protpars restml retree
PROGS := $(filter-out $(BUILD_FAILURES),$(PROGS))
DYLIBS :=
ifeq ($(UNAME),Darwin)
SHARED :=
else ifeq ($(UNAME),Linux)
DFLAGS := -DX $(CFLAGS)
DLIBS :=
else
$(error Only know how to build for OS/X and Linux, not $(UNAME))
endif
#
# General commands.
#
# These targets do not produce a file of their namesake, so tell make not
# to bother looking:
.PHONY: help all introduce put clean install
#
# The first target is executed if you just type "make". It tells you how to use the Makefile.
#
help:
@echo ""
@echo " To use the PHYLIP v4.0 Makefile, type:"
@echo ""
@echo " make install to compile the whole package and install"
@echo " the executables in $(EXEDIR), and then"
@echo " remove the object files to save space."
@echo ""
@echo " make all to compile the whole package but not install it"
@echo " or remove the object files."
@echo ""
@echo " make put to move the executables into $(EXEDIR)."
@echo ""
@echo " make clean to remove all object files and executables from the"
@echo " current directory."
@echo ""
@echo " make dnaml to compile and link one program, (in this example,"
@echo " Dnaml) and leave the executable and object files"
@echo " in the current directory (where the source code is)."
@echo ""
@echo " You will have to move the executable into the"
@echo " executables directory (e.g. "mv dnaml $(EXEDIR)")"
@echo " Note that the program name should be lower case."
all: introduce $(PROGS) $(DYLIBS)
@echo ""
@echo "Successfully built programs:"
@printf "\t$(PROGS)\n"
@echo ""
@echo "Did not try to build programs:"
@printf "\t$(BUILD_FAILURES)\n"
introduce:
@echo ""
@echo "Building PHYLIP version 4.0."
install: pre-clean all put clean
@echo ""
@echo "Done."
put:
@echo ""
@echo "Installing PHYLIP v4.0 binaries in $(EXEDIR)."
@mkdir -p $(EXEDIR)
@mv $(PROGS) $(EXEDIR)
@echo ""
@echo "Installing Hershey font files in $(EXEDIR)."
@cp font* $(EXEDIR)
@echo ""
@echo "Finished installation."
pre-clean:
@echo ""
@echo "Removing preexisting executables."
@rm -rf $(EXEDIR)/*
@echo ""
@echo "Ready for new executables."
clean:
@echo ""
@echo "Removing object files to save space."
@rm -f *.o
@echo ""
@echo "Finished removing object files. Now will remove"
@echo "executable files from the current directory, but not from the"
@echo "executables directory. (If some are not here, the makefile"
@echo "may terminate with an error message but this is not a problem.)"
@echo ""
@echo "Removing executables from this directory."
@rm -f $(PROGS)
@echo ""
@echo "Finished cleanup."
#
# Compile the shared stuff.
#
Slist.o: Slist.c Slist.h
$(CC) -c Slist.c $(SHARED) -fPIC
phylip.o: phylip.c Slist.h
$(CC) -c phylip.c $(SHARED) -fPIC
# Add this to include debugging facility.
# debug.o: debug.c debug.h phylip.h Slist.h
# $(CC) -c debug.c
seq.o: ml.c bl.c seq.c phylip.h seq.h
$(CC) -c seq.c $(SHARED) -fPIC
bl.o: phylip.h bl.h
$(CC) -c bl.c $(SHARED) -fPIC
ml.o: bl.c ml.c phylip.h bl.h ml.h
$(CC) -c ml.c $(SHARED) -fPIC
mldna.o: mldna.h phylip.h bl.h ml.h bl.c ml.c mldna.c
$(CC) -c mldna.c $(SHARED) -fPIC
rest_common.o: rest_common.c rest_common.h phylip.h
$(CC) -c rest_common.c $(SHARED) -fPIC
prom_common.o: prom_common.c prom_common.h phylip.h
$(CC) -c prom_common.c $(SHARED) -fPIC
parsimony.o: parsimony.c phylip.h parsimony.h
$(CC) -c parsimony.c $(SHARED) -fPIC
dnaparsimony.o: dnaparsimony.c phylip.h parsimony.h dnaparsimony.h
$(CC) -c dnaparsimony.c $(SHARED) -fPIC
disc.o: disc.c phylip.h disc.h
$(CC) -c disc.c $(SHARED) -fPIC
discreteparsimony.o: discreteparsimony.c discreteparsimony.h phylip.h parsimony.h
$(CC) -c discreteparsimony.c $(SHARED) -fPIC
dollo.o: dollo.c phylip.h dollo.h
$(CC) -c dollo.c $(SHARED) -fPIC
wagner.o: wagner.c phylip.h wagner.h
$(CC) -c wagner.c $(SHARED) -fPIC
dist.o: dist.c phylip.h dist.h ml.h
$(CC) -c dist.c $(SHARED) -fPIC
cont.o: cont.c cont.h phylip.h
$(CC) -c cont.c $(SHARED) -fPIC
moves.o: moves.c phylip.h moves.h
$(CC) -c moves.c
cons.o: cons.c cons.h phylip.h
$(CC) -c cons.c $(SHARED) -fPIC
pmatrix.o: pmatrix.c pmatrix.h
$(CC) -c pmatrix.c $(SHARED) -fPIC
matrixd.o: matrixd.c matrixd.h
$(CC) -c matrixd.c $(SHARED) -fPIC
drawinit.o: drawinit.c draw.c draw2.c draw.h
$(CC) -c drawinit.c $(SHARED) -fPIC
#
# Compile the individual programs.
#
clique.o: clique.c disc.h phylip.h
$(CC) -c clique.c $(SHARED) -fPIC
codml.o: codml.c ml.h bl.h seq.h phylip.h
$(CC) -c codml.c $(SHARED) -fPIC
consense.o: consense.c cons.h phylip.h
$(CC) -c consense.c $(SHARED) -fPIC
contml.o: contml.c cont.h phylip.h bl.h ml.h Slist.h
$(CC) -c contml.c $(SHARED) -fPIC
contrast.o: contrast.c cont.h phylip.h bl.h ml.h
$(CC) -c contrast.c $(SHARED) -fPIC
dnacomp.o: dnacomp.c seq.h phylip.h dnaparsimony.h parsimony.h
$(CC) -c dnacomp.c $(SHARED) -fPIC
dnadist.o: dnadist.c seq.h pmatrix.h phylip.h
$(CC) -c dnadist.c $(SHARED) -fPIC
dnainvar.o: dnainvar.c seq.h phylip.h
$(CC) -c dnainvar.c $(SHARED) -fPIC
dnaml.o: dnaml.c seq.h bl.h ml.h mldna.h phylip.h
$(CC) -c dnaml.c $(SHARED) -fPIC
dnamlk.o: dnamlk.c seq.h bl.h ml.h phylip.h
$(CC) -c dnamlk.c $(SHARED) -fPIC
dnamove.o: dnamove.c seq.h moves.h phylip.h parsimony.h dnaparsimony.h
$(CC) -c dnamove.c
dnapars.o: dnapars.c seq.h phylip.h parsimony.h dnaparsimony.h
$(CC) -c dnapars.c $(SHARED) -fPIC
dnapenny.o: dnapenny.c seq.h phylip.h parsimony.h dnaparsimony.h
$(CC) -c dnapenny.c $(SHARED) -fPIC
dolmove.o: dolmove.c disc.h moves.h dollo.h phylip.h
$(CC) -c dolmove.c
dollop.o: dollop.c disc.h dollo.h phylip.h
$(CC) -c dollop.c $(SHARED) -fPIC
dolpenny.o: dolpenny.c disc.h dollo.h phylip.h
$(CC) -c dolpenny.c $(SHARED) -fPIC
draw.o: draw.c draw.h phylip.h
$(DC) -c draw.c $(SHARED) -fPIC
draw2.o: draw2.c draw.h phylip.h
$(DC) -c draw2.c $(SHARED) -fPIC
drawgram.o: drawinit.c drawgram.c draw.h phylip.h Slist.h
$(DC) -c drawgram.c $(SHARED) -fPIC
drawtree.o: drawinit.c drawtree.c draw.h phylip.h Slist.h
$(DC) -c drawtree.c $(SHARED) -fPIC
factor.o: factor.c phylip.h
$(CC) -c factor.c $(SHARED) -fPIC
fitch.o: fitch.c dist.h phylip.h bl.h ml.h Slist.h
$(CC) -c fitch.c $(SHARED) -fPIC
gendist.o: gendist.c phylip.h pmatrix.c pmatrix.h
$(CC) -c gendist.c $(SHARED) -fPIC
interface.o: interface.c interface.h draw.h phylip.h
$(DC) -c interface.c $(SHARED) -fPIC
kitsch.o: kitsch.c dist.h bl.h ml.h phylip.h
$(CC) -c kitsch.c $(SHARED) -fPIC
mix.o: mix.c disc.h wagner.h phylip.h
$(CC) -c mix.c $(SHARED) -fPIC
move.o: move.c disc.h moves.h wagner.h phylip.h
$(CC) -c move.c
neighbor.o: neighbor.c dist.h phylip.h
$(CC) -c neighbor.c $(SHARED) -fPIC
pars.o: pars.c discreteparsimony.h phylip.h parsimony.h
$(CC) -c pars.c $(SHARED) -fPIC
penny.o: penny.c disc.h wagner.h phylip.h
$(CC) -c penny.c $(SHARED) -fPIC
proml.o: proml.c seq.h bl.h ml.h phylip.h prom_common.h prom_common.c
$(CC) -c proml.c $(SHARED) -fPIC
promlk.o: promlk.c seq.h bl.h ml.h phylip.h prom_common.h prom_common.c
$(CC) -c promlk.c $(SHARED) -fPIC
protdist.o: protdist.c seq.h phylip.h pmatrix.c pmatrix.h
$(CC) -c protdist.c $(SHARED) -fPIC
protpars.o: protpars.c seq.h phylip.h parsimony.h
$(CC) -c protpars.c $(SHARED) -fPIC
restdist.o: restdist.c rest_common.h seq.h phylip.h pmatrix.c pmatrix.h
$(CC) -c restdist.c $(SHARED) -fPIC
restml.o: restml.c rest_common.h seq.h bl.h ml.h phylip.h
$(CC) -c restml.c $(SHARED) -fPIC
retree.o: retree.c moves.h phylip.h
$(CC) -c retree.c
seqboot.o: seqboot.c phylip.h
$(CC) -c seqboot.c $(SHARED) -fPIC
threshml.o: threshml.c cont.h phylip.h Slist.h
$(CC) -c threshml.c $(SHARED) -fPIC
treedist.o: treedist.c cons.h phylip.h
$(CC) -c treedist.c $(SHARED) -fPIC
#
# Link the individual programs.
#
clique: clique.o disc.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
codml: codml.o bl.o ml.o seq.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
consense: consense.o cons.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
contml: contml.o cont.o ml.o bl.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
contrast: contrast.o cont.o ml.o bl.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dnacomp: dnacomp.o seq.o parsimony.o dnaparsimony.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dnadist: dnadist.o pmatrix.o matrixd.o seq.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dnainvar: dnainvar.o seq.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dnaml: dnaml.o seq.o bl.o ml.o mldna.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dnamlk: dnamlk.o seq.o bl.o ml.o mldna.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dnamove: dnamove.o seq.o moves.o parsimony.o dnaparsimony.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dnapars: dnapars.o seq.o parsimony.o dnaparsimony.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dnapenny: dnapenny.o seq.o parsimony.o dnaparsimony.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dolmove: dolmove.o disc.o moves.o dollo.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dollop: dollop.o disc.o dollo.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
dolpenny: dolpenny.o disc.o dollo.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
drawgram: drawgram.o draw.o draw2.o drawinit.o $(LIBS)
$(DC) $(DLIBS) $^ $(LDADD) -o $@
drawtree: drawtree.o draw.o draw2.o drawinit.o $(LIBS)
$(DC) $(DLIBS) $^ $(LDADD) -o $@
factor: factor.o disc.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
fitch: fitch.o dist.o bl.o ml.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
gendist: gendist.o pmatrix.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
kitsch: kitsch.o dist.o bl.o ml.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
mix: mix.o disc.o wagner.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
move: move.o disc.o moves.o wagner.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
neighbor: neighbor.o dist.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
pars: pars.o discreteparsimony.o parsimony.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
penny: penny.o disc.o wagner.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
proml: proml.o prom_common.o seq.o bl.o ml.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
promlk: promlk.o prom_common.o seq.o bl.o ml.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
protdist: protdist.o seq.o pmatrix.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
protpars: protpars.o seq.o parsimony.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
restdist: restdist.o rest_common.o seq.o pmatrix.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
restml: restml.o rest_common.o seq.o bl.o ml.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
retree: retree.o moves.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
seqboot: seqboot.o seq.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
threshml: threshml.o cont.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
treedist: treedist.o cons.o $(LIBS)
$(CC) $^ $(LDADD) -o $@
# Dynamic libraries (.so)
libclique.so: clique.o disc.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libclique.so $(SHARED) -fPIC clique.c disc.c phylip.c
libcodml.so: codml.o ml.o bl.o seq.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libcodml.o $(SHARED) -fPIC codml.c ml.c bl.c seq.c phylip.c Slist.c
libconsense.so: consense.o cons.o phylip.o Slist.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libconsense.so $(SHARED) -fPIC consense.c cons.c phylip.c Slist.c
libcontml.so: contml.o cont.o ml.o bl.o phylip.o phylip.h ml.h Slist.h $(LIBS)
$(CC) $(CFLAGS) -o libcontml.so $(SHARED) -fPIC contml.c cont.c ml.c bl.c phylip.c Slist.c
libdnacomp.so: dnacomp.o seq.o parsimony.o dnaparsimony.o phylip.o $(LIBS)
$(CC) $(CFLAGS) -o libdnacomp.so $(SHARED) -fPIC dnacomp.c seq.c dnaparsimony.c parsimony.c phylip.c Slist.c
libdnadist.so: dnadist.o pmatrix.o seq.o phylip.o phylip.h seq.h $(LIBS)
$(CC) $(CFLAGS) -o libdnadist.so $(SHARED) -fPIC dnadist.c seq.c phylip.c pmatrix.c matrixd.c Slist.c
libdnainvar.so: dnainvar.o seq.o phylip.o $(LIBS)
$(CC) $(CFLAGS) -o libdnainvar.so $(SHARED) -fPIC dnainvar.c seq.c phylip.c Slist.c
libdnaml.so: dnaml.o seq.o ml.o bl.o $(LIBS)
$(CC) $(CFLAGS) -o libdnaml.so $(SHARED) -fPIC dnaml.c seq.c ml.c bl.c phylip.c Slist.c -shared -fPIC
libdnapars.so: dnapars.o seq.o parsimony.o dnaparsimony.o phylip.o $(LIBS)
$(CC) $(CFLAGS) -o libdnapars.so $(SHARED) -fPIC dnapars.c seq.c dnaparsimony.c parsimony.c phylip.c Slist.c
libdnapenny.so: dnapenny.o seq.o phylip.o $(LIBS)
$(CC) $(CFLAGS) -o libdnapenny.so $(SHARED) -fPIC dnapenny.c seq.c phylip.c Slist.c
libdollop.so: dollop.o disc.o dollo.o wagner.o dollo.h phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libdollop.so $(SHARED) -fPIC dollop.c dollo.c disc.c wagner.c phylip.c Slist.c
libdolpenny.so: dolpenny.o disc.o wagner.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libdolpenny.so $(SHARED) -fPIC dolpenny.c disc.c wagner.c phylip.c Slist.c
libdrawgram.so: drawgram.o draw.o draw2.o drawinit.o $(LIBS)
$(CC) $(CFLAGS) -o libdrawgram.so $(SHARED) -fPIC drawgram.c draw.c draw2.c drawinit.c Slist.c phylip.c
libdrawtree.so: drawtree.o draw.o draw2.o drawinit.o $(LIBS)
$(CC) $(CFLAGS) -o libdrawtree.so $(SHARED) -fPIC drawtree.c draw.c draw2.c drawinit.c Slist.c phylip.c
libfactor.so: factor.o phylip.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libfactor.so $(SHARED) -fPIC factor.c phylip.c
libfitch.so: fitch.o phylip.o dist.o bl.o ml.o $(LIBS)
$(CC) $(CFLAGS) -o libfitch.so $(SHARED) -fPIC fitch.c phylip.c bl.c ml.c dist.c Slist.c
libgendist.so: gendist.o phylip.o pmatrix.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libgendist.so $(SHARED) -fPIC gendist.c pmatrix.c phylip.c Slist.c
libmix.so: mix.o disc.o wagner.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libmix.so $(SHARED) -fPIC mix.c disc.c wagner.c phylip.c Slist.c
libneighbor.so: neighbor.o dist.o phylip.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libneighbor.so $(SHARED) -fPIC neighbor.c dist.c phylip.c Slist.c
libpars.so: pars.o parsimony.o discreteparsimony.o phylip.o $(LIBS)
$(CC) $(CFLAGS) -o libpars.so $(SHARED) -fPIC pars.c discreteparsimony.c parsimony.c phylip.c Slist.c
libpenny.so: penny.o disc.o wagner.o phylip.h $(LIBS)
$(CC) $(CFLAGS) -o libpenny.so $(SHARED) -fPIC penny.c disc.c wagner.c phylip.c Slist.c
libproml.so: proml.o seq.o ml.o bl.o ml.c prom_common.c $(LIBS)
$(CC) $(CFLAGS) -o libproml.so $(SHARED) -fPIC proml.c prom_common.c seq.c ml.c bl.c phylip.c Slist.c -shared -fPIC
libprotdist.so: protdist.o pmatrix.o seq.o $(LIBS)
$(CC) $(CFLAGS) -o libprotdist.so $(SHARED) -fPIC protdist.c seq.c pmatrix.c phylip.c Slist.c
libprotpars.so: protpars.o seq.o parsimony.o dnaparsimony.o phylip.o $(LIBS)
$(CC) $(CFLAGS) -o libprotpars.so $(SHARED) -fPIC protpars.c seq.c dnaparsimony.c parsimony.c phylip.c Slist.c
librestdist.so: restdist.o rest_common.o seq.o pmatrix.o $(LIBS)
$(CC) $(CFLAGS) -o librestdist.so $(SHARED) -fPIC restdist.c rest_common.c seq.c pmatrix.c phylip.c Slist.c
libseqboot.so: seqboot.o seq.o $(LIBS)
$(CC) $(CFLAGS) -o libseqboot.so $(SHARED) -fPIC seqboot.c seq.c phylip.c Slist.c
libtreedist.so: treedist.o cons.o $(LIBS)
$(CC) $(CFLAGS) -o libtreedist.so $(SHARED) -fPIC treedist.c cons.c phylip.c Slist.c
# End.