File: build.html

package info (click to toggle)
seqtools 4.44.1%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 28,468 kB
  • sloc: cpp: 53,636; sh: 12,199; makefile: 385
file content (54 lines) | stat: -rw-r--r-- 3,673 bytes parent folder | download | duplicates (4)
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
<head>
  <title>SeqTools - Build System</title>
</head>


<body>
<div class="outer">
  <h1>Build System</h1>
  This page describes how to compile the SeqTools package using the Autotools scripts included with the source code.

  <h2>Autotools</h2>
  <p>
    The SeqTools package is configured and built using the GNU Build System (aka Autotools).  The relevant configuration files are listed below:
    <ul>
      <li>src/version.m4: This specifies the version number for the build. It is included by configure.ac, which sets the version number in the PACKAGE_VERSION variable in the config.h file, which is included by the code.
      <li>src/configure.ac: This file is processed by autoconf to produce the configure file.
      <li>src/Makefile.am: This file is processed by automake to produce the Makefile.in file.
      <li>src/AUTHORS, src/COPYING, src/README, src/NEWS, src/ChangeLog: These files are for information.
      <li>subdirectory Makefile.am files: The subdirectories blixemApp, dotterApp, seqtoolsUtils and libpfetch all contain a Makefile.am file, which is processed by automake to create a Makefile.in file in that directory.
    </ul>
  </p>

  <p>
    The build process is as follows:
    <ul>
      <li>Run '<code>autoreconf -i</code>' in the <code>src</code> directory. This runs autoheader, aclocal, autoconf and automake and creates the configure script (and some other required files) in the src directory.
      <li><code>cd</code> to the directory where the code is to be built (this can be src or any other directory, e.g. src/build) and run the configure script from there. This will create a makefile in the build directory (and subdirectories for blixemApp, dotterApp, seqtoolsUtils and libpfetch, which all contain a makefile for building that module). It will also create the config.h file that will be included by the code, and a few other required files.
      <li>Run <code>make</code> in the build directory to build everything (or in a subdirectory to build just that module).
    </ul>
  </p>

  <h2>Modules</h2>
  <p>
    The source code includes the following modules. Each module has its own subdirectory with a makefile that produces a <code>.a</code> convenience library that is statically linked by the executables that require that code. The executables are built by the main <code>Makefile</code> in the <code>src</code> directory. The blixem and blixemh executables both use the same source code (the blixemApp code) but blixemh is compiled using the <code>PFETCH_HTML</code> flag, which conditionally compiles some additional code.
    <ul>
      <li>blixemApp: Blixem application code.
      <li>dotterApp: Dotter application code.
      <li>seqtoolsUtils: Generic utility functions. Required by dotter, blixem and blixemh.
      <li>seqtoolsUtils: Generic seqtools utility functions. Required by dotter, blixem and blixemh.
      <li>libpfetch: Utilities for fetching sequences over http. Required by blixemh.
      <li>gbtools: Generic utility functions from an external repository of shared code. This code is included in the distribution so that it is automatically compiled as part of the seqtools package.
    </ul>
  </p>

  <h2>Dependencies</h2>
  <p>
    <ul>
      <li>All of the executables in the SeqTools package require the GLib and GTK+ libraries. These are built using pkg-config. configure.ac specifies which version of the libraries are required.
      <li>blixemh uses the libpfetch library, which requires the libcurl library.
      <li>blixem and blixemh compile in the sqlite3 library if it is availble. If it is not available, the sqlite functionality is disabled.
    </ul>
  </p>
</div>
</body>