mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 13:53:31 +01:00
6332c51f73
If we have a debian/micro-revision.i, replace the one in src/or with our copy so that this will be the revision that ends up in the binary. This is an informational only version string, but it'd be kinda nice if it was (more) accurate nonetheless. Of course this won't help if people manually patch around but it's still preferable to claiming we are exactly upstream's source. If we are building directly out of a git tree, update debian/micro-revision.i in the clean target.
220 lines
7.8 KiB
Makefile
Executable File
220 lines
7.8 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
# -*- makefile -*-
|
|
# Sample debian/rules that uses debhelper.
|
|
# GNU copyright 1997 to 1999 by Joey Hess.
|
|
|
|
# Uncomment this to turn on verbose mode.
|
|
#export DH_VERBOSE=1
|
|
|
|
export PACKAGE=tor
|
|
include /usr/share/dpatch/dpatch.make
|
|
|
|
# These are used for cross-compiling and for saving the configure script
|
|
# from having to guess our platform (since we know it already)
|
|
#
|
|
# See /usr/share/doc/autotools-dev/README.Debian.gz which suggests
|
|
# this way of passing --build and --host. Also see the thread on
|
|
# debian-devel './configure in debian/rules' from February/March 2006,
|
|
# starting with <43FF212C.5020800@xs4all.nl> by Pjotr Kourzanov.
|
|
export DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
|
export DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
|
ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
|
|
confflags += --build $(DEB_HOST_GNU_TYPE)
|
|
else
|
|
confflags += --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
|
|
endif
|
|
|
|
CFLAGS ?= -Wall -g
|
|
|
|
LOCALHOST_IP ?= $(shell getent hosts localhost | awk '{print $$1}')
|
|
|
|
# Do not optimize the build with "noopt"
|
|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
|
CFLAGS += -O0
|
|
else
|
|
CFLAGS += -O2
|
|
endif
|
|
|
|
# Do not strip the binary with "nostrip"
|
|
#ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
|
|
# INSTALL_PROGRAM += -s
|
|
#endif
|
|
|
|
# Prevent the unit tests from being run with "nocheck"
|
|
ifneq (,$(findstring nocheck,$(DEB_BUILD_OPTIONS)))
|
|
RUN_TEST = no
|
|
endif
|
|
ifneq (,$(findstring notest,$(DEB_BUILD_OPTIONS)))
|
|
RUN_TEST = no
|
|
endif
|
|
|
|
# Support passing of parallel=<n> in build options
|
|
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
|
|
MAKEFLAGS += -j$(NUMJOBS)
|
|
endif
|
|
|
|
CONF_OPTIONS =
|
|
# build against libdmalloc4 - it better be installed
|
|
ifneq (,$(findstring with-dmalloc,$(DEB_BUILD_OPTIONS)))
|
|
CONF_OPTIONS += --with-dmalloc
|
|
endif
|
|
# allow building with --enable-openbsd-malloc
|
|
ifneq (,$(findstring enable-openbsd-malloc,$(DEB_BUILD_OPTIONS)))
|
|
CONF_OPTIONS += --enable-openbsd-malloc
|
|
endif
|
|
|
|
configure: patch-stamp
|
|
config.status: configure
|
|
@if [ "$(LOCALHOST_IP)" != "127.0.0.1" ]; then echo; echo; echo; echo; echo; echo "######################################################################"; echo "WARNING: This system does not think localhost is 127.0.0.1. Will ignore result of testsuite. Please fix your system/chroot."; echo "######################################################################"; echo; echo; echo; echo; echo "Note: 'getent hosts localhost' should return '127.0.0.1 localhost'"; echo; fi
|
|
dh_testdir
|
|
CFLAGS="$(CFLAGS)" ./configure \
|
|
$(confflags) \
|
|
--prefix=/usr \
|
|
--mandir=\$${prefix}/share/man \
|
|
--infodir=\$${prefix}/share/info \
|
|
--localstatedir=/var \
|
|
--sysconfdir=/etc \
|
|
$(CONF_OPTIONS)
|
|
|
|
|
|
build: build-stamp
|
|
|
|
build-stamp: config.status
|
|
dh_testdir
|
|
! [ debian/micro-revision.i ] || cp debian/micro-revision.i src/or/micro-revision.i
|
|
|
|
$(MAKE)
|
|
@echo
|
|
@echo
|
|
# Running unit tests
|
|
@if [ "$(RUN_TEST)" != "no" ]; then \
|
|
if [ "$(LOCALHOST_IP)" != "127.0.0.1" ]; then \
|
|
echo; echo; echo "######################################################################"; echo "WARNING: This system does not think localhost is 127.0.0.1. Will ignore result of testsuite. Please fix your system/chroot."; echo "######################################################################"; echo; echo; \
|
|
echo "src/or/test || true"; \
|
|
src/or/test || true; \
|
|
else \
|
|
echo "src/or/test"; \
|
|
src/or/test; \
|
|
fi; \
|
|
else \
|
|
echo -e "\n\nSkipping unittests\n\n"; \
|
|
fi
|
|
@echo
|
|
|
|
# XXX
|
|
# So, gs-gpl on s390 is broken (#457568) and fails to properly build
|
|
# .pdf files from .fig files using fig2dev. Therefore we ship them
|
|
# until this bug is fixed.
|
|
#
|
|
# of course we can always give it a try
|
|
#
|
|
# the hexdumps were built using something like
|
|
# perl -e 'while (<>) { print unpack ("H*", $_); }' interaction.pdf | fold > hexdump-interaction.pdf
|
|
#
|
|
# And it fails on a bunch of other archs too.
|
|
cd doc/design-paper; \
|
|
fig2dev -L pdf cell-struct.fig cell-struct.pdf || \
|
|
( echo "** Using shipped pdf file because fig2dev failed"; \
|
|
perl -e 'while (<>) { chomp; print pack ("H*", $$_); }' ../../debian/hexdump-cell-struct.pdf > cell-struct.pdf ); \
|
|
fig2dev -L pdf interaction.fig interaction.pdf || \
|
|
( echo "** Using shipped pdf file because fig2dev failed"; \
|
|
perl -e 'while (<>) { chomp; print pack ("H*", $$_); }' ../../debian/hexdump-interaction.pdf > interaction.pdf ); \
|
|
# XXX ends
|
|
|
|
make -C doc/design-paper tor-design.ps tor-design.pdf
|
|
|
|
touch build-stamp
|
|
|
|
clean: unpatch
|
|
dh_testdir
|
|
dh_testroot
|
|
rm -f build-stamp
|
|
rm -f src/common/common_sha1.i src/or/or_sha1.i
|
|
rm -f src/or/micro-revision.i
|
|
|
|
[ ! -f Makefile ] || $(MAKE) distclean
|
|
|
|
# Normally the .deb wouldn't ship with a ../.git
|
|
if [ -d .git ] && which git >/dev/null; then \
|
|
echo "\"`git rev-parse --short=16 HEAD`\"" > "debian/micro-revision.i" ; \
|
|
fi
|
|
|
|
dh_clean
|
|
|
|
install: build
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_clean -k
|
|
dh_installdirs
|
|
|
|
$(MAKE) install DESTDIR=$(CURDIR)/debian/tor
|
|
# move tor to where it belongs
|
|
mv $(CURDIR)/debian/tor/etc/tor/torrc.sample $(CURDIR)/debian/tor/etc/tor/torrc
|
|
mv $(CURDIR)/debian/tor/usr/bin/tor $(CURDIR)/debian/tor/usr/sbin/tor
|
|
install -d $(CURDIR)/debian/tor/usr/share/man/man8
|
|
mv $(CURDIR)/debian/tor/usr/share/man/man1/tor.1 $(CURDIR)/debian/tor/usr/share/man/man8/tor.8
|
|
|
|
install -m 755 contrib/torify $(CURDIR)/debian/tor/usr/bin
|
|
install -m 644 contrib/torify.1 $(CURDIR)/debian/tor/usr/share/man/man1
|
|
install -m 644 contrib/tor-tsocks.conf $(CURDIR)/debian/tor/etc/tor
|
|
|
|
install -m 644 debian/tor.lintian-override $(CURDIR)/debian/tor/usr/share/lintian/overrides/tor
|
|
|
|
install -d -m 755 $(CURDIR)/debian/tor/usr/share/doc/tor/spec
|
|
for i in doc/spec/*txt; do \
|
|
install -m 644 $$i $(CURDIR)/debian/tor/usr/share/doc/tor/spec || exit 1; \
|
|
done
|
|
|
|
dh_link usr/share/man/man8/tor.8 usr/share/man/man5/torrc.5
|
|
|
|
rm -f $(CURDIR)/debian/tor/usr/bin/tor-control.py
|
|
|
|
# tor-dbg doc dir
|
|
install -d -m 755 $(CURDIR)/debian/tor-dbg/usr/share/doc
|
|
ln -s tor $(CURDIR)/debian/tor-dbg/usr/share/doc/tor-dbg
|
|
|
|
# tor-geoip
|
|
mv $(CURDIR)/debian/tor/usr/share/tor/geoip $(CURDIR)/debian/tor-geoipdb/usr/share/tor
|
|
rmdir $(CURDIR)/debian/tor/usr/share/tor || true
|
|
|
|
install -d -m 755 $(CURDIR)/debian/tor-geoipdb/usr/share/doc/tor-geoipdb
|
|
ln -s ../tor/changelog.gz $(CURDIR)/debian/tor-geoipdb/usr/share/doc/tor-geoipdb
|
|
ln -s ../tor/changelog.Debian.gz $(CURDIR)/debian/tor-geoipdb/usr/share/doc/tor-geoipdb
|
|
|
|
install -m 644 debian/tor-geoipdb.lintian-override $(CURDIR)/debian/tor-geoipdb/usr/share/lintian/overrides/tor-geoipdb
|
|
|
|
# Must not depend on anything. This is to be called by
|
|
# binary-arch/binary-indep
|
|
# in another 'make' thread.
|
|
binary-common:
|
|
dh_testdir
|
|
dh_testroot
|
|
dh_installchangelogs --package=tor ChangeLog
|
|
dh_installdocs
|
|
dh_installexamples
|
|
dh_installlogrotate
|
|
dh_installinit
|
|
dh_installman
|
|
dh_link
|
|
dh_strip --dbg-package=tor-dbg
|
|
dh_compress
|
|
dh_fixperms
|
|
dh_installdeb
|
|
dh_shlibdeps
|
|
dh_gencontrol
|
|
dh_md5sums
|
|
dh_builddeb
|
|
|
|
# Build architecture independant packages using the common target.
|
|
binary-indep: install
|
|
$(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
|
|
|
|
# Build architecture dependant packages using the common target.
|
|
binary-arch: install
|
|
$(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
|
|
@if [ "$(LOCALHOST_IP)" != "127.0.0.1" ]; then echo; echo; echo; echo; echo; echo "######################################################################"; echo "WARNING: This system does not think localhost is 127.0.0.1. Result of testsuite has been ignored. Please fix your system/chroot."; echo "######################################################################"; echo; echo; echo; echo; echo "Note: 'getent hosts localhost' should return '127.0.0.1 localhost'"; echo; fi
|
|
|
|
binary: binary-indep binary-arch
|
|
.PHONY: build clean binary-common binary-indep binary-arch binary install
|