// Marth Lab, Department of Biology, Boston College\r
// All rights reserved.\r
// ---------------------------------------------------------------------------\r
-// Last modified: 11 January 2010 (DB)\r
+// Last modified: 9 July 2010 (DB)\r
// ---------------------------------------------------------------------------\r
// BGZF routines were adapted from the bgzf.c code developed at the Broad\r
// Institute.\r
// stdin/stdout option contributed by Aaron Quinlan (2010-Jan-03)\r
if ( (filename != "stdin") && (filename != "stdout") ) {\r
// read/write BGZF data to/from a file\r
- Stream = fopen(filename.c_str(), mode);\r
+ Stream = fopen64(filename.c_str(), mode);\r
}\r
else if ( (filename == "stdin") && (strcmp(mode, "rb") == 0 ) ) { \r
// read BGZF data from stdin\r
- Stream = freopen(NULL, mode, stdin);\r
+ Stream = freopen64(NULL, mode, stdin);\r
}\r
else if ( (filename == "stdout") && (strcmp(mode, "wb") == 0) ) { \r
// write BGZF data to stdout\r
- Stream = freopen(NULL, mode, stdout);\r
+ Stream = freopen64(NULL, mode, stdout);\r
}\r
\r
if(!Stream) {\r
}\r
\r
if ( BlockOffset == BlockLength ) {\r
- BlockAddress = ftell(Stream);\r
+ BlockAddress = ftello(Stream);\r
BlockOffset = 0;\r
BlockLength = 0;\r
}\r
bool BgzfData::ReadBlock(void) {\r
\r
char header[BLOCK_HEADER_LENGTH];\r
- int64_t blockAddress = ftell(Stream);\r
-\r
+ int64_t blockAddress = ftello(Stream);\r
+ \r
int count = fread(header, 1, sizeof(header), Stream);\r
if (count == 0) {\r
BlockLength = 0;\r
int blockOffset = (position & 0xFFFF);\r
int64_t blockAddress = (position >> 16) & 0xFFFFFFFFFFFFLL;\r
\r
- if (fseek(Stream, blockAddress, SEEK_SET) != 0) {\r
+ if (fseeko(Stream, blockAddress, SEEK_SET) != 0) {\r
printf("BGZF ERROR: unable to seek in file\n");\r
return false;\r
}\r
// Marth Lab, Department of Biology, Boston College\r
// All rights reserved.\r
// ---------------------------------------------------------------------------\r
-// Last modified: 22 June 2010 (DB)\r
+// Last modified: 9 July 2010 (DB)\r
// ---------------------------------------------------------------------------\r
// BGZF routines were adapted from the bgzf.c code developed at the Broad\r
// Institute.\r
\r
// closes BGZF file\r
void Close(void);\r
- // opens the BGZF file for reading (mode is either "rb" for reading, or "wb" for writing\r
+ // opens the BGZF file (mode is either "rb" for reading, or "wb" for writing)\r
bool Open(const std::string& filename, const char* mode);\r
// reads BGZF data into a byte buffer\r
int Read(char* data, const unsigned int dataLength);\r
CXX= g++\r
-CXXFLAGS= -Wall -O3\r
+CXXFLAGS= -Wall -O3 -D_FILE_OFFSET_BITS=64\r
PROG= bamtools\r
-API= BGZF.o BamReader.o BamWriter.o BamMultiReader.o
-UTILS= bamtools_options.o bamtools_utilities.o
-TOOLKIT= bamtools_convert.o bamtools_count.o bamtools_coverage.o bamtools_filter.o bamtools_header.o bamtools_index.o bamtools_merge.o bamtools_sam.o bamtools_sort.o bamtools_stats.o
+API= BGZF.o \
+ BamIndex.o \
+ BamReader.o \
+ BamWriter.o \
+ BamMultiReader.o
+UTILS= bamtools_options.o \
+ bamtools_utilities.o
+TOOLKIT= bamtools_convert.o \
+ bamtools_count.o \
+ bamtools_coverage.o \
+ bamtools_filter.o \
+ bamtools_header.o \
+ bamtools_index.o \
+ bamtools_merge.o \
+ bamtools_sam.o \
+ bamtools_sort.o \
+ bamtools_stats.o
MAIN= bamtools.o
OBJS= $(API) $(UTILS) $(TOOLKIT) $(MAIN)
LIBS= -lz
all: $(PROG)\r
\r
bamtools: $(OBJS)\r
- $(CXX) $(CXXFLAGS) -o $@ $(OBJS) $(LIBS)\r
+ $(CXX) $(CXXFLAGS) -o $@ $(OBJS) $(LIBS)
\r
clean:\r
rm -fr gmon.out *.o *.a a.out *~\r