2
# Based on Joey Hess's sample rules, GNU copyright 1997.
4
# Uncomment this to turn on verbose mode.
9
export NCBI_VERSION=$(shell expr `pwd` : '.*-\([0-9.]*\..*\)')
10
export NCBI_VERSION_MAJOR=$(shell expr `pwd` : '.*-\([0-9]*\).[0-9.]*')
11
export NCBI_VERSION_MINOR=$(shell expr `pwd` : '.*-[0-9]*\.\(.*\)')
14
env | fgrep NCBI_VERSION
16
# Set these here, rather than using the csh hackage that passes for an
17
# upstream build system. Mostly taken from ../platform/{ppc,}linux.ncbi.mk.
20
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
25
VIBFLAG = -I/usr/X11R6/include -DWIN_MOTIF
26
VIBLIBS = -L/usr/X11R6/lib -lXm -lXmu -lXt -lX11 -lXext # -lXp
29
MT_OTHERLIBS = -lpthread
30
THREAD_OBJ = ncbithr.o
31
NETENTREZVERSION = 2.02c2ASN1SPEC6
34
OGL_LIBVARS = LIB400=libvibrantOGL.a LIB3000=libncbicn3dOGL.a
35
OGL_INCLUDE = -I/usr/X11R6/include
36
OGLLIBS = -L/usr/X11R6/lib -lGL -lGLU
41
USESHLIB = NCBI_LINKINGLIBDIR="../shlib -L../lib" # Kludge.
42
MAKESHLIB = $(USESHLIB) NCBI_SHLIBS=shlib
43
# Controls how shared libraries are built; appropriate for ELF w/GNU tools.
45
export NCBI_LBSM_SRC=ncbi_service_lbsmd_stub.c
46
export NCBI_LBSM_OBJ=ncbi_service_lbsmd_stub.o
48
CURDIR := $(shell pwd)
49
ifeq ($(LD_LIBRARY_PATH),)
50
export LD_LIBRARY_PATH:=$(CURDIR)/shlib
52
export LD_LIBRARY_PATH:=$(CURDIR)/shlib:$(LD_LIBRARY_PATH)
55
# Apps which should be multithreaded if possible.
56
MTAPPS = blastall blastpgp seedtop megablast rpsblast blastclust
58
VIB = Psequin Nentrez udv ddv blastcl3 idfetch asn2xml $(OGL_TARGETS)
61
OTHERS = libncbimla.a libnetblast.a libncbitxc2.a libncbiid1.a shlib.alt
63
COMMON_FLAGS = LCL=lnx CC="$(CC)" LDFLAGS1="$(LDFLAGS)" RAN="$(RANLIB)"
64
COMMON_FLAGS += OTHERLIBS="$(OTHERLIBS)" VIBLIBS="$(VIBLIBS)"
65
COMMON_FLAGS += VIBFLAG="$(VIBFLAG)"
67
ICONS = debian/asntool.xpm debian/ncbilogo.xpm
69
configure: configure-stamp
72
# I suppose these go here:
73
cd build && ln -s ../make/*.unx .
74
ln -s ../make/ln-if-absent build
75
mv build/makeall.unx build/makefile
80
# Clean at end because only objects in shared libraries should be PIC.
82
# cd build && $(MAKE) clean
84
cd build && $(MAKE) $(COMMON_FLAGS) $(MAKESHLIB) \
85
CFLAGS1="$(CFLAGS) $(OGL_INCLUDE) $(PNG_INCLUDE) -fPIC -g" \
86
LIB4=libvibrant.a LIB20=libncbidesk.a LIB28=libvibgif.a \
87
LIB30=libncbicn3d.a LIB45=libddvlib.a $(OGL_LIBVARS)
88
cd build && $(MAKE) -f makenet.unx $(COMMON_FLAGS) $(MAKESHLIB) \
89
CFLAGS1="$(CFLAGS) -fPIC -g" NETENTREZVERSION="$(NETENTREZVERSION)" \
90
BLIB31=libvibnet.a OGLLIBS="$(OGLLIBS) $(PNG_LIBS)" all $(OTHERS)
92
cd build && $(MAKE) clean
95
build: configure-stamp shlib-stamp build-stamp
99
cd build && $(MAKE) $(COMMON_FLAGS) $(USESHLIB) \
100
CFLAGS1="$(CFLAGS) $(OGL_INCLUDE) $(PNG_INCLUDE)" \
101
LIB4=libvibrant.a LIB20=libncbidesk.a LIB28=libvibgif.a \
102
LIB30=libncbicn3d.a LIB45=libddvlib.a $(OGL_LIBVARS)
103
# Build demos without vibrant to avoid unnecessary dependencies;
104
# users who want the Vibrant UI can use vibrate(1).
105
cd build && $(MAKE) -f makedemo.unx $(COMMON_FLAGS) $(USESHLIB) \
106
CFLAGS1="$(CFLAGS)" VIBLIBS= VIBFLAG=
107
-cd build && rm -f $(MTAPPS)
108
cd build && $(MAKE) -f makedemo.unx $(COMMON_FLAGS) $(USESHLIB) \
109
CFLAGS1="$(CFLAGS)" VIBLIBS= VIBFLAG= THREAD_OBJ="$(THREAD_OBJ)" \
110
THREAD_OTHERLIBS="$(MT_OTHERLIBS)" $(MTAPPS)
111
cd build && $(MAKE) -f makenet.unx $(COMMON_FLAGS) $(USESHLIB) \
112
CFLAGS1="$(CFLAGS)" THREAD_OBJ="$(THREAD_OBJ)" \
113
THREAD_OTHERLIBS="$(MT_OTHERLIBS)" \
114
NETENTREZVERSION="$(NETENTREZVERSION)" BLIB31=libvibnet.a \
115
OGLLIBS="$(OGLLIBS) $(PNG_LIBS)" VIB="$(VIB)"
123
rm -f build-stamp shlib-stamp configure-stamp menus-stamp
125
-rm -rf build/* bin/* include/* lib/* shlib
127
dh_clean debian/*.menu $(ICONS)
131
chmod +x debian/makemenu
132
debian/makemenu debian/ncbi-tools-x11.files
133
debian/makemenu -v debian/ncbi-tools-bin.files
134
debian/makemenu -v debian/ncbi-tools6-dev.files
135
debian/makemenu -v debian/blast2.files
145
# $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
146
install -d debian/tmp/usr/lib
147
install -m 644 lib/* shlib/*.so.$(NCBI_VERSION) debian/tmp/usr/lib
148
cd debian/tmp/usr/lib && \
149
for f in *.so.$(NCBI_VERSION); do \
150
base=`basename $$f .so.$(NCBI_VERSION)` && \
151
ln -s $$f $$base.so.$(NCBI_VERSION_MAJOR) && \
152
ln -s $$f $$base.so; \
154
install -d debian/tmp/usr/lib/ncbi-tools-dbg
155
cp -a debian/tmp/usr/lib/*.so.* debian/tmp/usr/lib/ncbi-tools-dbg
157
install -d debian/tmp/usr/include/ncbi
158
install -m 644 include/*.h debian/tmp/usr/include/ncbi
159
for d in ctools connect; do \
160
install -d debian/tmp/usr/include/ncbi/$$d; \
161
install -m 644 include/$$d/*.h debian/tmp/usr/include/ncbi/$$d; \
164
install -d debian/tmp/usr/bin
165
install `find build -type f -perm +111 -print` debian/tmp/usr/bin
166
install debian/vibrate debian/tmp/usr/bin
167
rm -f debian/tmp/usr/bin/*test*
168
# Useless as a binary, and seems to be broken anyway
169
rm -f debian/tmp/usr/bin/dosimple
170
# Seems to be a functional version of sort(1) with no special features
171
# (but lacking some features of GNU sort)
172
rm -f debian/tmp/usr/bin/ncbisort
173
# install -d debian/tmp/usr/lib/cgi-bin
174
# mv debian/tmp/usr/bin/blast.REAL debian/tmp/usr/lib/cgi-bin
175
rm -f debian/tmp/usr/bin/blast.REAL
177
install -d debian/tmp/etc/ncbi
178
install -m 644 debian/.*rc debian/tmp/etc/ncbi
182
for f in debian/*/usr/bin/*; do \
183
mandir=`dirname $$f`/../share/man/man1 && \
184
install -d $$mandir && \
185
install -m 644 debian/man/`basename $$f`.1 $$mandir; \
187
install -m 644 debian/man/blast.1 debian/blast2/usr/share/man/man1
188
chmod +x debian/instdoc
189
debian/instdoc ncbi-tools6 config/README README.config
190
debian/instdoc ncbi-tools-bin doc/fa2htgs/README README.fa2htgs
191
debian/instdoc ncbi-tools-x11 sequin/README README.sequin
192
for f in debian/*.override; do \
193
package=`basename $$f .override` && \
194
dir=debian/$$package/usr/share/lintian/overrides && \
195
install -d $$dir && \
196
install -m 644 $$f $$dir/$$package; \
199
build-indep icons: $(ICONS)
200
$(ICONS): debian/%.xpm: link/mswin/%.ico
201
convert -geometry 32x32 -map debian/cmap.xpm $< $@
209
install -d debian/tmp/usr/share/ncbi/data
210
install -m 644 data/* debian/tmp/usr/share/ncbi/data
211
install -d debian/tmp/usr/X11R6/include/X11/pixmaps
212
install -m 644 $(ICONS) debian/tmp/usr/X11R6/include/X11/pixmaps
216
# Build architecture-independent files here.
217
# Pass -i to all debhelper commands in this target to reduce clutter.
218
binary-indep: build-indep install-indep
221
# dh_installdebconf -i
223
dh_installexamples -i
225
# dh_installlogrotate -i
226
# dh_installemacsen -i
234
dh_installchangelogs -i README
244
# Build architecture-dependent files here.
245
binary-arch: build install
248
# dh_installdebconf -a
250
dh_installexamples -a
252
# dh_installlogrotate -a
253
# dh_installemacsen -a
261
dh_installchangelogs -a README
262
dh_strip -a -Xncbi-tools-dbg
267
for p in ncbi-tools6 vibrant6; do \
268
dh_makeshlibs -p $$p -V "$$p (>= $(NCBI_VERSION)-1)"; \
277
binary: binary-indep binary-arch
278
.PHONY: build clean binary-indep binary-arch binary install configure