-CC= gcc
-CXX= g++
-CFLAGS= -Wall -O3
-CXXFLAGS= $(CFLAGS)
-DFLAGS= -D_IOLIB=2 #-D_NDEBUG
-OBJS= BamReader.o bgzf.o
-PROG= BamReaderTest
-INCLUDES=
-ARFLAGS= -crs
-LIBS= -lz
-SUBDIRS= .
-
-.SUFFIXES:.c .cpp .o
-
-.c.o:
- $(CC) -c $(CFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@
-
-.cpp.o:
- $(CXX) -c $(CXXFLAGS) $(DFLAGS) $(INCLUDES) $< -o $@
-
-all: $(PROG) BamConversion
-
-lib:libbambc.a
-
-libbambc.a:$(OBJS)
- $(AR) $(ARFLAGS) $@ $(OBJS)
-
-BamReaderTest:lib BamReaderMain.o
- $(CXX) $(CXXFLAGS) -o $@ BamReaderMain.o $(LIBS) -L. -lbambc
-
-BamConversion: lib BamWriter.o BamConversionMain.o
- $(CXX) $(CXXFLAGS) -o $@ BamWriter.o BamConversionMain.o $(LIBS) -L. -lbambc
+# ==========================
+# 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:
- rm -fr gmon.out *.o *.a a.out $(PROG) BamConversion *~
+ @echo "Cleaning up."
+ @rm -f $(OBJ_DIR)/* $(BIN_DIR)/*
+
+.PHONY: clean