-
Notifications
You must be signed in to change notification settings - Fork 37
/
Copy pathrules
executable file
·95 lines (74 loc) · 3.57 KB
/
rules
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
#!/usr/bin/make -f
builddir = $(shell pwd)
destdir = $(builddir)/debian/bitgesell
CC = gcc-11
CXX = g++-11
.PHONY: distrib download-distrib unpack-distrib berkeleydb libevent miniupnpc
%:
dh $@ --with autoreconf
build: distrib
distrib: unpack-distrib boost berkeleydb libevent miniupnpc
download-distrib: distrib/boost_1_74_0.tar.gz distrib/db-4.8.30.tar.gz distrib/libevent-2.1.12-stable.tar.gz distrib/miniupnpc-2.1.orig.tar.gz
unpack-distrib: download-distrib
cd distrib/ && for i in *.tar.gz; do tar -xzf $$i && rm "$$i"; done
distrib/boost_1_74_0.tar.gz:
mkdir -p distrib/
wget -O$@ https://boostorg.jfrog.io/artifactory/main/release/1.74.0/source/boost_1_74_0.tar.gz
distrib/db-4.8.30.tar.gz:
mkdir -p distrib/
wget -O$@ http://ftp.linuxfoundation.org/pub/lsb/app-battery/packages/db-4.8.30.tar.gz
distrib/libevent-2.1.12-stable.tar.gz:
mkdir -p distrib/
wget -O$@ https://github.com/libevent/libevent/releases/download/release-2.1.12-stable/libevent-2.1.12-stable.tar.gz
distrib/miniupnpc-2.1.orig.tar.gz:
mkdir -p distrib/
wget -O$@ https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/miniupnpc/2.1-1/miniupnpc_2.1.orig.tar.gz
boost:
cd distrib/boost_1_74_0 && \
./bootstrap.sh CC=$(CC) CXX=$(CXX) --prefix=$(builddir)/distrib/tmp/libboost && \
./b2 install
# --disable-atomicsupport slows things down, but that's necessary to compile (at least on on Ubuntu 22.04.1)
# TODO: Modify libdb to make it faster.
berkeleydb:
cd distrib/db-4.8.30/build_unix && \
../dist/configure CC=$(CC) CXX=$(CXX) --disable-static --with-pic --with-gnu-ld --enable-cxx --disable-atomicsupport \
--prefix=$(builddir)/distrib/tmp/libdb --includedir=$(builddir)/distrib/tmp/libdb/include/db && \
make clean && \
make && \
make install
libevent:
cd distrib/libevent-2.1.12-stable && \
./configure CC=$(CC) CXX=$(CXX) --disable-debug-mode --disable-samples --with-gnu-ld --disable-static \
--prefix=$(builddir)/distrib/tmp/libevent && \
make clean && \
make && \
make install
miniupnpc:
cd distrib/miniupnpc-2.1 && \
make && \
make DESTDIR=$(builddir)/distrib/tmp/miniupnpc install
override_dh_autoreconf:
dh_autoreconf -- ./autogen.sh
# Flags in CXX is an Ubuntu 18.04 hack. # TODO: Can the below be more "ordered"?
# TODO: Manual providing of -I and -L/-l should not be necessary, but it does not work without this
# (at least on Ubuntu 18.04).
override_dh_auto_configure:
dh_auto_configure -- \
CC=$(CC) CXX="$(CXX) -I$(builddir)/distrib/tmp/libboost/include -I$(builddir)/distrib/tmp/libdb/include -DHAVE_CXX_STDHEADERS -DBOOST_ERROR_CODE_HEADER_ONLY -L$(builddir)/distrib/tmp/libdb/lib -L$(builddir)/distrib/tmp/libboost/lib -L$(builddir)/distrib/tmp/libevent/lib -levent -levent_pthreads -L$(builddir)/distrib/tmp/miniupnpc/usr/lib -lminiupnpc -ldb -ldb_cxx" \
PKG_CONFIG_PATH="$(builddir)/distrib/tmp/libevent/lib/pkgconfig:$(builddir)/distrib/tmp/miniupnpc/usr/lib/pkgconfig" \
LDFLAGS="-Wl,-rpath=/usr/lib/bitgesell" \
BOOST_LDFLAGS="-L$(builddir)/distrib/tmp/libboost/lib" \
--disable-tests --disable-bench --disable-debug --disable-fuzz-binary --with-gnu-ld \
--with-gui=no \
--with-boost="$(builddir)/distrib/tmp/libboost"
override_dh_auto_test:
DEB_BUILD_OPTIONS=nocheck dh_auto_test
override_dh_install:
dh_install
mkdir -p $(destdir)/usr/lib/bitgesell
cp -a distrib/tmp/libboost/lib/* $(destdir)/usr/lib/bitgesell/
cp -a distrib/tmp/libdb/lib/* $(destdir)/usr/lib/bitgesell/
cp -a distrib/tmp/libevent/lib/* $(destdir)/usr/lib/bitgesell/
cp -a distrib/tmp/miniupnpc/usr/lib/* $(destdir)/usr/lib/bitgesell/
override_dh_shlibdeps:
dh_shlibdeps -l/usr/lib/bitgesell