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
|
#!/usr/bin/make -f
DEB_VERSION=$(shell dpkg-parsechangelog | awk '/^Version:/ { print $$2 }')
export NCBI_VERSION_FULL=$(DEB_VERSION)
export NCBI_VERSION=$(word 1, $(subst -, ,$(NCBI_VERSION_FULL)))
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)))
testversions:
env | fgrep NCBI_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) $(destlibdir)
for x in ncbiacc ncbiCacc netentr; do \
rm -f $(destlibdir)/lib$$x.so.$(NCBI_VERSION) && \
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) && \
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); do \
base=`basename $$f .so.$(NCBI_VERSION)` && \
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_builddeb:
dh_builddeb -pncbi-rrna-data -- -Zxz -z7 -Sextreme
dh_builddeb -Nncbi-rrna-data
.PHONY: build
|