Skip to content

Building from source : configure options explained

Andrew Klymenko edited this page Feb 24, 2021 · 12 revisions

Packages ngs-sdk, ncbi-vdb, sra-tools have some unusual configure options.

Here we will try to explain them.

Dependencies

ncbi-vdb package depends on ngs-sdk, sra-tools – on ngs-sdk and ncbi-vdb.

ncbi-vdb should be able to find include files of ngs-sdk, sra-tools - ngs-sdk package and sources and build results of ncbi-vdb.

Build output

By default build output / build results of ngs/ncbi-vdb/sra-tools is created in ~/ncbi-outdir/.

Another possibility is to specify --relative-build-out-dir option - then build results will be created in OUTDIR directory located next to sources.

You set a custom build directory by using --build-prefix, but then - you should tell sra-tools where to find build results of ncbi-vdb.

Defaults: Standard / default / recommended location of source files

Default recommended locations of source files of ngs/ncbi-vdb/sra-tools is:

ngs/ncbi-vdb/sra-tools packages should be located in subdirectories named ngs, ncbi-vdb, sra-tools inside of the same directory.

Usually it is done automatically by running: git clone https://github.com/ncbi/ngs.git ; git clone https://github.com/ncbi/ncbi-vdb.git ; git clone https://github.com/ncbi/sra-tools.git

Then you should see the following:

$ ls
ncbi-vdb  ngs  sra-tools
$ ls ngs
CHANGES.md  LICENSE  Makefile  ngs-bam  ngs-java  ngs-python  ngs-sdk  …
$ ls ncbi-vdb
build configure libs setup CHANGES.md interfaces LICENSE Makefile test …
$ ls sra-tools
build configure Makefile setup test CHANGES.md LICENSE shared tools …

If you create repositories as described above and run ./configure and make in each of ngs/ncbi-vdb/sra-tools subdirectories – each of them should find all required files from ngs/ncbi-vdb.

Non-standard location of ngs-sdk/ncbi-vdb

If location of ngs-sdk/ncbi-vdb or their build output directory is not standard (see above), you need to specify it:

Examples:

  • ngs-sdk is in ~/1/ngs-1.3.0/ngs-sdk
  • ncbi-vdb is in ~/2/ncbi-vdb-2.8.0
  • sra-tools in ~/3/sra-tools.2.8.0

Configuring ncbi-vdb

ncbi-vdb/configure requires to find header files of ngs-sdk:

~/2/ncbi-vdb-2.8.0/configure --with-ngs-sdk-prefix=~/1/ngs-1.3.0/ngs-sdk

or

cd ~/1/ngs-1.3.0/ngs-sdk && ./configure --prefix=~/ngs-sdk && make default install
cd ~/2/ncbi-vdb-2.8.0 && ./configure --with-ngs-sdk-prefix=~/ngs-sdk

Configuring sra-tools

sra-tools needs to find ngs-sdk package and ncbi-vdb's sources and build results.

cd ~/1/ngs-1.3.0/ngs-sdk
./configure --build-prefix=~/ngs-sdk-build --prefix=~/ngs-sdk && make default install
cd ~/2/ncbi-vdb-2.8.0
./configure --with-ngs-sdk-prefix=~/ngs-sdk --build-prefix=~/ncbi-vdb-build && make
cd ~/3/sra-tools.2.8.0
./configure --with-ngs-sdk-prefix=~/ngs-sdk --with-ncbi-vdb-sources=~/2/ncbi-vdb-2.8.0 --with-ncbi-vdb-build=~/ncbi-vdb-build

Configure options are sticky!

Configure options are sticky. Running configure without options will use the options that you used the last time.

Example:

./configure –with-debug # will configure with debug :)

If next time you run

./configure # it will use the same options ( same as ./configure –with-debug)

To clear the saved options and all generated files run “./configure --clear”.

To check current configuration information and options you used run:

./configure –status

Prefix

--prefix=_directory_

Standard option - Install machine-independent data file's in subdirectories of directory.

Examples of subdirectories are: bin include lib64 lib32 share

Optional Packages

Some tools and libraries depend on third party libraries and development headers (libxml2, libhdf5, ...). By default configure will attempt to utilize them from your system if they can be located.

You can provide their location by specifying one of the options: --with-hdf5-prefix, --with-xml2-prefix, etc.