diff options
Diffstat (limited to 'debian/rules')
-rwxr-xr-x | debian/rules | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/debian/rules b/debian/rules new file mode 100755 index 00000000..ec229776 --- /dev/null +++ b/debian/rules @@ -0,0 +1,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 |