2004-01-13 14:40:00 +01:00
#!/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
2006-03-11 20:05:06 +01:00
export PACKAGE=tor
include /usr/share/dpatch/dpatch.make
2004-01-13 14:40:00 +01:00
# These are used for cross-compiling and for saving the configure script
# from having to guess our platform (since we know it already)
2006-08-09 12:25:01 +02:00
#
# 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.
2006-03-11 20:05:06 +01:00
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
2004-01-13 14:40:00 +01:00
2006-08-09 12:25:01 +02:00
CFLAGS ?= -Wall -g
2004-01-13 14:40:00 +01:00
2006-03-11 20:05:06 +01:00
LOCALHOST_IP ?= $(shell getent hosts localhost | awk '{print $$1}')
2004-03-03 13:56:04 +01:00
* Ship AUTHORS, doc/CLIENTS, doc/FAQ, doc/HACKING, doc/TODO, doc/tor-doc.{css,html}, doc/{rend,tor}-spec.txt with the binary package.
* Build tor-design.{pdf,ps}, wich adds new build-dependencies: tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nodoc' to skip building tor-design. With nodoc the build will not need tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nocheck' to skip unittests ('notest' is an alias')
svn:r2170
2004-08-06 23:31:01 +02:00
# Do not optimize the build with "noopt"
2004-01-13 14:40:00 +01:00
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
else
CFLAGS += -O2
endif
* Ship AUTHORS, doc/CLIENTS, doc/FAQ, doc/HACKING, doc/TODO, doc/tor-doc.{css,html}, doc/{rend,tor}-spec.txt with the binary package.
* Build tor-design.{pdf,ps}, wich adds new build-dependencies: tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nodoc' to skip building tor-design. With nodoc the build will not need tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nocheck' to skip unittests ('notest' is an alias')
svn:r2170
2004-08-06 23:31:01 +02:00
# Do not strip the binary with "nostrip"
2004-03-03 13:32:21 +01:00
#ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
# INSTALL_PROGRAM += -s
#endif
2004-01-13 14:40:00 +01:00
* Ship AUTHORS, doc/CLIENTS, doc/FAQ, doc/HACKING, doc/TODO, doc/tor-doc.{css,html}, doc/{rend,tor}-spec.txt with the binary package.
* Build tor-design.{pdf,ps}, wich adds new build-dependencies: tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nodoc' to skip building tor-design. With nodoc the build will not need tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nocheck' to skip unittests ('notest' is an alias')
svn:r2170
2004-08-06 23:31:01 +02:00
# 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
2008-06-09 18:56:26 +02:00
# 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
2005-03-22 23:38:21 +01:00
CONF_OPTIONS =
# build against libdmalloc4 - it better be installed
ifneq (,$(findstring with-dmalloc,$(DEB_BUILD_OPTIONS)))
CONF_OPTIONS += --with-dmalloc
endif
2008-03-11 15:18:48 +01:00
# inhibit building with --enable-openbsd-malloc
ifeq (,$(findstring no-enable-openbsd-malloc,$(DEB_BUILD_OPTIONS)))
CONF_OPTIONS += --enable-openbsd-malloc
endif
2005-03-22 23:38:21 +01:00
2004-03-03 13:56:04 +01:00
configure: patch-stamp
2004-01-13 14:40:00 +01:00
config.status: configure
2005-09-14 15:05:58 +02:00
@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
2004-01-13 14:40:00 +01:00
dh_testdir
CFLAGS="$(CFLAGS)" ./configure \
2006-03-11 20:05:06 +01:00
$(confflags) \
2004-01-13 14:40:00 +01:00
--prefix=/usr \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
--localstatedir=/var \
2005-03-22 23:38:21 +01:00
--sysconfdir=/etc \
$(CONF_OPTIONS)
2004-01-13 14:40:00 +01:00
build: build-stamp
build-stamp: config.status
dh_testdir
$(MAKE)
2004-02-29 14:34:43 +01:00
@echo
@echo
* Ship AUTHORS, doc/CLIENTS, doc/FAQ, doc/HACKING, doc/TODO, doc/tor-doc.{css,html}, doc/{rend,tor}-spec.txt with the binary package.
* Build tor-design.{pdf,ps}, wich adds new build-dependencies: tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nodoc' to skip building tor-design. With nodoc the build will not need tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nocheck' to skip unittests ('notest' is an alias')
svn:r2170
2004-08-06 23:31:01 +02:00
# Running unit tests
2005-09-14 15:05:58 +02:00
@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"; \
2008-06-13 11:57:04 +02:00
src/or/test; \
2005-09-14 15:05:58 +02:00
fi; \
* Ship AUTHORS, doc/CLIENTS, doc/FAQ, doc/HACKING, doc/TODO, doc/tor-doc.{css,html}, doc/{rend,tor}-spec.txt with the binary package.
* Build tor-design.{pdf,ps}, wich adds new build-dependencies: tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nodoc' to skip building tor-design. With nodoc the build will not need tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nocheck' to skip unittests ('notest' is an alias')
svn:r2170
2004-08-06 23:31:01 +02:00
else \
echo -e "\n\nSkipping unittests\n\n"; \
fi
2004-02-29 14:34:43 +01:00
@echo
2004-01-13 14:40:00 +01:00
2005-08-09 15:11:00 +02:00
# XXX
2008-02-02 15:13:51 +01:00
# So, gs-gpl on s390 is broken (#457568) and fails to properly build
2005-08-09 15:11:00 +02:00
# .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
2008-03-05 09:48:51 +01:00
#
# And it fails on a bunch of other archs too.
cd doc/design-paper; \
2005-08-09 15:11:00 +02:00
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
2006-05-05 17:40:54 +02:00
make -C doc/design-paper tor-design.ps tor-design.pdf
* Ship AUTHORS, doc/CLIENTS, doc/FAQ, doc/HACKING, doc/TODO, doc/tor-doc.{css,html}, doc/{rend,tor}-spec.txt with the binary package.
* Build tor-design.{pdf,ps}, wich adds new build-dependencies: tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nodoc' to skip building tor-design. With nodoc the build will not need tetex-{bin,extra}, transfig, and gs.
* Support DEB_BUILD_OPTIONS option 'nocheck' to skip unittests ('notest' is an alias')
svn:r2170
2004-08-06 23:31:01 +02:00
2004-01-13 14:40:00 +01:00
touch build-stamp
2004-03-03 13:56:04 +01:00
clean: unpatch
2004-01-13 14:40:00 +01:00
dh_testdir
dh_testroot
rm -f build-stamp
2008-06-09 18:56:26 +02:00
[ ! -f Makefile ] || $(MAKE) distclean
2004-01-13 14:40:00 +01:00
dh_clean
install: build
dh_testdir
dh_testroot
dh_clean -k
dh_installdirs
$(MAKE) install DESTDIR=$(CURDIR)/debian/tor
2004-02-27 02:07:38 +01:00
# move tor to where it belongs
2004-03-30 14:29:33 +02:00
mv $(CURDIR)/debian/tor/etc/tor/torrc.sample $(CURDIR)/debian/tor/etc/tor/torrc
2004-02-27 02:07:38 +01:00
mv $(CURDIR)/debian/tor/usr/bin/tor $(CURDIR)/debian/tor/usr/sbin/tor
2004-05-07 01:25:12 +02:00
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
2004-02-17 02:09:22 +01:00
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
2004-01-13 14:40:00 +01:00
2004-02-17 02:40:36 +01:00
install -m 644 debian/tor.lintian-override $(CURDIR)/debian/tor/usr/share/lintian/overrides/tor
2007-01-27 21:50:09 +01:00
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
2004-11-12 17:47:21 +01:00
dh_link usr/share/man/man8/tor.8 usr/share/man/man5/torrc.5
2004-11-12 18:21:16 +01:00
rm -f $(CURDIR)/debian/tor/usr/bin/tor-control.py
2008-06-09 18:56:26 +02:00
# tor-dbg doc dir
2005-09-14 16:45:02 +02:00
install -d -m 755 $(CURDIR)/debian/tor-dbg/usr/share/doc
ln -s tor $(CURDIR)/debian/tor-dbg/usr/share/doc/tor-dbg
2008-06-09 18:56:26 +02:00
# 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
2004-01-13 14:40:00 +01:00
2008-06-09 18:56:26 +02:00
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
2004-01-13 14:40:00 +01:00
2008-06-09 18:56:26 +02:00
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:
2004-01-13 14:40:00 +01:00
dh_testdir
dh_testroot
2008-06-09 18:56:26 +02:00
dh_installchangelogs --package=tor ChangeLog
2004-01-13 14:40:00 +01:00
dh_installdocs
dh_installexamples
dh_installlogrotate
dh_installinit
dh_installman
dh_link
2005-09-14 15:05:58 +02:00
# Change this for debhelper compatibility level 5 or later!
dh_strip --dbg-package=tor
2004-01-13 14:40:00 +01:00
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
2008-06-09 18:56:26 +02:00
# 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
2005-09-14 15:05:58 +02:00
@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
2004-01-13 14:40:00 +01:00
binary: binary-indep binary-arch
2008-06-09 18:56:26 +02:00
.PHONY: build clean binary-common binary-indep binary-arch binary install