-CC= gcc\r
-CXX= g++\r
-CFLAGS= -Wall -O3\r
-CXXFLAGS= $(CFLAGS)\r
-DFLAGS= -D_IOLIB=2 #-D_NDEBUG\r
-OBJS= BamReader.o bgzf.o\r
-PROG= BamReaderTest\r
-INCLUDES= \r
-ARFLAGS= -crs\r
-LIBS= -lz\r
-SUBDIRS= .\r
-\r
-.SUFFIXES:.c .cpp .o\r
-\r
-.c.o:\r
- $(CC) -c $(CFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@\r
-\r
-.cpp.o:\r
- $(CXX) -c $(CXXFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@\r
-\r
-all: $(PROG) BamConversion\r
-\r
-lib:libbambc.a\r
-\r
-libbambc.a:$(OBJS)\r
- $(AR) $(ARFLAGS) $@ $(OBJS)\r
-\r
-BamReaderTest:lib BamReaderMain.o\r
- $(CXX) $(CXXFLAGS) -o $@ BamReaderMain.o $(LIBS) -L. -lbambc\r
-\r
-BamConversion: lib BamWriter.o BamConversionMain.o\r
- $(CXX) $(CXXFLAGS) -o $@ BamWriter.o BamConversionMain.o $(LIBS) -L. -lbambc\r
-\r
-BamMerge: lib BamMerge.o\r
- $(CXX) $(CXXFLAGS) -o $@ BamWriter.o BamMerge.o $(LIBS) -L. -lbambc\r
-\r
-\r
-clean:\r
- rm -fr gmon.out *.o *.a a.out $(PROG) BamConversion *~\r
+# ==========================
+# BamTools Makefile
+# (c) 2010 Derek Barnett
+#
+# top-level
+# ==========================
+
+# define main directories
+export OBJ_DIR = obj
+export BIN_DIR = bin
+export SRC_DIR = src
+
+# define compile/link flags
+export CXX = g++\r
+export CXXFLAGS = -Wall -O3 -D_FILE_OFFSET_BITS=64
+export LIBS = -lz
+
+# define current BamTools version
+export BAMTOOLS_VERSION = 0.7.0812
+
+# define source subdirectories
+SUBDIRS = $(SRC_DIR)/api \
+ $(SRC_DIR)/utils \
+ $(SRC_DIR)/third_party \
+ $(SRC_DIR)/toolkit
+
+all:
+ @echo "Building BamTools:"
+ @echo "Version: $$BAMTOOLS_VERSION"
+ @echo "========================================================="
+ @echo ""
+ @echo "- Creating target directories"
+ @mkdir -p $(BIN_DIR)
+ @mkdir -p $(OBJ_DIR)
+ @echo ""
+ @for dir in $(SUBDIRS); do \
+ echo "- Building in $$dir"; \
+ $(MAKE) --no-print-directory -C $$dir; \
+ echo ""; \
+ done
+
+.PHONY: all
+
+clean:
+ @echo "Cleaning up."
+ @rm -f $(OBJ_DIR)/* $(BIN_DIR)/*
+
+.PHONY: clean