From 0180d7256f5c781364b04559b39ed2db41585787 Mon Sep 17 00:00:00 2001 From: Derek Date: Wed, 18 Aug 2010 15:19:08 -0400 Subject: [PATCH] Reorganized source tree & build system --- Makefile | 74 ++++++++++--------- BGZF.cpp => src/api/BGZF.cpp | 0 BGZF.h => src/api/BGZF.h | 0 BamAux.h => src/api/BamAux.h | 0 BamIndex.cpp => src/api/BamIndex.cpp | 0 BamIndex.h => src/api/BamIndex.h | 0 .../api/BamMultiReader.cpp | 0 BamMultiReader.h => src/api/BamMultiReader.h | 0 BamReader.cpp => src/api/BamReader.cpp | 0 BamReader.h => src/api/BamReader.h | 0 BamWriter.cpp => src/api/BamWriter.cpp | 0 BamWriter.h => src/api/BamWriter.h | 0 src/api/Makefile | 27 +++++++ src/toolkit/Makefile | 46 ++++++++++++ bamtools.cpp => src/toolkit/bamtools.cpp | 0 .../toolkit/bamtools_convert.cpp | 0 .../toolkit/bamtools_convert.h | 0 .../toolkit/bamtools_count.cpp | 0 .../toolkit/bamtools_count.h | 0 .../toolkit/bamtools_coverage.cpp | 0 .../toolkit/bamtools_coverage.h | 0 .../toolkit/bamtools_filter.cpp | 0 .../toolkit/bamtools_filter.h | 0 .../toolkit/bamtools_header.cpp | 0 .../toolkit/bamtools_header.h | 0 .../toolkit/bamtools_index.cpp | 0 .../toolkit/bamtools_index.h | 0 .../toolkit/bamtools_merge.cpp | 0 .../toolkit/bamtools_merge.h | 0 .../toolkit/bamtools_random.cpp | 0 .../toolkit/bamtools_random.h | 0 .../toolkit/bamtools_sort.cpp | 0 .../toolkit/bamtools_sort.h | 0 .../toolkit/bamtools_stats.cpp | 0 .../toolkit/bamtools_stats.h | 0 .../toolkit/bamtools_tool.h | 0 src/utils/Makefile | 29 ++++++++ .../utils/bamtools_fasta.cpp | 0 .../utils/bamtools_fasta.h | 0 .../utils/bamtools_options.cpp | 0 .../utils/bamtools_options.h | 0 .../utils/bamtools_pileup.cpp | 0 .../utils/bamtools_pileup.h | 0 .../utils/bamtools_utilities.cpp | 0 .../utils/bamtools_utilities.h | 0 .../utils/bamtools_variant.h | 0 46 files changed, 143 insertions(+), 33 deletions(-) rename BGZF.cpp => src/api/BGZF.cpp (100%) rename BGZF.h => src/api/BGZF.h (100%) rename BamAux.h => src/api/BamAux.h (100%) rename BamIndex.cpp => src/api/BamIndex.cpp (100%) rename BamIndex.h => src/api/BamIndex.h (100%) rename BamMultiReader.cpp => src/api/BamMultiReader.cpp (100%) rename BamMultiReader.h => src/api/BamMultiReader.h (100%) rename BamReader.cpp => src/api/BamReader.cpp (100%) rename BamReader.h => src/api/BamReader.h (100%) rename BamWriter.cpp => src/api/BamWriter.cpp (100%) rename BamWriter.h => src/api/BamWriter.h (100%) create mode 100644 src/api/Makefile create mode 100644 src/toolkit/Makefile rename bamtools.cpp => src/toolkit/bamtools.cpp (100%) rename bamtools_convert.cpp => src/toolkit/bamtools_convert.cpp (100%) rename bamtools_convert.h => src/toolkit/bamtools_convert.h (100%) rename bamtools_count.cpp => src/toolkit/bamtools_count.cpp (100%) rename bamtools_count.h => src/toolkit/bamtools_count.h (100%) rename bamtools_coverage.cpp => src/toolkit/bamtools_coverage.cpp (100%) rename bamtools_coverage.h => src/toolkit/bamtools_coverage.h (100%) rename bamtools_filter.cpp => src/toolkit/bamtools_filter.cpp (100%) rename bamtools_filter.h => src/toolkit/bamtools_filter.h (100%) rename bamtools_header.cpp => src/toolkit/bamtools_header.cpp (100%) rename bamtools_header.h => src/toolkit/bamtools_header.h (100%) rename bamtools_index.cpp => src/toolkit/bamtools_index.cpp (100%) rename bamtools_index.h => src/toolkit/bamtools_index.h (100%) rename bamtools_merge.cpp => src/toolkit/bamtools_merge.cpp (100%) rename bamtools_merge.h => src/toolkit/bamtools_merge.h (100%) rename bamtools_random.cpp => src/toolkit/bamtools_random.cpp (100%) rename bamtools_random.h => src/toolkit/bamtools_random.h (100%) rename bamtools_sort.cpp => src/toolkit/bamtools_sort.cpp (100%) rename bamtools_sort.h => src/toolkit/bamtools_sort.h (100%) rename bamtools_stats.cpp => src/toolkit/bamtools_stats.cpp (100%) rename bamtools_stats.h => src/toolkit/bamtools_stats.h (100%) rename bamtools_tool.h => src/toolkit/bamtools_tool.h (100%) create mode 100644 src/utils/Makefile rename bamtools_fasta.cpp => src/utils/bamtools_fasta.cpp (100%) rename bamtools_fasta.h => src/utils/bamtools_fasta.h (100%) rename bamtools_options.cpp => src/utils/bamtools_options.cpp (100%) rename bamtools_options.h => src/utils/bamtools_options.h (100%) rename bamtools_pileup.cpp => src/utils/bamtools_pileup.cpp (100%) rename bamtools_pileup.h => src/utils/bamtools_pileup.h (100%) rename bamtools_utilities.cpp => src/utils/bamtools_utilities.cpp (100%) rename bamtools_utilities.h => src/utils/bamtools_utilities.h (100%) rename bamtools_variant.h => src/utils/bamtools_variant.h (100%) diff --git a/Makefile b/Makefile index b3d285b..033c662 100644 --- a/Makefile +++ b/Makefile @@ -1,33 +1,41 @@ -CXX= g++ -CXXFLAGS= -Wall -O3 -D_FILE_OFFSET_BITS=64 -PROG= bamtools -API= BGZF.o \ - BamIndex.o \ - BamReader.o \ - BamWriter.o \ - BamMultiReader.o -UTILS= bamtools_fasta.o \ - bamtools_options.o \ - bamtools_pileup.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_random.o \ - bamtools_sort.o \ - bamtools_stats.o -MAIN= bamtools.o -OBJS= $(API) $(UTILS) $(TOOLKIT) $(MAIN) -LIBS= -lz - -all: $(PROG) - -bamtools: $(OBJS) - $(CXX) $(CXXFLAGS) -o $@ $(OBJS) $(LIBS) - -clean: - rm -fr gmon.out *.o *.a a.out *~ +# ========================== +# BamTools Makefile +# (c) 2010 Derek Barnett +# ========================== + +# define main directories +export OBJ_DIR = obj +export BIN_DIR = bin +export SRC_DIR = src + +# define compile/link flags +export CXX = g++ +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)/toolkit + +all: + @echo "Building BamTools:" + @echo "Version: $$BAMTOOLS_VERSION" + @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 diff --git a/BGZF.cpp b/src/api/BGZF.cpp similarity index 100% rename from BGZF.cpp rename to src/api/BGZF.cpp diff --git a/BGZF.h b/src/api/BGZF.h similarity index 100% rename from BGZF.h rename to src/api/BGZF.h diff --git a/BamAux.h b/src/api/BamAux.h similarity index 100% rename from BamAux.h rename to src/api/BamAux.h diff --git a/BamIndex.cpp b/src/api/BamIndex.cpp similarity index 100% rename from BamIndex.cpp rename to src/api/BamIndex.cpp diff --git a/BamIndex.h b/src/api/BamIndex.h similarity index 100% rename from BamIndex.h rename to src/api/BamIndex.h diff --git a/BamMultiReader.cpp b/src/api/BamMultiReader.cpp similarity index 100% rename from BamMultiReader.cpp rename to src/api/BamMultiReader.cpp diff --git a/BamMultiReader.h b/src/api/BamMultiReader.h similarity index 100% rename from BamMultiReader.h rename to src/api/BamMultiReader.h diff --git a/BamReader.cpp b/src/api/BamReader.cpp similarity index 100% rename from BamReader.cpp rename to src/api/BamReader.cpp diff --git a/BamReader.h b/src/api/BamReader.h similarity index 100% rename from BamReader.h rename to src/api/BamReader.h diff --git a/BamWriter.cpp b/src/api/BamWriter.cpp similarity index 100% rename from BamWriter.cpp rename to src/api/BamWriter.cpp diff --git a/BamWriter.h b/src/api/BamWriter.h similarity index 100% rename from BamWriter.h rename to src/api/BamWriter.h diff --git a/src/api/Makefile b/src/api/Makefile new file mode 100644 index 0000000..5ea39d5 --- /dev/null +++ b/src/api/Makefile @@ -0,0 +1,27 @@ +OBJ_DIR = ../../obj +BIN_DIR = ../../bin + +# ---------------------------------- +# define our source and object files +# ---------------------------------- +SOURCES = BGZF.cpp \ + BamIndex.cpp \ + BamReader.cpp \ + BamMultiReader.cpp \ + BamWriter.cpp +OBJECTS= $(SOURCES:.cpp=.o) +BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) + +all: $(BUILT_OBJECTS) + +$(BUILT_OBJECTS): $(SOURCES) + @echo " * compiling" $(*F).cpp + @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) + +.PHONY: all + +clean: + @echo "Cleaning up." + @rm -f $(OBJ_DIR)/* $(BIN_DIR)/* + +.PHONY: clean diff --git a/src/toolkit/Makefile b/src/toolkit/Makefile new file mode 100644 index 0000000..d7bf878 --- /dev/null +++ b/src/toolkit/Makefile @@ -0,0 +1,46 @@ +API_DIR = ../api +UTILS_DIR = ../utils +OBJ_DIR = ../../obj +BIN_DIR = ../../bin + +INCLUDES = -I$(API_DIR)/ -I$(UTILS_DIR) + +# ---------------------------------- +# define our source and object files +# ---------------------------------- +SOURCES = bamtools_convert.cpp \ + bamtools_count.cpp \ + bamtools_coverage.cpp \ + bamtools_filter.cpp \ + bamtools_header.cpp \ + bamtools_index.cpp \ + bamtools_merge.cpp \ + bamtools_random.cpp \ + bamtools_sort.cpp \ + bamtools_stats.cpp \ + bamtools.cpp +OBJECTS= $(SOURCES:.cpp=.o) +BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) +EXT_OBJECTS = $(OBJ_DIR)/*.o +PROGRAM = bamtools + +all: $(PROGRAM) + +.PHONY: all + +$(PROGRAM): $(BUILT_OBJECTS) $(EXT_OBJECTS) + @echo " * linking $(PROGRAM)" + @$(CXX) $(LDFLAGS) $(CXXFLAGS) -o $(BIN_DIR)/$@ $^ $(LIBS) + +$(BUILT_OBJECTS): $(SOURCES) + @echo " * compiling" $(*F).cpp + @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) + +$(EXT_OBJECTS): + @$(MAKE) --no-print-directory -C $(API_DIR) $(UTILS_DIR) + +clean: + @echo "Cleaning up." + @rm -f $(OBJ_DIR)/* $(BIN_DIR)/* + +.PHONY: clean diff --git a/bamtools.cpp b/src/toolkit/bamtools.cpp similarity index 100% rename from bamtools.cpp rename to src/toolkit/bamtools.cpp diff --git a/bamtools_convert.cpp b/src/toolkit/bamtools_convert.cpp similarity index 100% rename from bamtools_convert.cpp rename to src/toolkit/bamtools_convert.cpp diff --git a/bamtools_convert.h b/src/toolkit/bamtools_convert.h similarity index 100% rename from bamtools_convert.h rename to src/toolkit/bamtools_convert.h diff --git a/bamtools_count.cpp b/src/toolkit/bamtools_count.cpp similarity index 100% rename from bamtools_count.cpp rename to src/toolkit/bamtools_count.cpp diff --git a/bamtools_count.h b/src/toolkit/bamtools_count.h similarity index 100% rename from bamtools_count.h rename to src/toolkit/bamtools_count.h diff --git a/bamtools_coverage.cpp b/src/toolkit/bamtools_coverage.cpp similarity index 100% rename from bamtools_coverage.cpp rename to src/toolkit/bamtools_coverage.cpp diff --git a/bamtools_coverage.h b/src/toolkit/bamtools_coverage.h similarity index 100% rename from bamtools_coverage.h rename to src/toolkit/bamtools_coverage.h diff --git a/bamtools_filter.cpp b/src/toolkit/bamtools_filter.cpp similarity index 100% rename from bamtools_filter.cpp rename to src/toolkit/bamtools_filter.cpp diff --git a/bamtools_filter.h b/src/toolkit/bamtools_filter.h similarity index 100% rename from bamtools_filter.h rename to src/toolkit/bamtools_filter.h diff --git a/bamtools_header.cpp b/src/toolkit/bamtools_header.cpp similarity index 100% rename from bamtools_header.cpp rename to src/toolkit/bamtools_header.cpp diff --git a/bamtools_header.h b/src/toolkit/bamtools_header.h similarity index 100% rename from bamtools_header.h rename to src/toolkit/bamtools_header.h diff --git a/bamtools_index.cpp b/src/toolkit/bamtools_index.cpp similarity index 100% rename from bamtools_index.cpp rename to src/toolkit/bamtools_index.cpp diff --git a/bamtools_index.h b/src/toolkit/bamtools_index.h similarity index 100% rename from bamtools_index.h rename to src/toolkit/bamtools_index.h diff --git a/bamtools_merge.cpp b/src/toolkit/bamtools_merge.cpp similarity index 100% rename from bamtools_merge.cpp rename to src/toolkit/bamtools_merge.cpp diff --git a/bamtools_merge.h b/src/toolkit/bamtools_merge.h similarity index 100% rename from bamtools_merge.h rename to src/toolkit/bamtools_merge.h diff --git a/bamtools_random.cpp b/src/toolkit/bamtools_random.cpp similarity index 100% rename from bamtools_random.cpp rename to src/toolkit/bamtools_random.cpp diff --git a/bamtools_random.h b/src/toolkit/bamtools_random.h similarity index 100% rename from bamtools_random.h rename to src/toolkit/bamtools_random.h diff --git a/bamtools_sort.cpp b/src/toolkit/bamtools_sort.cpp similarity index 100% rename from bamtools_sort.cpp rename to src/toolkit/bamtools_sort.cpp diff --git a/bamtools_sort.h b/src/toolkit/bamtools_sort.h similarity index 100% rename from bamtools_sort.h rename to src/toolkit/bamtools_sort.h diff --git a/bamtools_stats.cpp b/src/toolkit/bamtools_stats.cpp similarity index 100% rename from bamtools_stats.cpp rename to src/toolkit/bamtools_stats.cpp diff --git a/bamtools_stats.h b/src/toolkit/bamtools_stats.h similarity index 100% rename from bamtools_stats.h rename to src/toolkit/bamtools_stats.h diff --git a/bamtools_tool.h b/src/toolkit/bamtools_tool.h similarity index 100% rename from bamtools_tool.h rename to src/toolkit/bamtools_tool.h diff --git a/src/utils/Makefile b/src/utils/Makefile new file mode 100644 index 0000000..64e0955 --- /dev/null +++ b/src/utils/Makefile @@ -0,0 +1,29 @@ +API_DIR = ../api +OBJ_DIR = ../../obj +BIN_DIR = ../../bin + +INCLUDES = -I$(API_DIR)/ + +# ---------------------------------- +# define our source and object files +# ---------------------------------- +SOURCES = bamtools_fasta.cpp \ + bamtools_options.cpp \ + bamtools_pileup.cpp \ + bamtools_utilities.cpp +OBJECTS= $(SOURCES:.cpp=.o) +BUILT_OBJECTS= $(patsubst %,$(OBJ_DIR)/%,$(OBJECTS)) + +all: $(BUILT_OBJECTS) + +$(BUILT_OBJECTS): $(SOURCES) + @echo " * compiling" $(*F).cpp + @$(CXX) -c -o $@ $(*F).cpp $(LDFLAGS) $(CXXFLAGS) $(INCLUDES) + +.PHONY: all + +clean: + @echo "Cleaning up." + @rm -f $(OBJ_DIR)/* $(BIN_DIR)/* + +.PHONY: clean diff --git a/bamtools_fasta.cpp b/src/utils/bamtools_fasta.cpp similarity index 100% rename from bamtools_fasta.cpp rename to src/utils/bamtools_fasta.cpp diff --git a/bamtools_fasta.h b/src/utils/bamtools_fasta.h similarity index 100% rename from bamtools_fasta.h rename to src/utils/bamtools_fasta.h diff --git a/bamtools_options.cpp b/src/utils/bamtools_options.cpp similarity index 100% rename from bamtools_options.cpp rename to src/utils/bamtools_options.cpp diff --git a/bamtools_options.h b/src/utils/bamtools_options.h similarity index 100% rename from bamtools_options.h rename to src/utils/bamtools_options.h diff --git a/bamtools_pileup.cpp b/src/utils/bamtools_pileup.cpp similarity index 100% rename from bamtools_pileup.cpp rename to src/utils/bamtools_pileup.cpp diff --git a/bamtools_pileup.h b/src/utils/bamtools_pileup.h similarity index 100% rename from bamtools_pileup.h rename to src/utils/bamtools_pileup.h diff --git a/bamtools_utilities.cpp b/src/utils/bamtools_utilities.cpp similarity index 100% rename from bamtools_utilities.cpp rename to src/utils/bamtools_utilities.cpp diff --git a/bamtools_utilities.h b/src/utils/bamtools_utilities.h similarity index 100% rename from bamtools_utilities.h rename to src/utils/bamtools_utilities.h diff --git a/bamtools_variant.h b/src/utils/bamtools_variant.h similarity index 100% rename from bamtools_variant.h rename to src/utils/bamtools_variant.h -- 2.39.2