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
|
#!/usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
DPKG_EXPORT_BUILDFLAGS = 1
include /usr/share/dpkg/default.mk
%:
dh $@ --with=golang
PACKAGE = ncbi-entrez-direct
SHARE_DIR = /usr/share/$(PACKAGE)
MODES = address blast citmatch contact filter link notify post proxy search \
spell
STD_WRAPPERS = $(MODES:%=bin/e%)
WRAPPERS = $(STD_WRAPPERS) bin/esummary
AS_IS_SCRIPTS = amino-acid-composition archive-pubmed between-two-genes \
entrez-phrase-search esample exclude-uid-lists expand-current \
fetch-extras fetch-pubmed filter-stop-words index-pubmed \
intersect-uid-lists join-into-groups-of pm-* \
protein-neighbors reorder-columns sort-uniq-count* \
stream-pubmed word-at-a-time xml2tbl xy-plot
BASH_SCRIPTS = index-extras
BIN_BASH_SCRIPTS = $(BASH_SCRIPTS:%=bin/%)
DL_SCRIPTS = download-ncbi-data download-pubmed download-sequence
BIN_DL_SCRIPTS = $(DL_SCRIPTS:%=bin/%)
PERL_SCRIPTS = edirutil ftp-cp ftp-ls gbf2xml nquire run-ncbi-converter \
transmute
BIN_PERL_SCRIPTS = $(PERL_SCRIPTS:%=bin/%)
# Only bt-link and xplore need this treatment at present,
# but list all bt-* scripts to be safe.
BT_SCRIPTS = bt-link bt-load bt-save bt-srch xplore
BIN_BT_SCRIPTS = $(BT_SCRIPTS:%=bin/%)
FIX_PERL_SHEBANG = 1s,^\#!/usr/bin/env perl$$,\#!/usr/bin/perl,
FIX_BASH_SHEBANG = 1s,^\#!/bin/sh,\#!/bin/bash,
GOCODE = /usr/share/gocode
GH = github.com
GL = golang.org
GOLIBSRC_ = $(GH)/fatih/color $(GH)/gedex/inflector $(GH)/klauspost/cpuid \
$(GH)/mattn/go-colorable $(GH)/mattn/go-isatty \
$(GH)/pbnjay/memory $(GH)/rainycape/unidecode \
$(GH)/shirou/gopsutil $(GH)/surgebase/porter2 \
$(GL)/x/sys/unix $(GL)/x/text
GOLIBSRC = $(GOLIBSRC_:%=$(GOCODE)/src/%)
export GOCACHE = $(CURDIR)/go-build
export GOPATH = $(CURDIR)/obj-$(DEB_HOST_GNU_TYPE)
GOLIBS = $(GOLIBSRC:$(GOCODE)/%=$(GOPATH)/%)
GO_APPS = j2x rchive t2x xtract
BIN_GO_APPS = $(GO_APPS:%=bin/%)
GOVERSION := $(word 3,$(shell go version)) # go version **goX.Y.Z** OS/CPU
GO_IS_OLD := $(shell dpkg --compare-versions 0$(GOVERSION) ge 0go1.10 || echo $$?)
ifneq (,$(GO_IS_OLD))
export PATH := /usr/lib/go-1.10/bin:$(PATH)
endif
$(GOPATH)/%: /usr/share/gocode/%
mkdir -p $(dir $@)
ln -s $< $@
$(GOPATH)/src/%: debian/vendor/%
mkdir -p $(dir $@)
ln -s $(CURDIR)/$< $@
bin/edirect: edirect.pl
mkdir -p bin
sed -e '$(FIX_PERL_SHEBANG)' $< > $@
chmod +x $@
$(STD_WRAPPERS): bin/e%: bin/edirect
echo '#!/bin/sh' > $@
echo 'exec /usr/bin/edirect -$* "$$@"' >> $@
chmod +x $@
bin/esummary: bin/edirect
echo '#!/bin/sh' > $@
echo 'exec /usr/bin/edirect -fetch -format docsum "$$@"' >> $@
chmod +x $@
$(BIN_BASH_SCRIPTS): bin/%: %
mkdir -p bin
sed -e '$(FIX_BASH_SHEBANG)' $< > $@
chmod +x $@
$(BIN_PERL_SCRIPTS): bin/%: %
mkdir -p bin
sed -e '$(FIX_PERL_SHEBANG)' $< > $@
chmod +x $@
$(BIN_DL_SCRIPTS): bin/%: %
mkdir -p bin
sed -e 's/`has-asp`/false # &/' $< > $@
chmod +x $@
$(BIN_BT_SCRIPTS): bin/%: %
mkdir -p bin
sed -e 's,"*\$$dir"*\(/bt-[^ .]*\.txt\)"*,$(SHARE_DIR)\1,g' $< > $@
chmod +x $@
$(GOPATH)/src/$(GH)/fiam/gounidecode: $(GOLIBS)
mkdir -p $(GOPATH)/src/$(GH)/fiam
ln -s ../rainycape $(GOPATH)/src/$(GH)/fiam/gounidecode
COMMON = common.go
bin/j2x: COMMON =
bin/t2x: COMMON =
$(BIN_GO_APPS): bin/%: %.go $(GOPATH)/src/$(GH)/fiam/gounidecode
# Always use gccgo? The resulting binary would be much smaller, but
# pull in a large shared library with few other reverse dependencies.
go build -v -gccgoflags '$(CFLAGS) $(LDFLAGS)' -o $@ $*.go $(COMMON)
override_dh_auto_build: $(WRAPPERS) $(BIN_BASH_SCRIPTS) $(BIN_DL_SCRIPTS) \
$(BIN_PERL_SCRIPTS) $(BIN_BT_SCRIPTS) $(BIN_GO_APPS)
dh_auto_build
install $(AS_IS_SCRIPTS) debian/efetch debian/einfo bin/
override_dh_installexamples:
dh_installexamples
sed -i '$(FIX_PERL_SHEBANG)' debian/*/usr/share/doc/*/examples/*
override_dh_auto_clean:
dh_auto_clean
rm -rf bin $(GOCACHE) $(GOPATH)
|