-
Notifications
You must be signed in to change notification settings - Fork 279
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-sdkis in~/1/ngs-1.3.0/ngs-sdk -
ncbi-vdbis in~/2/ncbi-vdb-2.8.0 -
sra-toolsin~/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.