source: trunk/yat/omic/config_bam.h @ 3350

Last change on this file since 3350 was 3350, checked in by Peter, 7 years ago

Make configure htslib aware. Header detection changed to look for
'sam.h', 'htslib/sam.h', 'bam/sam.h', and 'samtools/sam.h'; if second
alternative is detected, YAT_HAVE_HTSLIB_SAM_H is
#defined. YAT_SAM_HEADER is defined appropriately; since 'bam.h'
doesn't exist in htslib, YAT_BAM_HEADER is not defined (users should
#include YAT_SAM_HEADER instead). Likewise linker test is modified so
it tries '-lhts' before trying '-lbam'.

Note, configure now works against htslib, but compilation still fails
due to API changes between bamlib and htslib. For that reason
configure also checks if header 'hts.h' is available and #defined
YAT_HAVE_HTSLIB, which will be used for conditional implementations.

#refs 794

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.0 KB
Line 
1#ifndef theplu_yat_omic_config_bam
2#define theplu_yat_omic_config_bam
3
4// $Id: config_bam.h 3350 2014-11-20 13:25:34Z peter $
5//
6// Copyright (C) 2012, 2013 Peter Johansson
7//
8// This program is free software; you can redistribute it and/or modify
9// it under the terms of the GNU General Public License as published by
10// the Free Software Foundation; either version 3 of the License, or
11// (at your option) any later version.
12//
13// This program is distributed in the hope that it will be useful, but
14// WITHOUT ANY WARRANTY; without even the implied warranty of
15// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16// General Public License for more details.
17//
18// You should have received a copy of the GNU General Public License
19// along with this program. If not, see <http://www.gnu.org/licenses/>.
20
21/*
22   The purpose of this file is to cater for different installation
23   styles. As samtools' Makefile contains no install rule, different
24   distributions have come up with different ideas where to put
25   samtools' header files. Red Hat put them in '/usr/include/bam'
26   whereas Ubuntu put them in '/usr/include/samtools/'. We could solve
27   this by #including <bam.h> and then add appropriate include path
28   (-I) flags to the compiler, but in order to support arbitrary
29   PREFIX we instead choose to #define macros BAM_HEADER and
30   SAM_HEADER depending on where we found the bam headers (at
31   configure time) as <bam.h>, <bam/bam.h>, or <samtools/bam.h>.
32 */
33
34#include "yat/utility/config_public.h"
35
36#ifdef YAT_HAVE_SAM_H
37# define YAT_BAM_HEADER "bam.h"
38# define YAT_SAM_HEADER "sam.h"
39#else
40# ifdef YAT_HAVE_HTSLIB_SAM_H
41#  define YAT_SAM_HEADER "htslib/sam.h"
42# else
43#  ifdef YAT_HAVE_BAM_SAM_H
44#   define YAT_BAM_HEADER "bam/bam.h"
45#   define YAT_SAM_HEADER "bam/sam.h"
46#  else
47#   ifdef YAT_HAVE_SAMTOOLS_SAM_H
48#    define YAT_BAM_HEADER "samtools/bam.h"
49#    define YAT_SAM_HEADER "samtools/sam.h"
50#   endif
51#  endif
52# endif
53#endif
54
55#ifndef YAT_SAM_HEADER
56#error This file requires samtools header files and cannot be used when \
57yat was configured with switch '--without-samtools'.
58#endif
59
60#endif
Note: See TracBrowser for help on using the repository browser.