-
Notifications
You must be signed in to change notification settings - Fork 251
Building from source : configure options explained
Packages ngs-sdk
, ncbi-vdb
, sra-tools
have some unusual configure options.
Here we will try to explain them.
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
.
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
.
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
.
If location of ngs-sdk
/ncbi-vdb
or their build output directory is not standard (see above), you need to specify it:
-
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
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
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. 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=_directory_
Standard option - Install machine-independent data file's in subdirectories of directory.
Examples of subdirectories are: bin include lib64 lib32 share
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.