https://github.com/jttoivon/MODER
Tip revision: c485231e5b468ae509306e1aaeebaa0f3004572d authored by Jarkko Toivonen on 31 March 2020, 18:10:18 UTC
Fixed indexing bug.
Fixed indexing bug.
Tip revision: c485231
Makefile
package = moder
version = 1.0.1
tarname = $(package)
distdir = $(tarname)-$(version)
prefix=/usr/local
datarootdir=$(prefix)/share
docdir=$(datarootdir)/doc/$(package)
ifdef BOOSTROOT
BOOSTINC=-I $(BOOSTROOT)/include
BOOSTLIB=-L $(BOOSTROOT)/lib
PROGOPT=$(BOOSTROOT)/lib/libboost_program_options.a
else
BOOSTINC=
BOOSTLIB=
PROGOPT=-lboost_program_options -lboost_system -lboost_filesystem
endif
CXX=g++
#CXX=clang++
#CXX=$(HOME)/usr/bin/g++
CXXFLAGS= -std=gnu++11 -DPACKAGE_VERSION=\"$(version)\" -Wall -Wno-sign-compare -g $(BOOSTINC)
CFLAGS= -Wall -Wno-sign-compare -g
ifeq ($(CXX), clang++)
CXXFLAGS += -Wno-unused-function
endif
NOOPENMP?=0
ifeq ($(NOOPENMP),0)
CXXFLAGS += -fopenmp #-Wno-unknown-pragmas
else
CXXFLAGS += -Wno-unknown-pragmas
endif
DEBUG?=0
OBJDIR=.
PRGPREFIX=
ifeq ($(DEBUG),1)
# CFLAGS =-g3 -gdwarf2 -DDEBUG
CXXFLAGS +=-O0
OBJDIR=debug
PRGPREFIX=debug_
RESULT:=$(shell mkdir -p $(OBJDIR))
else
ifeq ($(DEBUG),2)
CXXFLAGS+=-O0 -pg
OBJDIR=debug
PRGPREFIX=debug_
RESULT:=$(shell mkdir -p $(OBJDIR))
else
CXXFLAGS+=-O3
endif
endif
#OPTIMIZE=-O3
# -I /usr/include/x86_64-linux-gnu/c++/4.7/
PROGRAMS=moder all_pairs_huddinge
LDFLAGS=$(BOOSTLIB) $(PROGOPT) #-L$(HOME)/usr/lib #-B/usr/bin/ld.gold
export CXXFLAGS
export LDFLAGS
all: CPM03 $(addprefix $(OBJDIR)/$(PRGPREFIX), $(PROGRAMS)) myspacek40
.PHONY: CPM03
CPM03:
@$(MAKE) -C CPM03 all
# .PHONY: test
# test:
# $(MAKE) -C test all
# test/test_suffix_array_wrapper
install: all
install -d $(prefix)/bin
install -d $(docdir)
install -m 0755 moder $(prefix)/bin
install -m 0755 heatmap.py $(prefix)/bin
install -m 0755 to_html.py $(prefix)/bin
install -m 0755 myspacek40 $(prefix)/bin
install -m 0755 all_pairs_huddinge $(prefix)/bin
install -m 0644 README.md $(docdir)
.PHONY: dist FORCE distcheck $(distdir)
FORCE:
-rm -f $(distdir).tar.gz 2>/dev/null >/dev/null
$(distdir).tar.gz: $(distdir)
tar chf - $(distdir) | gzip -9 -c > $(distdir).tar.gz
rm -rf $(distdir)
dist: $(distdir).tar.gz
distcheck: $(distdir).tar.gz
gzip -cd $+ | tar xvf -
$(MAKE) -C $(distdir) all
$(MAKE) -C $(distdir) check
$(MAKE) -C $(distdir) clean
rm -rf $(distdir)
@echo "*** Package $(distdir).tar.gz ready for distribution."
check: all
./moder --prior addone --cob 0-0 data/TFAP2A-head-1000.seq GGGCA > /dev/null
./all_pairs_huddinge data/TFAP2A-head-1000.seq > /dev/null
@echo "*** ALL TESTS PASSED ***"
$(distdir):
-rm -rf $(distdir) 2>/dev/null >/dev/null
mkdir -p $(distdir)
mkdir -p $(distdir)/CPM03
mkdir -p $(distdir)/data
cp README.md $(distdir)
cp NEWS $(distdir)
cp COPYING $(distdir)
cp Makefile $(distdir)
cp myspacek40.c $(distdir)
cp heatmap.R $(distdir)
cp heatmap.py $(distdir)
cp to_html.py $(distdir)
cp moder.cpp $(distdir)
cp all_pairs_huddinge.cpp $(distdir)
cp common.cpp $(distdir)
cp probabilities.cpp $(distdir)
cp parameters.cpp $(distdir)
cp matrix_tools.cpp $(distdir)
cp my_assert.cpp $(distdir)
cp combinatorics.cpp $(distdir)
cp multinomial_helper.cpp $(distdir)
cp bndm.cpp $(distdir)
cp orientation.cpp $(distdir)
cp data.cpp $(distdir)
cp iupac.cpp $(distdir)
cp suffix_array_wrapper.cpp $(distdir)
cp huddinge.cpp $(distdir)
cp kmer_tools.cpp $(distdir)
cp iupac.cpp $(distdir)
cp matrix.hpp $(distdir)
cp vectors.hpp $(distdir)
cp timing.hpp $(distdir)
cp matrix_tools.hpp $(distdir)
cp common.hpp $(distdir)
cp data.hpp $(distdir)
cp cob.hpp $(distdir)
cp orientation.hpp $(distdir)
cp probabilities.hpp $(distdir)
cp parameters.hpp $(distdir)
cp combinatorics.hpp $(distdir)
cp my_assert.hpp $(distdir)
cp multinomial_helper.hpp $(distdir)
cp suffix_array_wrapper.hpp $(distdir)
cp bndm.hpp $(distdir)
cp type.hpp $(distdir)
cp iupac.hpp $(distdir)
cp huddinge.hpp $(distdir)
cp kmer_tools.hpp $(distdir)
cp unordered_map.hpp $(distdir)
cp CPM03/checker.hpp $(distdir)/CPM03
cp CPM03/COPYING $(distdir)/CPM03
cp CPM03/difference_cover.cpp $(distdir)/CPM03
cp CPM03/difference_cover.hpp $(distdir)/CPM03
cp CPM03/doubling.hpp $(distdir)/CPM03
cp CPM03/Makefile $(distdir)/CPM03
cp CPM03/partition.hpp $(distdir)/CPM03
cp CPM03/README $(distdir)/CPM03
cp CPM03/stringsort.hpp $(distdir)/CPM03
cp CPM03/suffixsort.hpp $(distdir)/CPM03
cp CPM03/test-suffixsort.cpp $(distdir)/CPM03
cp CPM03/timing.hpp $(distdir)/CPM03
cp CPM03/dependencies.mk $(distdir)/CPM03
cp data/TFAP2A-head-1000.seq $(distdir)/data
cp data/rna-test.seq $(distdir)/data
# programs
MODER_OBJS=moder.o common.o probabilities.o parameters.o matrix_tools.o my_assert.o combinatorics.o\
multinomial_helper.o bndm.o orientation.o data.o iupac.o suffix_array_wrapper.o kmer_tools.o huddinge.o
$(PRGPREFIX)moder: $(addprefix $(OBJDIR)/, $(MODER_OBJS)) | CPM03
$(CXX) $(CXXFLAGS) $(addprefix $(OBJDIR)/, $(MODER_OBJS)) CPM03/difference_cover.o -o $@ $(LDFLAGS)
ALL_PAIRS_HUDDINGE_OBJS=all_pairs_huddinge.o common.o probabilities.o parameters.o matrix_tools.o my_assert.o combinatorics.o\
multinomial_helper.o bndm.o orientation.o data.o iupac.o suffix_array_wrapper.o kmer_tools.o huddinge.o
$(PRGPREFIX)all_pairs_huddinge: $(addprefix $(OBJDIR)/, $(ALL_PAIRS_HUDDINGE_OBJS))
$(CXX) $(CXXFLAGS) $(addprefix $(OBJDIR)/, $(ALL_PAIRS_HUDDINGE_OBJS)) -o $@ $(LDFLAGS)
myspacek40: myspacek40.c
gcc $(CFLAGS) $+ -o $@ -lm
# test programs
#TEST_SUFFIX_ARRAY_WRAPPER_OBJS=CPM03/difference_cover.o suffix_array_wrapper.o iupac.o common.o test_suffix_array_wrapper.o
#test/test_suffix_array_wrapper: $(TEST_SUFFIX_ARRAY_WRAPPER_OBJS)
# $(CXX) $(CXXFLAGS) $(TEST_SUFFIX_ARRAY_WRAPPER_OBJS) -o test/test_suffix_array_wrapper $(LDFLAGS)
####################################
#
# dependencies of compilation units
#
####################################
# Automatically create dependency files (*.d)
$(OBJDIR)/%.d: %.cpp
@set -e; rm -f $@; \
$(CXX) -MM $(CXXFLAGS) $< > $@.$$$$; \
sed 's,\($*\)\.o[ :]*,'$(OBJDIR)'/\1.o $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
-include $(addprefix $(OBJDIR)/, $(MODER_OBJS:.o=.d))
-include $(addprefix $(OBJDIR)/, $(ALL_PAIRS_HUDDINGE_OBJS:.o=.d))
$(OBJDIR)/%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
#TESTCXXFLAGS=$(CXXFLAGS) -I. -O0
#test/%.o: test/%.cpp
# $(CXX) $(TESTCXXFLAGS) -c $< -o $@
.PHONY: clean
clean:
rm -f $(OBJDIR)/*.o $(OBJDIR)/*.d $(addprefix $(PRGPREFIX), $(PROGRAMS))
@$(MAKE) -C CPM03 clean
.PHONY: showprograms
showprograms:
@echo $(PROGRAMS) | tr ' ' '\n'