File: rules

package info (click to toggle)
ncbi-tools6 6.1.20170106%2Bdfsg1-9
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 468,492 kB
  • sloc: ansic: 1,474,204; pascal: 6,740; cpp: 6,248; xml: 3,390; sh: 2,139; perl: 1,084; csh: 508; makefile: 437; javascript: 198; ruby: 93; lisp: 81
file content (236 lines) | stat: -rwxr-xr-x 8,698 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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
#!/usr/bin/make -f
include /usr/share/dpkg/pkg-info.mk
export NCBI_VERSION_FULL=$(DEB_VERSION)
export NCBI_VERSION=$(DEB_VERSION_EPOCH_UPSTREAM)
export NCBI_VERSION_MAJOR=$(word 1, $(subst ., ,$(NCBI_VERSION)))
export NCBI_VERSION_MINOR=$(NCBI_VERSION:$(NCBI_VERSION_MAJOR).%=%)
export NCBI_VERSION_DATE =$(word 3, $(subst ., ,$(NCBI_VERSION)))
export NCBI_VERSION_DEBREL=$(word 2, $(subst -, ,$(NCBI_VERSION_FULL)))
export NCBI_VERSION_SHLIB=$(NCBI_VERSION:%+dfsg1=%)

export CN3D_VERSION=$(shell sed -ne 's/.*Version \([1-9][0-9.]*\).*/\1/p' \
                      cn3d/cn3dwin.c | head -n1)
export CN3D_VERSION_DATED=$(CN3D_VERSION).$(NCBI_VERSION_DATE)
export CN3D_VERSION_FULL=$(CN3D_VERSION_DATED)-$(NCBI_VERSION_DEBREL)

testversions:
	env | fgrep NCBI_VERSION
	env | fgrep CN3D_VERSION

# Set these here, rather than using the csh hackage that passes for an
# upstream build system.  Mostly taken from ../platform/{ppc,}linux.ncbi.mk.
include /usr/share/dpkg/buildtools.mk
VIBFLAG = -DWIN_MOTIF
VIBLIBS = -lXm -lXmu -lXt -lX11 # -lXext # -lXp
OTHERLIBS = -lm
RANLIB = ranlib
MT_OTHERLIBS = -lpthread
THREAD_OBJ = ncbithr.o
NETENTREZVERSION = 2.02c2ASN1SPEC6

export DEB_BUILD_MAINT_OPTIONS=hardening=+all

CFLAGS := $(shell dpkg-buildflags --get CFLAGS) -Wall \
          $(shell dpkg-buildflags --get CPPFLAGS)
ifeq ($(DEB_HOST_ARCH),alpha)
CFLAGS += -mieee
endif
CFLAGS_PIC = $(filter-out -fPIE,$(CFLAGS)) -fPIC
LDFLAGS  := $(shell dpkg-buildflags --get LDFLAGS)
LDFLAGS1 := $(CFLAGS) $(LDFLAGS) -Wl,--as-needed -Wl,-rpath-link,../shlib

OGL_TARGETS = Cn3D
OGL_LIBVARS = LIB400=libvibrantOGL.a LIB3000=libncbicn3dOGL.a
OGLLIBS = -lGLU -lGL

PNG_INCLUDE = -D_PNG
PNG_LIBS = -lpng # -lz

USESHLIB = NCBI_LINKINGLIBDIR="../shlib"
MAKESHLIB = $(USESHLIB) NCBI_SHLIBS=shlib
# Controls how shared libraries are built; appropriate for ELF w/GNU tools.

export NCBI_LBSM_SRC=ncbi_lbsmd_stub.c
export NCBI_LBSM_OBJ=ncbi_lbsmd_stub.o

VIB = Psequin sbtedit udv ddv taxblast idfetch asn2gb tbl2asn gene2xml \
      entrez2 gbseqget asn2all asn2asn asn2fsa asn2xml asndisc asnmacro \
      asnval cleanasn insdseqget nps2gps spidey trna2sap trna2tbl \
      $(OGL_TARGETS)

#OTHERS = others
OTHERS = libncbimla.a libnetblast.a libncbitxc2.a libncbiid1.a shlib

COMMON_FLAGS = LCL=lnx CC="$(CC)" LDFLAGS1="$(LDFLAGS1)" RAN="$(RANLIB)"
COMMON_FLAGS += OTHERLIBS="$(OTHERLIBS)" VIBLIBS="$(VIBLIBS)"
COMMON_FLAGS += VIBFLAG="$(VIBFLAG)" GNUTLS_INCLUDE=-DHAVE_LIBGNUTLS

ICONS = debian/asntool.xpm debian/ncbilogo.xpm

MAKE_IN_BUILD = $(MAKE) -C build

%:
	dh $@

# Explicit rule to avoid an infinite loop
build:
	dh $@

override_dh_auto_build-arch:
	cd build && ln -s ../make/*.unx .
	ln -s ../make/ln-if-absent build
	mv build/makeall.unx build/makefile
	$(MAKE_IN_BUILD) all $(COMMON_FLAGS) $(USESHLIB) \
	    CFLAGS1="-c $(CFLAGS_PIC) $(PNG_INCLUDE)" \
	    LIB4=libvibrant.a LIB20=libncbidesk.a LIB28=libvibgif.a \
	    LIB30=libncbicn3d.a LIB45=libddvlib.a $(OGL_LIBVARS)
	$(MAKE_IN_BUILD) -f makenet.unx $(COMMON_FLAGS) $(USESHLIB) \
	    CFLAGS1="-c $(CFLAGS_PIC)" \
	    LDFLAGS="$(filter-out -fPIE -pie,$(LDFLAGS))" \
	    NETENTREZVERSION="$(NETENTREZVERSION)" \
	    BLIB31=libvibnet.a OGLLIBS="$(OGLLIBS) $(PNG_LIBS)" all $(OTHERS)
# Clear out the PIC objects
	$(MAKE_IN_BUILD) clean

	$(MAKE_IN_BUILD) all $(COMMON_FLAGS) $(USESHLIB) \
	    CFLAGS1="-c $(CFLAGS) $(PNG_INCLUDE)" \
	    LIB4=libvibrant.a LIB20=libncbidesk.a LIB28=libvibgif.a \
	    LIB30=libncbicn3d.a LIB45=libddvlib.a $(OGL_LIBVARS)
# Build demos without vibrant to avoid unnecessary dependencies;
# users who want the Vibrant UI can use vibrate(1).
	$(MAKE_IN_BUILD) -f makedemo.unx $(COMMON_FLAGS) $(USESHLIB) \
	    CFLAGS1="-c $(CFLAGS)" VIBLIBS= VIBFLAG= LIB50=-lpcre
# Don't bother passing OGLLIBS or VIBLIBS, which apps don't use directly.
	$(MAKE_IN_BUILD) -f makenet.unx $(COMMON_FLAGS) $(USESHLIB) \
	    CFLAGS1="-c $(CFLAGS)" THREAD_OBJ="$(THREAD_OBJ)" \
	    THREAD_OTHERLIBS="$(MT_OTHERLIBS)" \
	    NETENTREZVERSION="$(NETENTREZVERSION)" BLIB31=libvibnet.a \
	    OGLLIBS= VIBLIBS= VIB="$(VIB)"
#	date > VERSION

override_dh_auto_clean:
	-rm -rf build/* bin/* include/* lib/* shlib
	mkdir -p build bin include lib
	-rm -f debian/*.menu $(ICONS)
	chmod -x debian/makemenu debian/installman

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
destlibdir=debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)
icon_in = link/mswin/ncbilogo.ico
hi = debian/ncbi-data/usr/share/icons/hicolor

override_dh_auto_install-arch:
	install -d $(destlibdir)
	install -m 644 lib/* shlib/*.so.$(NCBI_VERSION_SHLIB) $(destlibdir)
	for x in ncbiacc ncbiCacc netentr; do \
	    rm -f $(destlibdir)/lib$$x.so.$(NCBI_VERSION_SHLIB) && \
	    ln -s libncbiNacc.so.$(NCBI_VERSION_MAJOR) \
	        $(destlibdir)/lib$$x.so.$(NCBI_VERSION_MAJOR) && \
	    ln -s libncbiNacc.so $(destlibdir)/lib$$x.so; \
	done
	for x in ncbicn3d vibrant; do \
	    rm -f $(destlibdir)/lib$$x.so.$(NCBI_VERSION_SHLIB) && \
	    ln -s lib$${x}OGL.so.$(NCBI_VERSION_MAJOR) \
	        $(destlibdir)/lib$$x.so.$(NCBI_VERSION_MAJOR) && \
	    ln -s lib$${x}OGL.so $(destlibdir)/lib$$x.so; \
	done
	rm -f $(destlibdir)/libregexp.*
	cd $(destlibdir) && \
	for f in *.so.$(NCBI_VERSION_SHLIB); do \
	    base=`basename $$f .so.$(NCBI_VERSION_SHLIB)` && \
	    ln -s $$f $$base.so.$(NCBI_VERSION_MAJOR) && \
	    ln -s $$f $$base.so; \
	done

	install -d debian/tmp/usr/include/ncbi
	cp -LRp include/* debian/tmp/usr/include/ncbi
	cd debian/tmp/usr/include/ncbi && \
            rm -f FSpCompat.h FullPath.h More*.h Optimization*.h pcre*.h
	find debian/tmp/usr/include -type f | xargs chmod 644

	install -d debian/tmp/usr/bin
	install `find build -type f -perm /111 -print` debian/tmp/usr/bin
	rm -f debian/tmp/usr/bin/*test*
	rm -f debian/tmp/usr/bin/*demo*
# Useless as a binary, and seems to be broken anyway
	rm -f debian/tmp/usr/bin/dosimple
# Seems to be a functional version of sort(1) with no special features
# (but lacking some features of GNU sort)
	rm -f debian/tmp/usr/bin/ncbisort
# Obsolete
	rm -f debian/tmp/usr/bin/cdscan
	rm -f debian/tmp/usr/bin/entrcmd
#	install -d debian/tmp/usr/lib/cgi-bin
	mv debian/tmp/usr/bin/Cn3D debian/tmp/usr/bin/Cn3D-3.0
#	mv debian/tmp/usr/bin/fmerge debian/tmp/usr/bin/fastamerge

override_dh_auto_install-indep:
	convert link/mswin/asntool.ico debian/asntool.xpm
	icotool -x -w 32 -b 32 -o - $(icon_in) | \
	    convert png:- debian/ncbilogo.xpm
	install -d debian/ncbi-data/etc/ncbi
	install -m 644 debian/.*rc debian/ncbi-data/etc/ncbi
	install -d debian/ncbi-data/usr/bin
	install debian/vibrate debian/ncbi-data/usr/bin
	install -d debian/ncbi-data/usr/share/ncbi/data
	install -m 644 data/* debian/ncbi-data/usr/share/ncbi/data
	install -d debian/ncbi-rrna-data/usr/share/ncbi/data
	mv debian/ncbi-data/usr/share/ncbi/data/*_[n9]*.n?? \
           debian/ncbi-data/usr/share/ncbi/data/rRNA*.nal \
           debian/ncbi-data/usr/share/ncbi/data/Combined16SrRNA.n?? \
	    debian/ncbi-rrna-data/usr/share/ncbi/data/
	install -d debian/ncbi-data/usr/share/pixmaps
	install -m 644 $(ICONS) debian/ncbi-data/usr/share/pixmaps
	for w in 16 32 48 256; do \
	    d=$${w}x$${w} && \
	    install -d $(hi)/$$d && \
	    icotool -x -w $$w -b 32 -o $(hi)/$$d/ncbilogo.png $(icon_in) \
	    || exit 1 ; \
	done

override_dh_installchangelogs:
	dh_installchangelogs -k README

override_dh_installmenu-arch:
	chmod +x debian/makemenu
	debian/makemenu debian/ncbi-cn3d.install
	debian/makemenu debian/ncbi-tools-x11.install
#	debian/makemenu -v debian/ncbi-tools-bin.install
	dh_installmenu

override_dh_installdocs-arch:
	dh_installdocs
	install -m 644 config/README \
	    debian/libncbi6/usr/share/doc/libncbi6/README.config
	install -m 644 network/nsclilib/readme \
	    debian/libncbi6/usr/share/doc/libncbi6/README.net-cfg
	install -m 644 doc/fa2htgs/README \
	    debian/ncbi-tools-bin/usr/share/doc/ncbi-tools-bin/README.fa2htgs
	install -m 644 sequin/README \
	    debian/ncbi-tools-x11/usr/share/doc/ncbi-tools-x11/README.sequin

override_dh_installman:
	dh_link # otherwise runs too late to influence debian/installman
	chmod +x debian/installman
ifneq "" "$(filter ncbi-tools-bin, $(shell dh_listpackages))"
	debian/installman ncbi-cn3d
	debian/installman ncbi-tools-bin
	debian/installman ncbi-tools-x11
endif
ifneq "" "$(filter ncbi-data, $(shell dh_listpackages))"
	debian/installman ncbi-data
endif
	dh_installman

override_dh_makeshlibs-arch:
	dh_makeshlibs -V

override_dh_gencontrol-arch:
	dh_gencontrol  -pncbi-cn3d -- -v$(CN3D_VERSION_FULL)
	dh_gencontrol  -Nncbi-cn3d

override_dh_builddeb:
	dh_builddeb -pncbi-rrna-data -- -Zxz -z7 -Sextreme
	dh_builddeb -Nncbi-rrna-data

.PHONY: build