Changes

From Genome Analysis Wiki
Jump to: navigation, search

C++ Library: libStatGen

3,306 bytes added, 17:09, 23 August 2011
no edit summary
== Using the Library in Your Own Program ==
=== Starting from a Sample Program (Recommended) ===
[https://github.com/statgen/SampleProgram https://github.com/statgen/SampleProgram] is a simple program demonstrating how to write a tool that uses libStatGen and can be used as a starting point for your tool.
# Add your tests to the <code>test</code> directory.
# Update test/Makefile as appropriate for specifying how to compile/run your tests.
 
 
After compiling a <code>bin</code> directory is created in the top level directory. Your executable goes in there. If you build for <code>debug</code> and/or <code>profile</code>, subdirectories for those are created under <code>bin/</code> and <code>obj</code>.
=== Working from Scratch ===
When compiling your code, be sure to include the library header files found in libStatgen/include/ and link in the appropriate library (opt: libStatGen.a, debug: libStatGen_debug.a, or profile: libStatGen_profile.a).
 
 
=== Starting from a Sample Set of Tools ===
[https://github.com/statgen/SampleTools https://github.com/statgen/SampleTools] is a repository containing multiple programs within one directory structure. It demonstrates how to have subdirectories for each tool using libStatGen and can be used as a starting point for your set of tools.
 
SampleTools has 3 subdirectories:
* copyrights - contains the copyright information, add your own copyrights as necessary
* SampleProgram1 - a dummy demo program to show the structure for having multiple programs
* SampleProgram2 - a second dummy demo program to show the structure for having multiple programs
 
SampleProgram1 & SampleProgram2 have 2 subdirectories:
* src - this is where your own program code goes
* test - this is where your test code goes. Test code can be setup to run with <code>make test</code> to ensure the program works properly.
 
Upon compiling, an <code>obj</code> directory is created under <code>SampleProgram1</code> and <code>SampleProgram2</code> and a <code>bin</code> directory is created at the top level. If you build for <code>debug</code> and/or <code>profile</code>, subdirectories for those are created under <code>bin/</code> and <code>SampleProgram1(2)/obj</code>.
 
 
'''Using SampleTools as a starting point for your set of tools:'''
# Copy <code>SampleTools</code> into a directory with your toolset name (it is the starting point for your own set of tools).
# Update <code>ChangeLog</code>, <code>.gitignore</code>, and <code>README.txt</code> as appropriate.
# Add any necessary copyrights to the copyrights directory.
# Rename the <code>SampleProgram1</code> and <code>SampleProgram2</code> directories
# Create any additional directories as necessary.
#* Recursively copy the structure/Makefiles from <code>SampleProgram1</code>.
# Update <code>SUBDIRS</code> in <code>Makefile</code> as necessary.
# Update <code>Makefile.inc</code>
## Update the <code>VERSION</code> as necessary.
## Replace all occurrences of <code>SAMPLE_PROGRAM</code> with an all caps name for your toolset.
##* You can then use the <code>LIB_PATH_<your toolset name></code> environment variable to specify an alternate path to libStatGen specific for your program. In most cases you will not need to do this.
#* No other updates to <code>Makefile.inc</code> should be necessary.
# For each Program you want to add:
## Move into the appropriate subdirectory.
##* No change should be made to the program's <code>Makefile</code>
## Add your program (cpp & h files) to the <code>src</code> subdirectory.
## Update src/Makefile
### Set EXE to your program executable (replacing sampleProgram)
### Set TOOLBASE, SRCONLY, and HDRONLY as appropriate for specifying your program file names.
### Set any of the other optional settings as specified in the sample makefile.
##* No other changes should be necessary to src/Makefile.
## Add your tests to the <code>test</code> directory.
## Update test/Makefile as appropriate for specifying how to compile/run your tests.
= Troubleshooting =
If you are having trouble compiling any of the versions, check [[libStatGen Troubleshooting]] for help. If that does not solve your problem, email me for support.

Navigation menu