File: Makefile

package info (click to toggle)
skesa 2.4.0-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 996 kB
  • sloc: cpp: 13,399; makefile: 375; sh: 19
file content (96 lines) | stat: -rw-r--r-- 3,925 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# ===========================================================================
#
#                            PUBLIC DOMAIN NOTICE
#               National Center for Biotechnology Information
#
#  This software/database is a "United States Government Work" under the
#  terms of the United States Copyright Act.  It was written as part of
#  the author's official duties as a United States Government employee and
#  thus cannot be copyrighted.  This software/database is freely available
#  to the public for use. The National Library of Medicine and the U.S.
#  Government have not placed any restriction on its use or reproduction.
#
#  Although all reasonable efforts have been taken to ensure the accuracy
#  and reliability of the software and data, the NLM and the U.S.
#  Government do not and cannot warrant the performance or results that
#  may be obtained by using this software or data. The NLM and the U.S.
#  Government disclaim all warranties, express or implied, including
#  warranties of performance, merchantability or fitness for any particular
#  purpose.
#
#  Please cite the author in any work or product based on this material.
#
# ===========================================================================

#setenv BOOST_PATH /netopt/ncbi_tools64/boost-1.62.0-ncbi1

ifdef BOOST_PATH
BOOST_INCL := -I $(BOOST_PATH)/include
BOOST_LIB := -L $(BOOST_PATH)/lib
endif

NGS_DIR := $(CURDIR)/NGS
VDB_PATH := $(NGS_DIR)/vdb_out
NGS_PATH := $(NGS_DIR)/ngs_out
BUILD_PATH := $(NGS_DIR)/build

VDB_INCL := -I $(VDB_PATH)/include
VDB_LIB := -L $(VDB_PATH)/lib64
NGS_INCL := -I $(NGS_PATH)/include
NGS_LIB := -L $(NGS_PATH)/lib64

ifeq ($(origin CXX),default)
CXX = c++
endif
CFLAGS += -std=c++11 -fdiagnostics-color=never
LDLAGS += -std=c++11 -fdiagnostics-color=never
CFLAGS += -Wall -Wno-format-y2k  -pthread -fPIC -O3 -finline-functions -fstrict-aliasing \
         -fomit-frame-pointer $(BOOST_INCL) $(NGS_INCL) $(VDB_INCL)

LIBS += -lngs-c++ -lncbi-vdb -lzstd \
       $(BOOST_LIB) \
       -lboost_program_options \
       -lboost_iostreams \
       -lboost_regex \
       -lboost_timer \
       -lboost_chrono \
       -lrt -ldl -lm  -lpthread -lz

%.o: %.cpp
	$(CXX) -c -o $@ $< $(CFLAGS)

binaries=skesa gfa_connector kmercounter

all: $(binaries)

.PHONY: clean

clean: 
	rm -f $(binaries) *.o $(NGS_DIR)/ngs.done

glb_align.o: glb_align.hpp Makefile

skesa.o: common_util.hpp concurrenthash.hpp readsgetter.hpp ngs_includes.hpp counter.hpp graphdigger.hpp assembler.hpp KmerInit.hpp DBGraph.hpp Integer.hpp LargeInt.hpp LargeInt1.hpp LargeInt2.hpp Model.hpp config.hpp glb_align.hpp Makefile
skesa: skesa.o glb_align.o
	$(CXX) -o $@ $^ $(LIBS) $(LDFLAGS)

gfa_connector.o: gfa.hpp glb_align.hpp common_util.hpp concurrenthash.hpp readsgetter.hpp ngs_includes.hpp graphdigger.hpp KmerInit.hpp  DBGraph.hpp Integer.hpp LargeInt.hpp LargeInt1.hpp LargeInt2.hpp Model.hpp config.hpp Makefile
gfa_connector: gfa_connector.o glb_align.o
	$(CXX) -o $@ $^ $(LIBS) $(LDFLAGS)

kmercounter.o: common_util.hpp concurrenthash.hpp readsgetter.hpp ngs_includes.hpp counter.hpp graphdigger.hpp assembler.hpp KmerInit.hpp DBGraph.hpp Integer.hpp LargeInt.hpp LargeInt1.hpp LargeInt2.hpp Model.hpp config.hpp glb_align.hpp Makefile
kmercounter: kmercounter.o glb_align.o
	$(CXX) -o $@ $^ $(LIBS) $(LDFLAGS)


$(NGS_DIR)/ngs.done:
	rm -fr $(NGS_DIR)
	mkdir -p $(NGS_DIR)/ngs
	mkdir $(BUILD_PATH)
	mkdir $(NGS_PATH)
	mkdir $(VDB_PATH)
	cd $(NGS_DIR)/ngs; git init; git remote add -f origin https://github.com/ncbi/ngs.git; git config core.sparseCheckout true; echo "ngs-sdk" >> .git/info/sparse-checkout; git pull origin master
	cd $(NGS_DIR)/ngs/ngs-sdk; ./configure --prefix=$(NGS_PATH) --build-prefix=$(BUILD_PATH); make; make install
	cd $(NGS_DIR); git clone https://github.com/ncbi/ncbi-vdb.git
	cd $(NGS_DIR)/ncbi-vdb; ./configure --prefix=$(VDB_PATH) --build-prefix=$(BUILD_PATH); make; make install
	touch $@