File: rules

package info (click to toggle)
ncbi-blast%2B 2.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 124,504 kB
  • ctags: 98,524
  • sloc: cpp: 762,010; ansic: 145,319; sh: 10,307; pascal: 7,390; xml: 5,050; java: 2,284; perl: 2,055; python: 1,515; makefile: 1,158; awk: 162; sql: 18
file content (127 lines) | stat: -rwxr-xr-x 4,480 bytes parent folder | download | duplicates (2)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#!/usr/bin/make -f
# -*- makefile -*-

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

NUMJOBS=1
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
    NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
endif


DEB_CONFIGURE_EXTRA_FLAGS=--with-dll --with-mt --without-autodep \
    --without-makefile-auto-update --with-flat-makefile --without-caution \
    --without-dbapi --without-lzo --with-runpath=/usr/lib/ncbi-blast+ \
    --with-build-root=BUILD --without-debug --without-downloaded-vdb
proj=algo/blast/ app/ objmgr/ objtools/align_format/ objtools/blast/

#ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
DEB_CONFIGURE_EXTRA_FLAGS += --with-symbols
#endif

#export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie
export DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie
export DEB_CFLAGS_MAINT_APPEND=-Wall -pedantic
export DEB_LDFLAGS_MAINT_APPEND=-Wl,--as-needed

DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH)

CFLAGS   := $(shell dpkg-buildflags --get CFLAGS)
CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS)
LDFLAGS  := $(shell dpkg-buildflags --get LDFLAGS) -Wl,--as-needed

ifneq (,$(findstring mips,$(DEB_HOST_ARCH)))
CXXFLAGS := $(CXXFLAGS:-O%=-O)
DEB_CONFIGURE_EXTRA_FLAGS += FAST_CXXFLAGS=-O
endif

export CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MAKE

# used for run_with_lock
DEB_CONFIGURE_EXTRA_FLAGS +=  CFLAGS_FOR_BUILD="$(CFLAGS) -fPIE"
DEB_CONFIGURE_EXTRA_FLAGS += LDFLAGS_FOR_BUILD="$(LDFLAGS)"

BLAST2_VERSION=1:$(shell dpkg-parsechangelog | awk '/^Version:/ { print $$2 }')

llp=LD_LIBRARY_PATH
override_dh_auto_configure:
	cd c++  &&  $(llp)=$(CURDIR)/c++/BUILD/lib$${$(llp)+:$$$(llp)} \
	    CONFIG_SHELL=/bin/bash ./configure $(DEB_CONFIGURE_EXTRA_FLAGS) \
	    ||  (tail -v -n +0 config.log BUILD/status/config.log; exit 1)

override_dh_auto_build-arch:
	cd c++/BUILD/build  && \
	    make -j$(NUMJOBS) -f Makefile.flat all_projects="$(proj)"
#	   make all_r

override_dh_auto_build-indep:
	echo "Save time and do nothing for architecture independent builds"

override_dh_auto_test:
	-dh_auto_test
	-c++/BUILD/build/check.sh concat_err
	-cat c++/BUILD/build/check.sh.out_err

instroot = debian/ncbi-blast+/usr
leg_bin = debian/ncbi-blast+-legacy/usr/bin
override_dh_auto_install-arch:
	# cp c++/BUILD/lib/*.so $(instroot)/lib/ncbi-blast+/
	cp c++/BUILD/bin/*    $(instroot)/bin/

override_dh_auto_install-indep:
	echo "Nothing to do for architecture independant installs"

override_dh_install-arch:
	# dh_install
	mv $(instroot)/bin/rpsblast $(instroot)/bin/rpsblast+
	mv $(instroot)/bin/seedtop $(instroot)/bin/seedtop+
	mv $(instroot)/bin/legacy_blast.pl   $(instroot)/bin/legacy_blast
	mv $(instroot)/bin/update_blastdb.pl $(instroot)/bin/update_blastdb
	mv $(instroot)/bin/windowmasker_2.2.22_adapter.py \
	   $(instroot)/bin/windowmasker_2.2.22_adapter
# Clean up tests, demos, and internal build tools
	rm -f $(instroot)/bin/*test* $(instroot)/bin/seqdb_demo \
	    $(instroot)/bin/datatool $(instroot)/bin/run_with_lock \
	    $(instroot)/bin/project_tree_builder
	for x in $(instroot)/bin/*; do \
	    LD_LIBRARY_PATH=c++/BUILD/lib ldd $$x; \
	done 2>/dev/null | awk '/BUILD/ { print $$3 }' | sort -u | \
	xargs cp -v -t $(instroot)/lib/ncbi-blast+

override_dh_install-indep:
	#if test -d $(leg_bin); then cp debian/legacy/legacy.sh $(leg_bin)/; fi
	for x in blastall megablast blastpgp bl2seq rpsblast fastacmd formatdb \
	         seedtop; do \
	    sed -e "s/.{.*}/$$x/" debian/legacy/legacy.sh > $(leg_bin)/$$x; \
	    chmod +x $(leg_bin)/$$x; \
	done

override_dh_clean:
	cp c++/configure.orig configure.orig.save
	dh_clean
	#Tricky - for each module directory there may be several module files
	#or there may be none but then there is still a module named after the
	#directory.  Clean everything!
	-for x in c++/src/objects/* ; do \
	    (cd "$$x"  && ( \
		mods="`echo *.module`" ; \
		[ "$${mods#*\*}" = "$$mods" ] || mods="`basename $$x`" ; \
		for mod in $$mods ; do \
       		    ../../../BUILD/build/new_module.sh $$mod purge_sources ; \
		done ) ; \
	    ) ; \
	done
	rm -rf c++/compilers/dll c++/config.log c++/Makefile
	rm -f c++/configure.lineno c++/src/objects/blastxml/blastxml.module
	find -name check_exec.pid -delete
	rm -rf c++/BUILD
	mv configure.orig.save c++/configure.orig

override_dh_gencontrol-indep:
	dh_gencontrol -pblast2 -- -v$(BLAST2_VERSION)
	dh_gencontrol -Nblast2

%:
	dh $@ -Dc++ --with autotools_dev