~ubuntu-branches/ubuntu/oneiric/ncbi-tools6/oneiric

« back to all changes in this revision

Viewing changes to debian/rules

  • Committer: Bazaar Package Importer
  • Author(s): Aaron M. Ucko
  • Date: 2002-04-04 22:13:09 UTC
  • Revision ID: james.westby@ubuntu.com-20020404221309-ozxf0jg82nb8ud7h
Tags: 6.1.20011220a-2
Whoops, ncbi-data should replace pre-split versions of ncbi-tools6.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/make -f
 
2
# Based on Joey Hess's sample rules, GNU copyright 1997.
 
3
 
 
4
# Uncomment this to turn on verbose mode. 
 
5
#export DH_VERBOSE=1
 
6
 
 
7
export DH_COMPAT=3
 
8
 
 
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]*\.\(.*\)')
 
12
 
 
13
testversions:
 
14
        env | fgrep NCBI_VERSION
 
15
 
 
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.
 
18
CC = gcc # -pipe
 
19
OPT = -O2
 
20
ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
 
21
OPT += -g
 
22
endif
 
23
CFLAGS = -c $(OPT)
 
24
LDFLAGS = $(OPT)
 
25
VIBFLAG = -I/usr/X11R6/include -DWIN_MOTIF
 
26
VIBLIBS = -L/usr/X11R6/lib -lXm -lXmu -lXt -lX11 -lXext # -lXp
 
27
OTHERLIBS = -lm
 
28
RANLIB = ranlib
 
29
MT_OTHERLIBS = -lpthread
 
30
THREAD_OBJ = ncbithr.o
 
31
NETENTREZVERSION = 2.02c2ASN1SPEC6
 
32
 
 
33
OGL_TARGETS = Cn3D
 
34
OGL_LIBVARS = LIB400=libvibrantOGL.a LIB3000=libncbicn3dOGL.a
 
35
OGL_INCLUDE = -I/usr/X11R6/include
 
36
OGLLIBS = -L/usr/X11R6/lib -lGL -lGLU
 
37
 
 
38
PNG_INCLUDE = -D_PNG
 
39
PNG_LIBS = -lpng -lz
 
40
 
 
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.
 
44
 
 
45
export NCBI_LBSM_SRC=ncbi_service_lbsmd_stub.c
 
46
export NCBI_LBSM_OBJ=ncbi_service_lbsmd_stub.o
 
47
 
 
48
CURDIR := $(shell pwd)
 
49
ifeq ($(LD_LIBRARY_PATH),)
 
50
export LD_LIBRARY_PATH:=$(CURDIR)/shlib
 
51
else
 
52
export LD_LIBRARY_PATH:=$(CURDIR)/shlib:$(LD_LIBRARY_PATH)
 
53
endif
 
54
 
 
55
# Apps which should be multithreaded if possible.
 
56
MTAPPS = blastall blastpgp seedtop megablast rpsblast blastclust
 
57
 
 
58
VIB = Psequin Nentrez udv ddv blastcl3 idfetch asn2xml $(OGL_TARGETS)
 
59
 
 
60
#OTHERS = others
 
61
OTHERS = libncbimla.a libnetblast.a libncbitxc2.a libncbiid1.a shlib.alt
 
62
 
 
63
COMMON_FLAGS = LCL=lnx CC="$(CC)" LDFLAGS1="$(LDFLAGS)" RAN="$(RANLIB)"
 
64
COMMON_FLAGS += OTHERLIBS="$(OTHERLIBS)" VIBLIBS="$(VIBLIBS)"
 
65
COMMON_FLAGS += VIBFLAG="$(VIBFLAG)"
 
66
 
 
67
ICONS = debian/asntool.xpm debian/ncbilogo.xpm
 
68
 
 
69
configure: configure-stamp
 
70
configure-stamp:
 
71
        dh_testdir
 
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
 
76
 
 
77
        touch configure-stamp
 
78
 
 
79
shlib-stamp:
 
80
# Clean at end because only objects in shared libraries should be PIC.
 
81
        dh_testdir
 
82
#       cd build && $(MAKE) clean
 
83
 
 
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)
 
91
 
 
92
        cd build && $(MAKE) clean
 
93
        touch shlib-stamp
 
94
 
 
95
build: configure-stamp shlib-stamp build-stamp
 
96
build-stamp:
 
97
        dh_testdir
 
98
 
 
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)"
 
116
#       date > VERSION
 
117
 
 
118
        touch build-stamp
 
119
 
 
120
clean:
 
121
        dh_testdir
 
122
        dh_testroot
 
123
        rm -f build-stamp shlib-stamp configure-stamp menus-stamp
 
124
 
 
125
        -rm -rf build/* bin/* include/* lib/* shlib
 
126
 
 
127
        dh_clean debian/*.menu $(ICONS)
 
128
 
 
129
menus: menus-stamp
 
130
menus-stamp:
 
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
 
136
        touch menus-stamp
 
137
 
 
138
install: DH_OPTIONS=
 
139
install: build menus
 
140
        dh_testdir
 
141
        dh_testroot
 
142
        dh_clean -k
 
143
        dh_installdirs -a
 
144
 
 
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; \
 
153
        done
 
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
 
156
 
 
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; \
 
162
        done
 
163
 
 
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
 
176
 
 
177
        install -d debian/tmp/etc/ncbi
 
178
        install -m 644 debian/.*rc debian/tmp/etc/ncbi
 
179
 
 
180
        dh_movefiles -a
 
181
 
 
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; \
 
186
        done
 
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; \
 
197
        done
 
198
 
 
199
build-indep icons: $(ICONS)
 
200
$(ICONS): debian/%.xpm: link/mswin/%.ico
 
201
        convert -geometry 32x32 -map debian/cmap.xpm $< $@
 
202
 
 
203
install-indep:
 
204
        dh_testdir
 
205
        dh_testroot
 
206
        dh_clean -k
 
207
        dh_installdirs -i
 
208
 
 
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
 
213
 
 
214
        dh_movefiles -i
 
215
 
 
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
 
219
        dh_testdir -i
 
220
        dh_testroot -i
 
221
#       dh_installdebconf -i
 
222
        dh_installdocs -i
 
223
        dh_installexamples -i
 
224
        dh_installmenu -i
 
225
#       dh_installlogrotate -i
 
226
#       dh_installemacsen -i
 
227
#       dh_installpam -i
 
228
        dh_installmime -i
 
229
#       dh_installinit -i
 
230
#       dh_installcron -i
 
231
        dh_installman -i
 
232
#       dh_installinfo -i
 
233
#       dh_undocumented -i
 
234
        dh_installchangelogs -i README
 
235
        dh_link -i
 
236
        dh_compress -i
 
237
        dh_fixperms -i
 
238
        dh_installdeb -i
 
239
#       dh_perl -i
 
240
        dh_gencontrol -i
 
241
        dh_md5sums -i
 
242
        dh_builddeb -i
 
243
 
 
244
# Build architecture-dependent files here.
 
245
binary-arch: build install
 
246
        dh_testdir -a
 
247
        dh_testroot -a
 
248
#       dh_installdebconf -a
 
249
        dh_installdocs -a
 
250
        dh_installexamples -a
 
251
        dh_installmenu -a
 
252
#       dh_installlogrotate -a
 
253
#       dh_installemacsen -a
 
254
#       dh_installpam -a
 
255
        dh_installmime -a
 
256
#       dh_installinit -a
 
257
#       dh_installcron -a
 
258
        dh_installman -a
 
259
#       dh_installinfo -a
 
260
#       dh_undocumented -a
 
261
        dh_installchangelogs -a README
 
262
        dh_strip -a -Xncbi-tools-dbg
 
263
        dh_link -a
 
264
        dh_compress -a
 
265
        dh_fixperms -a
 
266
#       dh_makeshlibs -a
 
267
        for p in ncbi-tools6 vibrant6; do \
 
268
            dh_makeshlibs -p $$p -V "$$p (>= $(NCBI_VERSION)-1)"; \
 
269
        done
 
270
        dh_installdeb -a
 
271
#       dh_perl -a
 
272
        dh_shlibdeps -a
 
273
        dh_gencontrol -a
 
274
        dh_md5sums -a
 
275
        dh_builddeb -a
 
276
 
 
277
binary: binary-indep binary-arch
 
278
.PHONY: build clean binary-indep binary-arch binary install configure