1AUTOMAKE_OPTIONS = subdir-objects
2
3AM_CFLAGS = $(RNA_CFLAGS) $(PTHREAD_CFLAGS)
4AM_CXXFLAGS = $(RNA_CXXFLAGS) $(PTHREAD_CFLAGS)
5AM_CPPFLAGS = $(RNA_CPPFLAGS) ${SVM_INC} -I$(top_srcdir)/src ${JSON_INC}
6AM_LDFLAGS = $(RNA_LDFLAGS) $(PTHREAD_LIBS)
7
8SUBDIRS = static
9
10vrna_constraintsdir     = $(pkgincludedir)/constraints
11vrna_paramsdir          = $(pkgincludedir)/params
12vrna_utilsdir           = $(pkgincludedir)/utils
13vrna_iodir              = $(pkgincludedir)/io
14vrna_searchdir          = $(pkgincludedir)/search
15vrna_plottingdir        = $(pkgincludedir)/plotting
16vrna_puzzlerdir         = $(pkgincludedir)/plotting/RNApuzzler
17vrna_loopsdir           = $(pkgincludedir)/loops
18vrna_datastructuresdir  = $(pkgincludedir)/datastructures
19vrna_landscapedir       = $(pkgincludedir)/landscape
20
21# the library names to build
22lib_LTLIBRARIES = libRNA.la
23
24# convenience library
25noinst_LTLIBRARIES =  libRNA_conv.la \
26                      libRNA_constraints.la \
27                      libRNA_datastructures.la \
28                      libRNA_utils.la \
29                      libRNA_plotting.la \
30                      libRNA_params.la \
31                      libRNA_loops.la \
32                      libRNA_eval.la \
33                      libRNA_landscape.la \
34                      libRNA_special_const.la
35
36# where to install the headers on the system
37libRNA_ladir = $(includedir)/ViennaRNA
38libRNA_la_SOURCES =
39
40# ldflags to avoid version information
41libRNA_la_LIBADD = libRNA_conv.la
42libRNA_la_LDFLAGS = -avoid-version -static $(LTO_LDFLAGS) $(PTHREAD_LIBS)
43
44libRNA_conv_la_LIBADD = \
45    libRNA_constraints.la \
46    libRNA_datastructures.la \
47    libRNA_utils.la \
48    libRNA_plotting.la \
49    libRNA_params.la \
50    libRNA_eval.la \
51    libRNA_loops.la \
52    libRNA_landscape.la
53
54
55if VRNA_AM_SWITCH_SIMD_SSE41
56noinst_LTLIBRARIES += libRNA_utils_sse41.la
57libRNA_conv_la_LIBADD += libRNA_utils_sse41.la
58libRNA_utils_sse41_la_CFLAGS = $(SIMD_SSE41_FLAGS)
59endif
60
61if VRNA_AM_SWITCH_SIMD_AVX512
62noinst_LTLIBRARIES += libRNA_utils_avx512.la
63libRNA_conv_la_LIBADD += libRNA_utils_avx512.la
64libRNA_utils_avx512_la_CFLAGS = $(SIMD_AVX512_FLAGS)
65endif
66
67# Dummy C++ source to cause C++ linking.
68if VRNA_AM_SWITCH_SVM
69nodist_EXTRA_libRNA_la_SOURCES = dummy.cxx
70else
71nodist_EXTRA_libRNA_la_SOURCES =
72endif
73
74if VRNA_AM_SWITCH_SVM
75  SVM_SRC         = ../@LIBSVM_DIR@/svm.cpp
76  SVM_INC         = -I$(top_srcdir)/src/@LIBSVM_DIR@
77  SVM_H           = ../@LIBSVM_DIR@/svm.h
78  SVM_UTILS       = utils/svm_utils.c
79  SVM_UTILS_H     = utils/svm.h
80  SVM_UTILS_H_OLD = svm_utils.h
81endif
82
83if VRNA_AM_SWITCH_JSON
84  JSON_SRC    = ../json/json.c
85  JSON_H      = ../json/json.h
86  JSON_INC    = -I$(top_srcdir)/src/json
87endif
88
89pkginclude_HEADERS =  \
90    pair_mat.h \
91    RNAstruct.h \
92    dist_vars.h \
93    mfe.h \
94    mfe_window.h \
95    fold.h \
96    part_func.h \
97    part_func_window.h \
98    stringdist.h \
99    edit_cost.h \
100    fold_vars.h \
101    profiledist.h \
102    treedist.h \
103    inverse.h \
104    subopt.h \
105    cofold.h \
106    duplex.h \
107    alifold.h \
108    part_func_co.h \
109    concentrations.h \
110    ProfileAln.h \
111    LPfold.h \
112    Lfold.h \
113    part_func_up.h \
114    ribo.h \
115    findpath.h \
116    data_structures.h \
117    char_stream.h \
118    stream_output.h \
119    fold_compound.h \
120    MEA.h \
121    mm.h \
122    loop_energies.h \
123    exterior_loops.h \
124    hairpin_loops.h \
125    interior_loops.h \
126    multibranch_loops.h \
127    2Dfold.h \
128    2Dpfold.h \
129    PKplex.h\
130    pk_plex.h\
131    ali_plex.h \
132    plex.h \
133    snofold.h \
134    snoop.h \
135    move_set.h\
136    gquad.h \
137    constraints.h \
138    eval.h \
139    perturbation_fold.h \
140    centroid.h\
141    utils.h \
142    structure_utils.h \
143    string_utils.h \
144    aln_util.h \
145    model.h \
146    dp_matrices.h \
147    PS_dot.h \
148    plot_structure.h \
149    plot_aln.h \
150    plot_utils.h \
151    plot_layouts.h \
152    naview.h \
153    boltzmann_sampling.h \
154    equilibrium_probs.h \
155    constraints_ligand.h \
156    constraints_SHAPE.h \
157    constraints_hard.h \
158    constraints_soft.h \
159    alphabet.h \
160    sequence.h \
161    grammar.h \
162    structured_domains.h \
163    unstructured_domains.h \
164    file_utils.h \
165    file_formats.h \
166    file_formats_msa.h \
167    energy_par.h \
168    energy_const.h \
169    params.h \
170    read_epars.h \
171    convert_epars.h \
172    commands.h \
173    units.h \
174    combinatorics.h \
175    neighbor.h \
176    walk.h \
177    heat_capacity.h \
178    ${SVM_UTILS_H_OLD} \
179    ${SVM_H} \
180    ${JSON_H}
181
182if VRNA_AM_SWITCH_SVM
183pkginclude_HEADERS +=  zscore.h
184endif
185
186vrna_constraints_HEADERS = \
187    constraints/basic.h \
188    constraints/ligand.h \
189    constraints/SHAPE.h \
190    constraints/hard.h \
191    constraints/soft.h
192
193
194vrna_loops_HEADERS = \
195    loops/all.h \
196    loops/external.h \
197    loops/hairpin.h \
198    loops/internal.h \
199    loops/multibranch.h
200
201
202vrna_utils_HEADERS = \
203    utils/basic.h \
204    utils/strings.h \
205    utils/structures.h \
206    utils/alignments.h \
207    utils/higher_order_functions.h \
208    utils/cpu.h \
209    utils/units.h \
210    ${SVM_UTILS_H}
211
212
213vrna_search_HEADERS = \
214    search/BoyerMoore.h
215
216
217vrna_plotting_HEADERS = \
218    plotting/alignments.h \
219    plotting/layouts.h \
220    plotting/probabilities.h \
221    plotting/structures.h \
222    plotting/utils.h \
223    plotting/naview.h
224
225vrna_puzzler_HEADERS = \
226    plotting/RNApuzzler/RNApuzzler.h \
227    plotting/RNApuzzler/RNAturtle.h
228
229
230vrna_io_HEADERS = \
231    io/utils.h \
232    io/file_formats.h \
233    io/file_formats_msa.h
234
235
236vrna_params_HEADERS = \
237    params/default.h \
238    params/constants.h \
239    params/basic.h \
240    params/io.h \
241    params/convert.h
242
243
244vrna_datastructures_HEADERS = \
245    datastructures/basic.h \
246    datastructures/lists.h \
247    datastructures/char_stream.h \
248    datastructures/stream_output.h \
249    datastructures/hash_tables.h \
250    datastructures/heap.h
251
252
253vrna_landscape_HEADERS = \
254    landscape/paths.h \
255    landscape/findpath.h \
256    landscape/neighbor.h \
257    landscape/walk.h \
258    landscape/move.h
259
260
261libRNA_conv_la_SOURCES = \
262    fold_compound.c \
263    dist_vars.c \
264    part_func.c \
265    part_func_wrappers.c \
266    pf_fold.c \
267    treedist.c \
268    inverse.c \
269    ProfileDist.c \
270    RNAstruct.c \
271    mfe.c \
272    mfe_window.c \
273    mfe_wrappers.c \
274    mfe_window_wrappers.c \
275    fold.c \
276    stringdist.c \
277    subopt.c \
278    Lfold.c \
279    cofold.c \
280    part_func_co.c \
281    concentrations.c \
282    ProfileAln.c \
283    duplex.c \
284    alifold.c \
285    alipfold.c \
286    LPfold.c \
287    part_func_up.c \
288    ribo.c \
289    MEA.c \
290    mm.c \
291    2Dfold.c \
292    2Dpfold.c \
293    plex_functions.c \
294    ali_plex.c \
295    c_plex.c \
296    plex.c \
297    snofold.c \
298    snoop.c \
299    gquad.c \
300    perturbation_fold.c \
301    centroid.c \
302    model.c \
303    dp_matrices.c \
304    boltzmann_sampling.c \
305    bs_wrappers.c \
306    equilibrium_probs.c \
307    ${SVM_SRC} \
308    ${JSON_SRC} \
309    alphabet.c \
310    sequence.c \
311    unstructured_domains.c \
312    grammar.c \
313    heat_capacity.c
314
315if VRNA_AM_SWITCH_SVM
316libRNA_conv_la_SOURCES += zscore.c
317endif
318
319libRNA_eval_la_SOURCES = \
320    eval.c \
321    eval_wrappers.c
322
323libRNA_constraints_la_SOURCES = \
324    constraints/constraints.c \
325    constraints/SHAPE.c \
326    constraints/hard.c \
327    constraints/soft.c \
328    constraints/ligand.c
329
330libRNA_utils_la_SOURCES = \
331    utils/utils.c \
332    utils/string_utils.c \
333    utils/structure_utils.c \
334    utils/structure_tree.c \
335    utils/msa_utils.c \
336    utils/higher_order_functions.c \
337    utils/cpu.c \
338    utils/units.c \
339    io/io_utils.c \
340    io/file_formats.c \
341    io/file_formats_msa.c \
342    search/BoyerMoore.c \
343    commands.c \
344    combinatorics.c \
345    ${SVM_UTILS}
346
347if VRNA_AM_SWITCH_SIMD_SSE41
348libRNA_utils_sse41_la_SOURCES = \
349    utils/higher_order_functions_sse41.c
350endif
351
352if VRNA_AM_SWITCH_SIMD_AVX512
353libRNA_utils_avx512_la_SOURCES = \
354    utils/higher_order_functions_avx512.c
355endif
356
357libRNA_plotting_la_SOURCES = \
358    plotting/alignments.c \
359    plotting/layouts.c \
360    plotting/probabilities.c \
361    plotting/structures.c \
362    plotting/plot_utils.c \
363    plotting/naview.c \
364    plotting/RNApuzzler/RNApuzzler.c \
365    plotting/RNApuzzler/RNAturtle.c
366
367libRNA_loops_la_SOURCES = \
368    loops/external.c \
369    loops/external_bt.c \
370    loops/external_pf.c \
371    loops/hairpin.c \
372    loops/hairpin_bt.c \
373    loops/hairpin_pf.c \
374    loops/internal.c \
375    loops/internal_bt.c \
376    loops/internal_pf.c \
377    loops/multibranch.c \
378    loops/multibranch_bt.c \
379    loops/multibranch_pf.c
380
381libRNA_params_la_SOURCES = \
382    params/io.c \
383    params/default.c \
384    params/params.c \
385    params/convert.c
386
387libRNA_datastructures_la_SOURCES = \
388    datastructures/basic_datastructures.c \
389    datastructures/lists.c \
390    datastructures/char_stream.c \
391    datastructures/stream_output.c \
392    datastructures/hash_tables.c \
393    datastructures/heap.c
394
395libRNA_landscape_la_SOURCES = \
396    move_set.c \
397    landscape/move.c \
398    landscape/findpath.c \
399    landscape/neighbor.c \
400    landscape/walk.c
401
402libRNA_special_const_la_SOURCES = \
403    special_const.c \
404    ugly_bt.c
405
406RNAPUZZLER_H = \
407    plotting/RNApuzzler/headers/AABB_struct.h \
408    plotting/RNApuzzler/headers/boundingBoxes_struct.h \
409    plotting/RNApuzzler/headers/configArc_struct.h \
410    plotting/RNApuzzler/headers/config_struct.h \
411    plotting/RNApuzzler/headers/configtree_struct.h \
412    plotting/RNApuzzler/headers/tBaseInformation_struct.h
413
414RNAPUZZLER_INC = \
415    plotting/RNApuzzler/includes/coordinates.inc \
416    plotting/RNApuzzler/includes/definitions.inc \
417    plotting/RNApuzzler/includes/vector_math.inc \
418    plotting/RNApuzzler/includes/boundingBoxes.inc \
419    plotting/RNApuzzler/includes/configtree.inc \
420    plotting/RNApuzzler/includes/drawingconfig.inc \
421    plotting/RNApuzzler/includes/intersectLevelBoundingBoxes.inc \
422    plotting/RNApuzzler/includes/intersectLevelLines.inc \
423    plotting/RNApuzzler/includes/intersectLevelTreeNodes.inc \
424    plotting/RNApuzzler/includes/postscriptArcs.inc \
425    plotting/RNApuzzler/includes/boundingWedge.inc \
426    plotting/RNApuzzler/includes/calcDeltas.inc \
427    plotting/RNApuzzler/includes/handleAncestorIntersections.inc \
428    plotting/RNApuzzler/includes/handleConfigChanges.inc \
429    plotting/RNApuzzler/includes/handleSiblingIntersections.inc \
430    plotting/RNApuzzler/includes/intersectionType.inc \
431    plotting/RNApuzzler/includes/optimize.inc \
432    plotting/RNApuzzler/includes/resolveExteriorChildIntersections.inc \
433    plotting/RNApuzzler/includes/resolveIntersections.inc \
434    plotting/RNApuzzler/includes/rotationAngle.inc \
435    plotting/RNApuzzler/includes/svgArcs.inc
436
437# static library for subpackages
438all-local:      libRNA.a
439
440libRNA.a: libRNA.la
441	$(AM_V_GEN)( \
442    $(LIBTOOL) --config > libtoolconfig.tmp && \
443    ( \. ./libtoolconfig.tmp; cp "$$objdir/libRNA.a" ./ ) && \
444    rm -f libtoolconfig.tmp \
445  )
446
447clean-local:
448	-rm -f libRNA.a
449
450noinst_HEADERS  = params/intl11.h \
451                  params/intl11dH.h \
452                  params/intl21.h \
453                  params/intl21dH.h \
454                  params/intl22.h \
455                  params/intl22dH.h \
456                  params/1.8.4_epars.h \
457                  params/1.8.4_intloops.h \
458                  ${RNAPUZZLER_H} \
459                  list.h \
460                  ${SVM_H} \
461                  ${JSON_H}\
462                  special_const.h \
463                  ugly_bt.h
464
465nodist_pkginclude_HEADERS = vrna_config.h
466
467EXTRA_DIST =  $(pkginclude_HEADERS) \
468              constraints/hc_depot.inc \
469              loops/external_hc.inc \
470              loops/external_sc.inc \
471              loops/external_sc_pf.inc \
472              loops/hairpin_hc.inc \
473              loops/hairpin_sc.inc \
474              loops/hairpin_sc_pf.inc \
475              loops/internal_hc.inc \
476              loops/internal_sc.inc \
477              loops/internal_sc_pf.inc \
478              loops/multibranch_hc.inc \
479              loops/multibranch_sc.inc \
480              loops/multibranch_sc_pf.inc \
481              params/svm_model_avg.inc \
482              params/svm_model_sd.inc \
483              data_structures_nonred.inc \
484              plotting/ps_helpers.inc \
485              plotting/svg_helpers.inc \
486              ${RNAPUZZLER_INC} \
487              landscape/local_neighbors.inc \
488              ${SVM_H} \
489              ${JSON_H} \
490              color_output.inc \
491              special_const.h \
492              ugly_bt.h
493
494if VRNA_AM_SWITCH_SVM
495EXTRA_DIST += zscore_dat.inc
496endif
497