mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-24 12:23:32 +01:00
4cb31d27b5
Upstream failed to ship src/test/test.h. Ship it in debian/ and manually copy it in place during configure and clean up in clean. Let's not use the patch system as this will most likely be rectified by next release.
229 lines
8.2 KiB
Makefile
Executable File
229 lines
8.2 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
|
|
# clean up test.h stuff. XXX - expected to no longer be needed after tor-0.2.2.4-alpha
|
|
rm -f src/test/test.h.orig
|
|
! [ -e src/test/test.h ] || mv src/test/test.h src/test/test.h.orig
|
|
cp debian/src-test-test.h src/test/test.h
|
|
|
|
@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 "make check || true"; \
|
|
make check || true; \
|
|
else \
|
|
echo "make check"; \
|
|
make check; \
|
|
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
|
|
|
|
# clean up test.h stuff. XXX - expected to no longer be needed after tor-0.2.2.4-alpha
|
|
rm -f src/test/test.h
|
|
! [ -e src/test/test.h.orig ] || mv src/test/test.h.orig src/test/test.h
|
|
|
|
# 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
|